qcachegrind error: Unknown file format. File generated from php xdebug
qcachegrind error: Unknown file format. File generated from php xdebug
我正在尝试使用 xdebug 来分析用 php7 编写的应用程序。
我编写了一个脚本来设置以下 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 文件:
root@host:/# 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
中打开此文件时,它无法打开:
错误消息显示:“加载错误 /path/to/cachegrind/file
:未知文件格式
有人知道这是怎么回事吗?我希望能够使用这样的工具来分析我的应用程序。
我还花了 30 美元尝试打开 MCG 中的文件,但该应用程序在打开任何这些文件后立即崩溃。
附带说明一下,该文件相当大,但还没有大到我认为应用程序会崩溃的程度:
❯ 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
该文件是跟踪文件而不是调用文件。
我似乎将 ini 中的 trace_output_name 和 profiler_output_name 设置为相同的字符串或试图打开错误的文件。您需要在 ini 中设置 profiling_* 变量。
参见:xdebug docs
中的 "Profiling PHP Scripts"
示例分析输出如下所示:
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
中的应用程序
我正在尝试使用 xdebug 来分析用 php7 编写的应用程序。
我编写了一个脚本来设置以下 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 文件:
root@host:/# 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
中打开此文件时,它无法打开:
错误消息显示:“加载错误 /path/to/cachegrind/file
:未知文件格式
有人知道这是怎么回事吗?我希望能够使用这样的工具来分析我的应用程序。
我还花了 30 美元尝试打开 MCG 中的文件,但该应用程序在打开任何这些文件后立即崩溃。
附带说明一下,该文件相当大,但还没有大到我认为应用程序会崩溃的程度:
❯ 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
该文件是跟踪文件而不是调用文件。
我似乎将 ini 中的 trace_output_name 和 profiler_output_name 设置为相同的字符串或试图打开错误的文件。您需要在 ini 中设置 profiling_* 变量。 参见:xdebug docs
中的 "Profiling PHP Scripts"示例分析输出如下所示:
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
中的应用程序