2008-09-09 10 views
6

内部に精通していない場合は、PHPコードのパフォーマンス結果をどのように判断できますか?あなたのコードがどのように実行されているか把握する方法はありますか?私はメモリ使用量、アルゴリズムの実行時間のようなものを探しています。PHPコードのパフォーマンス結果の決定

おそらくジョエルは「Cを学んで内部を読んでいる」と言っていたかもしれませんが、実際にはCを学ぶ時間はありません。

答えて

4

Xdebug拡張子を使用してPHPコードをプロファイルします。あなたはvalgrindのまたは同様に慣れていない場合は

3

、その後、あなたはXdebugの中にプロファイリングを持っていた場合には

は、あなたがKCacheGrindにダンプされたプロファイルのファイルを開くことができます... @Jordi Bunsterの答えに追加しますか、 WinCacheGrindを使用して、コード内で何が起きているのかをグラフィカルに表示します。

幸いXdebugのドキュメントも結果を解釈する方法だけでなく、これを詳細に説明する:http://xdebug.org/docs/profiler

0

あなたが内部に精通している場合でも、あなたはまだあなたの仮定をテストロードする必要があります。私は異なるコードを比較するためにPEAR Benchmarkパッケージを使用するのが好きです。

コードを分離できれば、負荷テストを簡単に保つことができます。典型的な手法は、各オプションを何回か実行して、どちらが高速かを確認することです。たとえば、クラスを持っている場合は、テストケースを記述することができます。テストケースはペースを通り、何度も実行されます。

+0

しかし、このようなマイクロ最適化でハングアップしないでください。すべてのPHPウェブアプリケーションは、マイクロ最適化をかなり冗長にするオペコードキャッシュを介して実行されている必要があります。 – Polsonby

+0

「vs」タイプの最適化についてはあまり考えていませんでした。デザインとアルゴリズムのタイプの最適化が増えました。 –

0

あなたは、このようなコードにmicrotime()memory_get_usage()呼び出しを貼り付けるなどの低レベルのアプローチを使用するか、既存のプロファイリングソリューションのいずれかを使用できます。

  1. Xdebug(無料、オープンソース)
  2. Zend Studio/Debugger(コマーシャルをプロファイリング)
  3. Zend Server Code Tracing(商用)
  4. xhprof(無料、オープンソース)

いつものように、市販のツールは素晴らしいGUIと美しい写真を持っていますが、無料のものは無料ですが、もう少し投資する必要があります。

また、PHP CGIバイナリには-Tオプションのベンチマークモードがあります。多くの人はphp-cgi -T 100 yourscript.phpを実行して、貧弱な人のベンチマークを実行してみてください。

0

SD PHP ProfilerあなたのPHPアプリケーションがどこの時間を費やしているかをグラフィカルに表示できるツールについては、SD PHP Profilerを参照してください。