promote PHP implementation speed of the full introduction (next)

Source: Internet
Author: User
Tags ini php class php and php code php script client zend
Introduction | speed | Perform Web content compression (make your customers more "cool")

Through the above two methods, I believe that your PHP application performance has been greatly improved, now the other aspect to consider: download speed. If your application is running within the company, all customers use 100MB/S Ethernet to connect to the server, which may not be a problem, but if your client is connected by a slow modem, you should consider using the content compression method. According to the IETF specification, most browsers support gzip-enabled
Volume compression. This means that you can use gzip to compress the content of the web before it is sent to the client's browser, and the browser will extract the data automatically when it is received, and make the user see the original page. Similarly, there are several different ways to compress the content of a Web page.

Mod_gzip is a free Apache module provided by Remote Communications (http://www.phpbuilder.com/columns/www.remotecommunications.com), It can compress a static web page. It works well and you just have to compile it with Apache (or use it as a DSO). Remotecommunications people say it can also compress dynamic content, including mod_php, Mod_perl, and so on. But I tried it, and it didn't seem to be all right. I learned from the Mod_gzip mailing list that this bug will be corrected in the next release (I think it should be a 1.3.14.6f version). But you can still use it as a compression for static content.

But we also want to compress the dynamic content, so we have to find another way. One way to do this is to use Class.gzip encode.php (http://leknor.com/code/) to compress the content of your pages as long as you call the PHP class at the beginning and end of your PHP script. If the entire site requires such compression, you can call these functions in the Auto_prepend and auto_append in your php.ini file. It works fine, but it obviously brings a bit of overhead on a heavily loaded site. To learn more about how it works, take a look at its class code (you'll need to add zlib support at least when compiling PHP). The author's instructions are also very detailed and you can get anything you need to know.

Recently, I also saw an article about PHP output buffering. What it says is that PHP4.0.4 has introduced a new method of output buffering--ob_gzhandler, which is the same as the class described above, but the difference is that you just use the following syntax in your php.ini:

Output_handler = Ob_gzhandler;

This activates the output buffering function of PHP and compresses everything it sends. For some particular reason, if you don't want to set it here, change the default setting only if you need it (not compressed), just modify it in the PHP source directory that needs to be compressed. htaccess file on the line, using the syntax as follows:

Php_value Output_handler Ob_gzhandler

... or call it directly in your PHP code, in the following way:

Ob_start ("Ob_gzhandler");

This output buffering process is good and does not incur additional overhead for the server. I highly recommend that you use this method. Its changes can be illustrated in the following example, if the customer is using a 28.8K modem, after this processing, he will think suddenly replaced by an ISDN access. The point to note is that Netscape Communicator does not support image compression, so it will not be displayed. So unless your client uses Internet Explorer entirely, you must disable compression of JPEG and GIF images. Other file compression should be fine, but I recommend that you test it, especially if the browser uses an unusual plugin or a browser that is less popular.

Other useful things ...

Zend Technologies's Online store opened 24 this January and sells interesting PHP-related products. Including the aforementioned Zend Cache,zend encoder (in short, PHP code compiler, you can generate compiled classes, so you can sell to customers without worrying about leaking source code. On a Web server that needs to run these classes, it will be decoded using Zend Encoder runtime, Zend Ide (an integrated development environment for PHP with a lot of powerful performance), and support services for PHP developers.

Conclusion

Using the techniques mentioned in this article, you will be able to greatly improve the performance of your site, but note the following points:

1. Bottlenecks may not be in PHP, you need to look at each object in the application (e.g. database)

2. There is a limit to the performance of a Web server, so don't assume that poor performance is the cause of PHP, it can be a lot of traffic, your server needs to be upgraded, or consider using a load-balanced system (which will cost a lot of money).

3. Do not think that content compression is not important, in the 100mb/s LAN, your PHP application may be very good performance, but to consider the use of slow modem users.


Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.