При ведении журнала вы всегда запутаетесь в строковых литералах.
Я решил это удобно для свойств, полей и переменных, передавая Expression
(как объясняется здесь ), поэтому вы можете делать такие вещи: Я использовал xdebug и cachegrind для профилирования кода, но он ...
Я начал свой первый довольно серьезный проект программирования с помощью PHP, и мне трудно получить хорошую информацию для профилирования. Я использовал xdebug и cachegrind для профилирования кода, но при этом предполагается, что время «самостоятельного» выполнения функции - это общее время, которое требуется для выполнения функции, за вычетом агрегированного времени любой функции (ей), которую она вызывает.
Хотя это и есть правильный по сути, он не помогает, как мог бы, когда я пытаюсь оптимизировать код. Например, у меня есть простая функция с двумя операторами if, которая возвращает массив с двумя значениями и занимает 26% от общего времени выполнения согласно xdebug. Он использует array_key_exists, и я вижу, что время выполнения этих вызовов функций составляет около 1%. Чего я не вижу, так это того, как остальные 25% времени выполнения приходятся на остальную часть кода. Сколько времени потребовалось для операторов if, получения пары значений, помещения этих значений в массив и возврата массива?
Есть ли какой-нибудь флаг xdebug, который я пропустил в документации? Или есть инструмент профилирования для PHP, который профилирует присвоение переменных, операторов, построение основных типов данных и другие нефункциональные вызовы? Предпочтительно что-то, что не предполагает, что сценарий доступен через веб-сервер.
Примером чего-то похожего на то, что я ищу, является nytprof для perl. Обратите внимание, что он профилирует каждую строку кода внутри функции (кроме последнего нажатия, которое никогда не выполняется).