профилирование — ошибка qcachegrind: неизвестный формат файла. Файл сгенерированный из 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

0

Решение

этот файл является файлом трассировки, а не файлом callgrind.

Мне кажется, вы устанавливаете trace_output_name и profiler_output_name в ini к той же строке или пытаетесь открыть неправильный файл. вам нужно установить переменные profiling_ * в ini.
см .: «Профилирование 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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]