2016-10-28 9 views
0

xdebugを使用してphp7で書かれたアプリケーションをプロファイルしようとしています。qcachegrindエラー:不明なファイル形式です。 phpから生成されたファイルxdebug

私は ini設定に従うように設定するスクリプト書いた

:私が期待するようスクリプトを実行

ini_set('xdebug.trace_format',1); // Note: I tried 0 and 2 here as well 
ini_set('xdebug.profiler_enable',1); 
xdebug_start_trace('/tmp/cachegrind.out'); 
// RUN CODE HERE 
xdebug_stop_trace(); 

はcachegrindファイルを作成:ここで

[email protected]:/# ls /tmp | grep cachegrind 
cachegrind.out.0028fd.xt 
cachegrind.out.0072ab.xt 
cachegrind.out.009b09.xt 
cachegrind.out.025ac3.xt 

は、最初の数行ですフォーマットが表示されるようにcachegrindファイル:

Version: 2.4.1 
File format: 4 
TRACE START [2016-10-28 05:26:57] 
2 3784 1 0.242945 2692856 
2 3785 0 0.242955 2692800 DI\Container->set 1  /path/public/api/index.php 100 
2 3785 1 0.242966 2692800 
2 3786 0 0.242973 2692800 spl_autoload_call 0  /path/public/api/index.php 103 
3 3787 0 0.242982 2692896 Fuel\Core\Autoloader::load 1  /path/public/api/index.php 103 
4 3788 0 0.242990 2692896 strpos 0  /path/fuel/core/classes/autoloader.php 219 

ただし、私はそれを開くことができない、qcachegrindでこのファイルを開こう:

enter image description here

エラーメッセージが読み:「読み込みエラー/path/to/cachegrind/file:不明なファイル形式

誰もがここで何が起こっているか知っていますか?私はこのようなツールを使って自分のアプリケーションをプロファイリングすることができるようにしたいと思っています。

また、MCGでファイルを開こうとすると$ 30が壊れましたが、これらのファイルを開くとすぐにそのアプリケーションがクラッシュします。サイドノートとして

、ファイルはかなり大きいが、私はアプリは怖がられることを期待したいほど大きくはない:

❯ ls -al /Users/johnpc/repos/cachegrind.out.094ffa.xt 
-rw-r--r-- 1 johnpc staff 62744095 Oct 28 02:13 /Users/johnpc/repos/cachegrind.out.094ffa.xt 

答えて

1

ファイルは、トレースファイルではありませんcallgrindファイルであること。

iniのtrace_output_nameとprofiler_output_nameを同じ文字列に設定しているか、間違ったファイルを開こうとしているようです。 iniファイルにprofiling_ *変数を設定する必要があります。 参照:「プロファイリングPHPスクリプト」を出力するプロファイリングxdebug docs

サンプルには次のようになります。あなたがあるため、ファイルサイズの問題を取得するとき

version: 1 
    creator: xdebug 2.1.1rc1 
    cmd: /Users/foo/bar/test1.php 
    part: 1 
    positions: line 

    events: Time 

    fl=php:internal 
    fn=php::microtime 

、あなたもprofilingviewer.com

からアプリを試みることができます
+0

ああ、そうだ。 [docs](https://xdebug.org/docs/profiler)を詳しく見ると、 'この設定はini_set()でスクリプトに設定できません。 – johncorser

関連する問題