2008-08-16 20 views
16

誰かがMMCacheZend AcceleratorのようなPHPアクセラレータでの作業経験がありますか?私はこれらのいずれかを使用して、PHPをに匹敵するものにするかどうかを知りたいと思います。 web-technologies。また、これらを使用するトレードオフはありますか?コンパイル済みPHP?

+2

タイトルを「Accelerated PHP」に変更する必要があります。 PHPのコンパイルについては多くの質問がありますが、これはコンパイラについてのことではありません。 –

答えて

13

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

少し前にベンチマークを行いましたが、resultsが私のブログ(ドイツ語ですが)にあります。基本的な結果:

Zend Optimizer単独では役に立たなかった。実際、私のスクリプトはオプティマイザなしよりも遅かったです。

それがキャッシュに来る: *最速:あなたはオペコードキャッシュをインストールしますか:eAccelerator * XCache * APC

そして!例えば

alt text http://blogs.interdose.com/dominik/wp-content/uploads/2008/04/opcode_wordpress.png

これは、ワードプレスのホームページに10.000回を呼び出すのにかかった期間です。

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

2

実際に実行されるPHPコードの量とその実行にかかる時間によって、実際には大きな成果を上げることができます。それは確かに傷つけるつもりはありませんが、あなたが見る利益はあなたの時間が現在どこに費やされているかに非常に依存します。

btw mmcacheが別のプロジェクトにロールオーバーされました。名前は忘れてしまいますが、Googleからお知らせします。

3

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

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

問題は、システムによってはセットアップがあまり簡単ではないということです。

0

あなたはPhalangerをチェックしましたか?これはPHPを.NETコードにコンパイルします。ここにはsome benchmarksがあり、パフォーマンスが大幅に向上することが示されています。

+0

さらなるベンチマーク:http://www.php-compiler.net/benchmarks – Eldros

0

私は、ある日(2004-ish)にZend Acceleratorを少し使いました。残念ながら、私が使用していたシステムは、コードを動的にロードして評価するように設計されていました.Zend Acceleratorはその時点で多くのことを行うことができませんでした。 dはまだできないと思う)。

私たちは確かにいくつかのキャッシュの問題(コードは変更されるが、コンパイルされたバージョンはある理由で変更と同期する)を見た。私はこれらの問題が今までには解消されている可能性が高いと思います。

とにかく、私は比較数値を持っていませんし、比較のために異なる環境に同じシステムを書き込んでいないのは確かですが、大部分のシステムではPHPがパフォーマンスを犠牲にするわけではありません。

2

私のプロダクションサーバーでAPCを使用していますが、それは非常にうまく動作します。それをコンパイルしてPHPに追加してください。そのために行うべきことはあまりありません。私はそれを毎回チェックするだけで統計を確認するが、MVCを使うので、メインファイル(ルータ、コントローラなど)のすべてが日常的にはほとんど変わらないので、コードはコンパイルされ、かなり効率的に実行されます。

1

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

1

私はAPCを使用しており、高いキャッシュヒット率を維持すると、アプリケーションサーバーのCPUとI/O負荷を大幅に削減できることを証明できます。コンパイルする必要がなくなるだけでなく、ディスクからphpファイルを読み込む必要がなくなります。 (つまり、バイトコードはメインメモリから直接提供されるため、超高速です)単一ページをレンダリングする速度を下げ、サーバーが処理できる1秒あたりの要求数を増やします。

あなたはAPCをインストールし、RedHatのかCentOSのを使用する場合は、超簡単です:あなたはマイナス面について尋ね

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ですが、速度と応答速度を向上させて調整することができます。

1

BlaMのテストには、WordPressによるすべてのDB呼び出しが含まれていました。 DBコールを減らすと、オペコードキャッシュのパフォーマンスがさらに劇的に向上します。

+0

合意。他にもいくつかのテストがありました。しかし、私は "現実の世界"の例に行くことにしました;) – BlaM

関連する問題