5

X ミリ秒を超える、または Y KB RAM を超える「ジャンプ」のみを xdebug にトレースさせたいと考えています。これにより、表示する必要のない何千ものトレースラインを無視できるようになり、最適化がはるかに簡単になります.ZF2では、肥大化したフレームワークは、エンタープライズプロジェクトのコンポーザーオートローダーで開始するのに1秒しかかかりません。何千行にもわたって、私は本当に使い道がありません。どこかで、実行時間の大きなジャンプを見つけましたが、長時間のスクロールの後ではありませんでした。

「X よりも速い」実行のログを無効にするデフォルトのオプションはありますか、そうでない場合は、遅いものだけを grep できるヘルパー シェル/Python スクリプトを知っていますか?

明確にするために、アプリで xdebug_start_trace() を実行して取得した .xt ファイルの内容について話しています。

4

1 に答える 1

1

私はそのようなオプションについて何も知りませんが、私が提案するかもしれないのは、トレースの代わりにプロファイルを使用することです。

こちらが使い方の記事です。短い場合は、次の行をphp.iniファイルに配置します。

xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 1
xdebug.profiler_output_dir="c:\Projects"

プロファイラーを起動する場合は、クエリパラメーターを指定してurlを実行します?XDEBUG_PROFILE=1

これにより、のような名前のファイルが生成cachegrind.out.*され、に配置されprofiler_output_dirます。

そのファイルは、OSのCacheGrindビューアで表示できます。上記のリンクには、さまざまなプラットフォームのファイルを表示するためのアプリのリストがあります。私はwincachegrind(Windows用)を使用してZendFrameworkアプリのプロファイルを作成していました。私にとってはとても便利なツールです。また、インターフェイスでは、呼び出しツリー、実行時間、呼び出し数などを確認できます。しかし、それを使用してメモリ使用量を測定するオプションはありません。

于 2013-02-13T08:14:16.627 に答える