1. Code optimization
Code optimization is not just about writing clean and clear code, but also simplifying the code to a certain extent. You can use Zend Optimizer to automatically help complete these tedious tasks. Zend Optimizer is available for free from Zend Technologies' website at http://www.zend.com/, but you must agree to its licensing agreement because it is not distributed under the GPL. Its principle is simple, that is, by detecting the intermediate code generated by the Zend engine and optimizing it to obtain higher execution speed.
After using Zend Optimizer, the execution efficiency of complex PHP source programs will be significantly improved immediately. The disadvantage is that the readability of the optimized code decreases, making code modification difficult.
The installation method of Zend Optimizer is very simple. Just download the relevant precompiled version according to the platform used by the user, add the following 2 lines of code to the php.ini file, and restart the web server:
zend_optimizer.optimization_level=15
zend_extension=″/path/to/ZendOptimizer.so″
zend_loader.enable=Off
The additional third line of code is optional because zend_loader is disabled Will make optimization faster. It should be noted that zend_loader can be disabled only when Zend Encoder Runtime is not used.
2. Use caching
If the size of the PHP program is large, then the way to improve the speed is to use caching. There are many caching solutions available, including Zend Cache, APC and Afterburner Cache.
The above are all "caching modules". The first time a PHP file is called, the cache module generates some intermediate code from the PHP source code and stores these intermediate codes in the memory of the web server. When these files are called later, the "compiled" code in memory can be used directly. This method can really improve the performance of the application, because it reduces disk access to a minimum (the code has been read and parsed), and the code runs directly in memory, making the server respond to requests much faster.
Of course, the caching module will also monitor changes in PHP source files and re-cache the page if necessary to prevent users from getting pages that are still generated by outdated PHP code. Because caching modules can significantly reduce the load on the server and improve the response efficiency of PHP applications, they are very suitable for websites with heavy loads.
Zend Cache is a commercial software developed by Zend Technologies. After the first run, the running speed of the PHP page will be greatly improved immediately, and the server will have more free resources. The disadvantage is that it is not free, but the price/performance ratio is still very high.
Afterburner Cache is a free caching module developed by Bware Technologies. The function is basically the same as Zend Cache, but it is not as good as Zend Cache in improving performance.
APC (Alternative PHP Cache) is another free caching module developed by Community Connect. The current version is 2.0.4 and can be obtained from http://pecl.php.net/package/APC. For product applications, its performance is very stable, and it can also greatly improve the speed of responding to requests.
3. Compress web page content
There is another important factor that affects the access speed of the site, and that is the download speed. The solution is to compress web content. For plain text content, HTTP compression technology can compress it to less than 40% of its original size, thus providing more than 60% data transmission savings. Although the Web server will cause a slight increase in CPU usage due to compression, it can save a lot of network IO used for transmission.
According to IETF specifications, most browsers support the use of gzip compression algorithm for content compression. In other words, you can use gzip to compress the web page content first, and then send it to the client browser. The browser will automatically decompress the data when receiving it, and then display the page. This process is completely transparent to users. Likewise, there are different methods for compressing the content of web pages.
Mod_gzip is an open source, standard Apache module, also called Internet content acceleration module. It can be compiled with Apache or used as a DSO. Compared with the ordinary browsing process, it can save about 40% of traffic. Mod_gzip can not only compress static content, such as HTML and XML, but also compress and transmit dynamically generated content, including SQL, Java, WML, VRML, etc., in real time on the server side. Its compression efficiency is amazing, generally 60 %~85%.
To compress the content of dynamic web pages, you can also use class.gzip to encode .php files. class.gzip compresses the content of web pages by calling some of its functions at the beginning and end of the PHP script. If the entire site requires such compression, these functions can be called in auto_prepend and auto_append in the php.ini file, but it will take up a certain amount of system overhead.
PHP4.0.4 introduces a new output buffer processing method - ob_gzhandler. Its function is exactly the same as class.gzip. The difference is that it can be added directly to the php.ini file. The syntax is as follows:
output_handler = ob_gzhandler;
This will activate PHP's output buffering function and compress the content before sending it.If you don’t want to set it here, just change the default setting (no compression) where needed. Just modify the .htaccess file in the PHP source program directory that needs to be compressed. The syntax is as follows:
php_value output_handler ob_gzhandler
Or call it directly in PHP code:
ob_start("ob_gzhandler");
The effect of output buffering is indeed ideal and does not bring additional system overhead to the server. One thing to note is that Netscape Communicator does not support image compression. Therefore, compression of jpeg and gif images must be disabled unless you know that your visitors are using Internet Explorer.
4 Other tips
When programming, you can also use some tricks to speed up PHP:
(1) Use i+=1 instead of i= i+1 is in line with the habits of c/c++ and is relatively more efficient.
(2) Use PHP internal functions as much as possible.
(3) When single-quoted strings can be used, try to use single-quoted strings. Single quoted strings are more efficient than double quoted strings.
(4) Use foreach instead of while to traverse the array. The efficiency of foreach is significantly higher than that of the while loop, and there is no need to call the reset function.
The above four methods are some personal experiences summarized in Tangshan website construction. I hope it will be helpful to everyone. Please leave a link for reprinting. Thank you!