Отсутствуют имена функций при открытии файла CacheGrind в WinCacheGrind

Ад все. Я установил XDEBUG на сервер apache / php в качестве модуля ZEND. Он выводит файлы профилирования, но вывод не содержит имен функций, только цифры.

Я не похож на другие файлы вывода cachegrind. Мои файлы имеют номера вместо имен функций / файлов.

Если я пытаюсь использовать WinCacheGrind, чтобы открыть файл, получается ошибка.
Также я установил webgrind и вывод показывает только цифры. Иногда есть имя файла, но перед именем файла стоит номер. Нажатие на него приводит к ошибке.

версия: 1 создатель: xdebug 2.3.2
cmd: /backup/united/public_html/member.php
часть: 1 позиции: линия

события: время

fl=(1) php:internal
fn=(1) php::define
7 5

fl=(1)
fn=(1)
51 3

fl=(1)
fn=(1)
52 1

fl=(1)
fn=(1)
53 1

fl=(1)
fn=(1)
54 1

fl=(1)
fn=(1)
55 1

fl=(1)
fn=(1)
57 1

fl=(1)

Посмотреть Изображение Webgrind

4

Решение

Я обнаружил, что Xdebug 2.3.2 имеет новый формат, который не совместим с webgrind и другими визуализаторами. Вот почему визуализация не включает имена функций.

Однако он совместим с QCacheGrind 0.7.4
Я установил его и нашел источник плохой производительности на веб-сервере.

5

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

Начиная с XDebug 2.3 дублированные имена файлов и функций были заменены числами для экономии места, поэтому убедитесь, что ваш формат cachegrind поддерживает сжатие «имя файла» и «имя функции».

Увидеть: Профилирование PHP-скриптов на XDebug

Пользователи Windows могут альтернативно использовать WinCacheGrind. Функциональность отличается от KCacheGrind, поэтому раздел, описывающий использование KCacheGrind на этой странице, не относится к этой программе. WinCacheGrind в настоящее время не поддерживает сжатие файлов и функций для файлов cachegrind, которые Xdebug 2.3 представляет.

Для более подробной информации о сжатии имен, проверьте Спецификация формата Callgrind. Вот несколько кратких:

С введением спецификаций ассоциации, таких как вызовы, необходимо указывать одну и ту же функцию или одно и то же имя файла несколько раз. Поскольку абсолютные имена файлов или имен символов в C ++ могут быть довольно длинными, полезно иметь возможность указывать целочисленные идентификаторы для определения местоположения. Здесь термин «позиция» соответствует имени файла (исходный или объектный файл) или имени функции.

Чтобы поддерживать сжатие имени, указание позиции может быть не только форматаspec=name«, но также «spec=(ID) name«указать отображение целочисленного идентификатора на имя и»spec=(ID)«для ссылки на ранее определенное отображение идентификатора. Для каждой спецификации позиции существует отдельное отображение идентификатора, то есть вы можете использовать идентификатор 1 как для имени файла, так и для имени символа.

Проверьте также статус этих отчетов об ошибках:

2

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