PHP の実行速度を向上させるための完全ガイド (パート 2)
Jun 13, 2016 pm 12:45 PM
Web コンテンツの圧縮 (顧客がより「楽しく」使えるようにする)
上記の 2 つの方法の後、PHP アプリケーションのパフォーマンスは大幅に向上したと思います。別の側面から考えてみます: ダウンロード速度。アプリケーションが社内でのみ実行されており、すべての顧客が 100Mb/s イーサネットを使用してサーバーに接続している場合は、これは問題にならない可能性がありますが、一部の顧客が低速のモデム接続を使用している場合は、コンテンツ圧縮方式の使用を検討する必要があります。 。 IETF 仕様によれば、ほとんどのブラウザは gzip コンテンツ圧縮をサポートしています。これは、Web コンテンツをクライアントのブラウザに送信する前に gzip を使用して圧縮できることを意味し、ブラウザはデータを受信する際に自動的にデータを解凍し、ユーザーが元のページを表示できるようにします。同様に、Web ページのコンテンツを圧縮する方法もいくつかあります。
mod_gzip は、Remote Communications (http://www.phpbuilder.com/columns/www.remoteecommunications.com) によって無料で提供される Apache モジュールで、静的な Web ページを圧縮できます。 Apache でコンパイルする (または DSO として使用する) だけで問題なく動作します。 Remotecommunications の関係者によると、mod_php、mod_perl などの動的コンテンツも圧縮できるという。しかし、試してみましたが、うまくいかないようです。 mod_gzip メーリング リストで、このバグは次のバージョン (バージョン 1.3.14.6f になると思います) で修正される予定であると読みました。ただし、静的コンテンツの圧縮には引き続き使用できます。
しかし、動的コンテンツも圧縮したいので、別の方法を見つける必要があります。 1 つの方法は、class.gzip encode.php (http://leknor.com/code/) を使用して、PHP スクリプトの最初と最後でこの PHP クラスを呼び出して、ページのコンテンツを圧縮することです。サイト全体でそのような圧縮が必要な場合は、php.ini ファイルの auto_prepend および auto_append でこれらの関数を呼び出すことができます。これは非常にうまく機能しますが、負荷の高いサイトでは明らかに多少のオーバーヘッドが発生します。どのように動作するかについて詳しくは、クラス コードを参照してください (少なくとも zlib サポートを使用して PHP をコンパイルする必要があります)。著者による説明書も非常に詳しく書かれているので、知りたいことはすべてわかります。
最近、PHP の出力バッファリングに関する記事も目にしました。つまり、PHP4.0.4 では新しい出力バッファ処理メソッド ob_gzhandler が導入されており、その機能は上で紹介したクラスと同じですが、 php.ini で次の構文を使用するだけで済むという点が異なります。
output_handler = ob_gzhandler ;
これにより、PHP の出力バッファリング機能が有効になり、送信されるすべてのデータが圧縮されます。いくつかの特別な理由により、ここで設定せず、必要な場合のみデフォルト設定を変更する場合 (圧縮なし)、圧縮する必要がある PHP ソース コード ディレクトリ内の .htaccess ファイルを変更するだけです。使用される構文は次のとおりです。
php_value Output_handler ob_gzhandler
...または、次の方法で PHP コード内で直接呼び出します:
ob_start("ob_gzhandler" ); >
この出力バッファリング方法は非常に優れており、サーバーに追加のシステム オーバーヘッドをもたらしません。この方法を使用することを強くお勧めします。その変化は次の例で説明できます。顧客が 28.8K モデムを使用している場合、このプロセスの後、突然 ISDN アクセスに切り替えられたと考えるでしょう。注意すべき点は、Netscape Communicator は画像圧縮をサポートしていないため、表示されないことです。したがって、すべての顧客が Internet Explorer を使用していない限り、jpeg および gif 画像の圧縮を無効にする必要があります。他のファイルの圧縮には問題はありませんが、特にブラウザが珍しいプラグインを使用している場合や、めったに使用されないブラウザの場合は、テストすることをお勧めします。
その他の便利なもの...
Zend Technologies のオンライン ストアは今年 1 月 24 日に開設され、いくつかの興味深い PHP 関連製品を販売しています。前述の Zend Cache、Zend Encoder (簡単に言えば、ソース コードの漏洩を心配せずに顧客に販売できるように、コンパイルされたクラスを生成できる PHP コード用のコンパイラーです。これらのクラスを実行する必要がある Web サーバーで (デコードには Zend Encoder Runtime を使用します)、Zend Ide (多くの強力な機能を備えた PHP 用の統合開発環境)、および PHP 開発者向けのサポート サービスを提供します。
結論
この記事で説明したテクニックを使用すると、サイトのパフォーマンスを大幅に向上させることができますが、次の点に注意してください。
1.ボトルネックは存在しない可能性があります。PHP の場合、アプリケーション内のすべてのオブジェクト (データベースなど) を調べる必要があります。
2. Web サーバーのパフォーマンスには限界があるため、パフォーマンスの低下が原因であるとは考えないでください。 PHP へのアクセスが原因である可能性もあります。ボリュームが非常に大きいため、サーバーをアップグレードするか、負荷分散システムの使用を検討してください (多額の費用がかかります)
3. 100Mb/s LAN では、PHP アプリケーションは適切に動作する可能性がありますが、低速モデムを使用するユーザーを考慮する必要があります。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法
