ホームページ > php教程 > php手册 > PHPの実行速度を向上させるためのヒントを共有します

PHPの実行速度を向上させるためのヒントを共有します

WBOY
リリース: 2016-06-13 11:59:29
オリジナル
1032 人が閲覧しました

1. コードの最適化

コードの最適化では、単にクリーンで明確なコードを記述するだけでなく、コードをある程度単純化することも必要です。 Zend Optimizer を使用すると、これらの面倒なタスクを自動的に完了できます。 Zend Optimizer は、Zend Technologies の Web サイト http://www.zend.com/ から無料で入手できますが、GPL に基づいて配布されていないため、ライセンス契約に同意する必要があります。その原理はシンプルで、Zend エンジンによって生成された中間コードを検出し、それを最適化することでより高い実行速度を実現します。
Zend Optimizer を使用すると、複雑な PHP ソース プログラムの実行効率が即座に大幅に向上します。欠点は、最適化されたコードの可読性が低下し、コードの修正が困難になることです。

Zend Optimizer のインストール方法は非常に簡単で、ユーザーが使用するプラットフォームに応じて適切なプリコンパイル済みバージョンをダウンロードし、次の 2 行のコードを php.ini ファイルに追加して、Web サーバーを再起動するだけです。 :
zend_optimizer.optimization_level=15
zend_extension=″/path/to/ZendOptimizer.so″
zend_loader.enable=Off

zend_loader が無効になっているため、コードの追加の 3 行目はオプションです。最適化が高速化されます。 zend_loader は、Zend Encoder Runtime が使用されていない場合にのみ無効にできることに注意してください。

2. キャッシュを使用する

PHP プログラムのサイズが大きい場合、速度を向上させる方法はキャッシュを使用することです。 Zend Cache、APC、Afterburner Cache など、利用可能なキャッシュ ソリューションが多数あります。

上記はすべて「キャッシュモジュール」です。初めて PHP ファイルが呼び出されるとき、キャッシュ モジュールは PHP ソース コードから中間コードを生成し、これらの中間コードを Web サーバーのメモリに保存します。これらのファイルを後で呼び出すと、メモリ内の「コンパイルされた」コードを直接使用できます。この方法では、ディスク アクセスが最小限に抑えられ (コードが読み取られて解析されている)、コードがメモリ内で直接実行されるため、サーバーがリクエストに非常に速く応答できるようになるため、アプリケーションのパフォーマンスが大幅に向上します。

もちろん、キャッシュ モジュールは PHP ソース ファイルの変更も監視し、必要に応じてページを再キャッシュして、古い PHP コードによって生成されたページをユーザーが取得するのを防ぎます。キャッシュ モジュールはサーバーの負荷を大幅に軽減し、PHP アプリケーションの応答効率を向上させることができるため、負荷の高い Web サイトに非常に適しています。

Zend Cache は、Zend Technologies によって開発された商用ソフトウェアです。最初の実行後、PHP ページの実行速度はすぐに大幅に向上し、サーバーの空きリソースが増加します。欠点は無料ではないことですが、価格/パフォーマンスの比率は依然として非常に高いです。

Afterburner Cache は、Bware Technologies によって開発された無料のキャッシュ モジュールです。機能は基本的には Zend Cache と同じですが、パフォーマンスの向上という点では Zend Cache には及びません。

APC (Alternative PHP Cache) は、Community Connect によって開発されたもう 1 つの無料のキャッシュ モジュールで、現在のバージョンは 2.0.4 で、http://pecl.php.net/package/APC から入手できます。製品アプリケーションの場合、そのパフォーマンスは非常に安定しており、リクエストへの応答速度も大幅に向上します。

3. Web ページのコンテンツを圧縮する

サイトのアクセス速度に影響を与えるもう 1 つの重要な要素が、ダウンロード速度です。解決策は、Web コンテンツを圧縮することです。プレーン テキスト コンテンツの場合、HTTP 圧縮テクノロジを使用して元のサイズの 40% 未満に圧縮できるため、データ送信を 60% 以上節約できます。 Web サーバーは圧縮により CPU 使用率をわずかに増加させますが、送信のためのネットワーク IO を大幅に節約できます。

IETF 仕様によれば、ほとんどのブラウザはコンテンツ圧縮に gzip 圧縮アルゴリズムの使用をサポートしています。つまり、gzip を使用して最初に Web ページのコンテンツを圧縮し、それをクライアントのブラウザーに送信すると、ブラウザーはデータを受信するときに自動的に解凍して、ページを表示します。このプロセスはユーザーに対して完全に透過的です。同様に、Web ページのコンテンツを圧縮するためのさまざまな方法があります。

Mod_gzip は、オープン ソースの標準 Apache モジュールであり、インターネット コンテンツ アクセラレーション モジュールとも呼ばれます。 Apache でコンパイルすることも、DSO として使用することもできます。通常のブラウジングプロセスと比較して、トラフィックを約 40% 節約できます。 Mod_gzip は、HTML や XML などの静的コンテンツを圧縮するだけでなく、SQL、Java、WML、VRML などの動的に生成されたコンテンツをサーバー側でリアルタイムに圧縮して送信することもでき、その圧縮効率は一般に驚くべきものです。 60%~85%。

動的 Web ページのコンテンツを圧縮するには、class.gzip を使用して .php ファイルをエンコードすることもできます。class.gzip は、Web ページの先頭と末尾で一部の関数を呼び出してコンテンツを圧縮します。 PHPスクリプト。サイト全体でこのような圧縮が必要な場合は、php.ini ファイルの auto_prepend および auto_append でこれらの関数を呼び出すことができますが、ある程度のシステム オーバーヘッドが発生します。

PHP4.0.4 では、新しい出力バッファー処理メソッド ob_gzhandler が導入されています。その機能は class.gzip とまったく同じです。構文は次のとおりです。

output_handler = ob_gzhandler;

これにより、PHP の出力バッファリング機能が有効になり、送信前にコンテンツが圧縮されます。ここで設定したくない場合は、必要に応じてデフォルト設定 (圧縮なし) を変更してください。 構文は次のとおりです。 php_value Output_handler ob_gzhandler

または、PHP コードで直接呼び出します:

ob_start("ob_gzhandler");
出力バッファリングの効果は実際に理想的であり、追加のシステム オーバーヘッドを引き起こしません。サーバ。注意すべき点の 1 つは、Netscape Communicator は画像圧縮をサポートしていないことです。したがって、訪問者が Internet Explorer を使用していることがわかっていない限り、jpeg および gif 画像の圧縮を無効にする必要があります。


4 その他のヒント
プログラミングの際、いくつかのトリックを使用して PHP を高速化することもできます:
(1) i= i の代わりに i =1 を使用します。 1。これは c/c の習慣と一致しており、比較的効率的です。
(2) 可能な限りPHPの内部関数を使用する。
(3) シングルクォートで囲まれた文字列が使用できる場合は、シングルクォーテーションで囲まれた文字列を使用するようにしてください。一重引用符で囲まれた文字列は、二重引用符で囲まれた文字列よりも効率的です。
(4) 配列を走査するには while の代わりに foreach を使用します。foreach の効率は while ループの効率よりも大幅に高く、reset 関数を呼び出す必要はありません。
上記の 4 つの方法は、唐山の Web サイト構築に関する個人的な経験をまとめたものです。転載用のリンクを残してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート