8

ランタイムベンチマークによるPHPコードの最適化は簡単です。コードブロックの周りのmicrotime()を介して$startと$endの時間を追跡します-microtime()の使用を含む答えを探していません。

私がやりたいのは、PHPがコードを実行する準備をするのにかかる時間を測定することです-コード解析/オペコードツリー構築時間。私の考えでは、サイトにあるすべてのページに必要なすべてのクラスを含めるのは簡単ですが、CPUのオーバーヘッドを「解放」することはできませ。解析時間が実際にどれほど「高価」であるかを知りたいのですが。

APCなどのオペコードキャッシュはシナリオの一部ではないと想定しています。

PHPでの解析時間の測定は、mod_phpで行わなければならないことであるというのは正しいでしょうか?

編集:可能であれば、コードでの使用法を考慮に入れる$_SERVER['DOCUMENT_ROOT']と役に立ちます。コマンドソリューションは、これを行うために少し手を加える必要があるかもしれません(しかし、それでも価値のある答えです)。

4

3 に答える 3

10

はい。がある。

<?php return; rest of the code ?>

また

<?php whole code; $%^parse erorr!@! ?>

次に、空のスクリプトを実行する時間を比較します

time php empty.php

私が上で述べた追加で通常のスクリプトを実行する(または失敗する)のに時間がかかります:

time php test.php

私はこの方法を大きなファイルで使用しましたが、Core2Duo 2.4GhzのPHP5.3は、1秒あたり1.5〜4.5MBのPHPコードを解析できます(もちろん、コードの複雑さに大きく依存します)。

于 2008-11-09T19:38:17.583 に答える
2

1つの方法は、コマンドラインからスクリプトの実行のタイミングをとることです。

たとえばLinuxの場合:

$ time php5 -r 'echo "Hello world";'
Hello world
real    0m1.565s
user    0m0.036s
sys     0m0.024s

それはまったく役に立ちますか?おそらく、異なるスクリプト間の相対的な時間を発見するのに役立ちますが、Apacheモジュールにかかった時間を示していない可能性があります

于 2008-11-09T19:36:53.653 に答える
2

あなたが求めている詳細なレベルの分析については、Xdebug ( http://xdebug.org/ ) を実装すると、コードを分割することなく最大の情報が得られるようです。

于 2008-11-09T20:21:42.127 に答える