UbuntuによるPHPのデバッグでXdebug2のプロファイリングデータを使用するには

StackOverflow https://stackoverflow.com/questions/1284346

質問

私の質問はに基づいています この記事.

XDUBUG2によるPHPコードに関するプロファイリングデータを作成してから、KCachegrindのようなアプリに配置するにはどうすればよいですか?

ブラウザでのエラーメッセージを強調表示するため、UbuntuでXdebugを正常に使用しました。しかし、私は次のような端末ツールを見つけていません xdebug.

このようなPHPコードの視覚的な見方をしたい

alt text

役に立ちましたか?

解決

この行をphp.iniに追加します

xdebug.profiler_enable = 1

次に、Webサーバーを介してPHPを実行した場合は、Webサーバーを再起動する必要があります。そうしないと、CONFの変更が取り上げられません。

CLIを介してPHPを実行している場合、もちろん再起動は必要ありません。

これで、PHPスクリプトを実行すると、cachegrind.out.pidファイルがxdebug.profiler_output_dir php.ini設定で指定されたディレクトリに作成されます。デフォルトでは /TMPです。

そのファイルは、KCachegrindがロードできるものです。

このプロファイル生成を呼び出す他の手段があります、あなたはそれらについてで読むことができます http://www.xdebug.org/docs/all_settings#profiler_enable

他のヒント

WebGrindを見てください(http://code.google.com/p/webgrind/)

私は、テストする視覚環境ではなく、端末にのみアクセスできるような状況に遭遇しました。さらに悪いことに、私はWindows MachineとPuttyを使用していました。

利用可能なソリューションは次のとおりです

  1. WebGrindのインストール(http://code.google.com/p/webgrind/)
  2. XDebugを実行し、Cachegrind.OutファイルをCachegrind Viewerを持っているマシンにコピーします。

私にとって答えは、私のローカルWindowsマシンにCachegrindファイルをSCPすることであり、WinCachegrindを使用してそれらを見ることでした。 Linuxボックスにscpして、ファイルでkcachegrindを実行できます。これの欠点は、同じファイル構造がない可能性があるため、Sourcodeを表示できないことです。地元のマシンにもソースがある場合、またはそこに入手できる場合は、これも修正できます。 VIM(または他のエディター)のCachegrindファイルを開き、グローバル検索を行い、パスを交換して、ローカルマシンの正しいソースパスに変更します。

これがあなたが探していたものであることを願っています。

コメントに対処するために編集:

やや異なるcallgrindファイルを取得するために作業している場合。このためには、Linuxで実行している必要があります(あなたはそう思います)、CallGrindおよびValgrindプログラムを利用できるようにする必要があります。ここで最後に想定することは、他の方法ではなく、Apache modとしてPHPを実行していることです。 Apacheの開始に対してCallGrindツールを使用してから、ブラウザでリクエストを実行します。これにより、PHPコールツリーだけでなく、トラブルを引き起こしている可能性のあるApacheの多くのことについても詳細な情報が得られます。

これがの例です

sudo callgrind --dump-instr=yes --trace-jump=yes -v /usr/sbin/httpd -X

-Xは、1つのスレッドのみでデバッグモードでApacheを開始します。ここからWebブラウザを開き、必要なPHPスクリプトを押します。その後、戻ってApacheをシャットダウンします。これにより、CallGrind Parseも終了するはずです。

ApacheやWebブラウザが必要ない場合は、PHPコマンドだけでCallGrindを実行してみてください

sudo callgrind --dump-instr=yes --trace-jump=yes -v /usr/sbin/php my_php_script.php

それはあなたに同じ結果を与えるはずですが、すべてのアパッチのものはありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top