0

cachegrind 用に Xdebug を構成しようとしていますが、実行された Web ページをダンプするためにプロファイラー機能を有効にすることができません。

公式ガイド(および同様の設定のいくつか) を使用していますが、機能していないようです。

両方の Linux マシン (Ubuntu と Fedora) で試しました。Xdebug はデバッグ用にvalgrind --tool=cachegrind正常に動作しており、アプリケーションを開始できるので、両方を適切にインストールする必要があります。

php.ini で profiler_enable および profiler_enable_trigger オプションをアクティブ化および非アクティブ化し、サーバーを再起動していましたが、うまくいきませんでした。パーミッションの関係かと思い、出力ディレクトリを変更。URL でフラグをパラメーターとして使用し?XDEBUG_PROFILER=1ても、どちらも役に立たないようです。

cachegrind の構成に関連する他の手がかりはありますか?

4

1 に答える 1

2

次の基本的な xdebug.ini でうまくいくはずです。

; check that the path is ok for you
zend_extension=/usr/lib/php5/20090626/xdebug.so
xdebug.profiler_enable=1
xdebug.profiler_output_name = cachegring.out.%s
xdebug.profiler_output_dir = /tmp

すべてのリクエストに対してプロファイラーが有効になることに注意してください。これはパフォーマンス上の重大な問題です。ただし、これが最初に機能するかどうかをテストする必要があります。機能することがわかった場合は、デフォルトで無効にします。


ヴァルグラインドについて。

あなたがやろうとしていることは不可能であることに注意してください。xdebug プロファイラーは、valgrind と連携/接続するようには設計されていません。valgrind と同じ出力形式を使用するだけです。したがって、形式は次の例と同じです。

valgrind --tool=cachegrind --cachegrind-out-file=test.cachegrind ls -al

kcachegrind通常、Linux やWindowsのような GUI プログラムを使用して、cachegrind ファイルを分析wincachegrindします。

于 2013-03-07T00:18:49.190 に答える