質問

次のような PHP アクセラレータを使用した経験のある人はいますか? MMCキャッシュ または ゼンド アクセラレータ?これらのいずれかを使用すると、PHP が以下と同等になるかどうかを知りたいです。 もっと早く ウェブテクノロジー。また、これらを使用することによるトレードオフはありますか?

役に立ちましたか?

解決

Zend Optimizer と MMCache (または同様のアプリケーション) はまったく別のものであることに注意してください。Zend Optimizer がプログラムのオペコードを最適化しようとしている間、MMCache はスクリプトをメモリにキャッシュし、プリコンパイルされたコードを再利用します。

しばらく前にいくつかのベンチマークを実行しました。 結果 私のブログで(ドイツ語ですが)。基本的な結果:

Zend Optimizer だけではまったく役に立ちませんでした。実際、私のスクリプトはオプティマイザを使用しない場合よりも遅くなりました。

キャッシュに関しては次のようになります。*最速: eアクセラレータ * Xキャッシュ * APC

そして:オペコード キャッシュをインストールしたいのです。

例えば:代替テキスト http://blogs.interdose.com/dominik/wp-content/uploads/2008/04/opcode_wordpress.png

これは、WordPress ホームページを 10,000 回呼び出すのにかかった時間です。

編集: ところで、eAccelerator にはオプティマイザー自体が含まれています。

他のヒント

MMCache は非推奨になりました。どちらかをお勧めします http://pecl.php.net/package/APC または http://xcache.lighttpd.net/, 、両方とも変数ストレージ (Memcache など) も提供します。

どちらも興味深いもので、ソース コードをバイナリ表現にコンパイルして PHP エンジンによって実行されるため、速度が向上します。

PHP で実行されている巨大な Web サイト (Facebook など) は、MMCache などの何らかのオペコード キャッシュ システムを実行しています。

問題は、システムによってはセットアップがそれほど簡単ではないことです。

実際に実行される PHP コードの量と、その実行にかかる時間によっては、非常に大きな成果が得られる可能性があります。確かに害はありませんが、得られる効果は、現在どこに時間を費やしているかによって大きく異なります。

ところで、mmcache は現在別のプロジェクトに組み込まれています。名前は忘れましたが、Google が教えてくれます。

私は運用サーバーで APC を使用していますが、そのまま使用しても非常にうまく機能します。それをコンパイルして PHP に追加すれば、調整する必要はほとんどありません。統計を確認するためだけに時々チェックしますが、MVC をよく使用しているため、すべてのメイン ファイル (ルーター、コントローラーなど) が日常的に変更されることはほとんどないため、コードはコンパイルされた状態を維持し、非常に効率的に実行されます。 。

現在、私たちは無料の APC を使用しており、ライブサーバー上で単純なプラグアンドプレイでした。特にプロジェクトのサイズが増加したため、サイトのパフォーマンスが大幅に向上しました。また、apc.stat を無効にしているため、コードが更新されたかどうかがチェックされないため、ライブサイトでコードを更新する必要がある場合は常に Apache を再起動します。

私は APC を使用していますが、高いキャッシュ ヒット率を維持すれば、アプリ サーバーの CPU と I/O 負荷を大幅に軽減できることを証明できます。コンパイルの手間が省けるだけでなく、ディスクから PHP ファイルを読み取る手間も省けます。(すなわち、バイトコードはメイン メモリから直接提供されるため、非常に高速です) これにより、単一ページのレンダリング速度が低下し、サーバーが処理できる 1 秒あたりのリクエストが増加します。

RedHat または CentOS を使用している場合、APC のインストールは非常に簡単です。

yum install php-devel httpd-devel php-pear
pecl install apc 
echo "extension=apc.so" > /etc/php.d/apc.ini
# if you're using SELinux:
chcon "system_u:object_r:textrel_shlib_t" /usr/lib/php/modules/apc.so
/etc/init.d/httpd restart

デメリットについてお聞きしました。唯一の欠点は、ある程度のメモリが必要なことです。APC のデフォルトは 30MB ですが、調整可能であり、速度と応答速度が向上するため、メモリのコストが少し高くても十分に元が取れます。

BlaM のテストには、WordPress によって行われたすべての DB 呼び出しが含まれていました。DB 呼び出しの回数が少なくなると、オペコード キャッシュのパフォーマンスがさらに劇的に向上することがわかります。

私は少し昔 (2004 年頃) Zend Accelerator を使用していました。確かに、動作するコードに関してはパフォーマンスが大幅に向上しましたが、残念なことに、私が使用していたシステムは、頻繁にコードを動的にロードして評価するように設計されており、当時の Zend Accelerator ではそれをあまり処理できませんでした (そして私はまだ無理だと思います)。

マイナス面としては、確かにいくつかのキャッシュの問題が見られました (コードは変更されるはずですが、何らかの理由でコンパイルされたバージョンがその変更と同期する場合)。おそらくそれらの問題はすでに解決されているのではないかと思います。

いずれにせよ、私には明確な比較数値はありませんし、比較のために同じシステムを異なる環境で作成したわけではありませんが、大多数のシステムでは、PHP がパフォーマンスの点で犠牲になることはありません。

ファランガーをチェックしましたか?PHP を .NET コードにコンパイルします。ここにあります いくつかのベンチマーク これは、パフォーマンスを劇的に向上させることができることを示しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top