PHP の利点の 1 つは非常に高速であることであり、一般的な Web サイト アプリケーションには十分です。ただし、サイトのトラフィックが多い、帯域幅が狭い、またはその他の要因によりサーバーのパフォーマンスのボトルネックが発生する場合は、PHP の速度をさらに向上させる他の方法を考える必要がある場合があります。この記事では、ユーザーがより「クール」に閲覧できるようにするための方法をいくつかの側面から紹介します。
コードの最適化
よりクリーンなコードを書く方法を改めて説明するつもりはありませんが、速度が必要な場合には、ここで提案されている PHP ソース コードの最適化についてはすでに多くのことを行っていると思います。それは、この面倒な作業を他のツールで完了できるということです。これは Zend Optimizer であり、Zend Technologies の Web サイト (http://www.zend.com/) から無料で入手できるプログラムです。その原理はシンプルで、Zend エンジンによって生成された中間コードを検出し、それを最適化することでより高い実行速度を実現します。コードの最適化はかなり面倒な作業だと思います。また、最適化されたコードは理解しにくくなる可能性があります。特に、PHP プログラムをしばらく放置していて、突然顧客から変更を求められた場合、自分では何をすればよいか分からないかもしれません。 。 理解した;-)。したがって、PHP ソース コードが比較的複雑な場合は、Zend Optimizer を使用してこの最適化作業を行うことをお勧めします。その利点は、コードが複雑になって理解しにくくならないことです。
Zend Optimizer のインストールは非常に簡単です。使用しているプラットフォームに応じて、関連するプリコンパイル済みライブラリをダウンロードし、php.ini に 2 行を追加して、Web サーバーを再起動するだけです。
zend_optimizer.optimization_level=15zend_extension="/path/to/ZendOptimizer.so" zend_loader.enable=Off
少し驚かれるかもしれませんが、2 行と書いてあったのに、なぜ 3 行になったのでしょう。ただし、3 行目はオプションです。この zend_loader を無効にすると最適化が速くなるようです。そのため、この行を php.ini ファイルに追加するとよいでしょう。 zend_loader は、Zend Encoder Runtime を使用していない場合にのみ無効にできることに注意してください。Zend Encoder Runtime については後述します。
もっと早くしたいですか?キャッシュを使用する
PHP アプリケーションがさらに高速化する必要がある場合、次の方法はバッファリングです。これを実現するには、いくつかの方法があります。 Zend Cache (評価版)、APC、Afterburner Cache を自分で試してみました。
上記はすべて「バッファモジュール」です。それらの原理は似ています。PHP ファイルが初めてリクエストされると、PHP ソース コードの中間コードが Web サーバーのメモリに保存され、将来の同じリクエストに対して「コンパイルされた」バージョンがメモリに保存されます。直接提供されます。この方法はディスク アクセスを最小限に抑えることができるため、実際に PHP のパフォーマンスを大幅に向上させることができます。さらに便利なのは、PHP ソース コードが変更されると、バッファリングされたモジュールがこれらの変更を検出して再ロードできるため、顧客が古いバージョンのプログラムを入手することを心配する必要がないことです。これらのバッファ付きモジュールは優れていますが、どれを選択すればよいでしょうか?それぞれ紹介しましょう:
Zend Cache は Zend Technologies の商用製品です (PHP エンジンと Zend Optimizer を無料で提供している会社でもあります)。本当にいいですね。最初の実行後、明らかに PHP の速度が大幅に向上し、サーバーの空きリソースが増えていることがわかります。デメリットとしては、料金がかかることですが、コストパフォーマンスを考えると、それでも十分に価値があります。
Afterburner Cache は、Bware Technologies (bwcache.bware.it) によって提供される無料のバッファー モジュールです。現在はベータ版のみで、Zend Cache と同じ働きをするようですが、パフォーマンスの向上は Zend Cache ほどではなく、既存のバージョンは Zend Optimizer では動作しませんが、無料です。
APC (Alternative PHP Cache) は、Community Connect (apc.communityconnect.com) によって提供されるもう 1 つの無料モジュールです。動作は非常に安定しており、速度も大幅に向上しています。ただし、これらは私のアプリケーションでのテストにすぎないため、結論を出すことはできません。