Очистка кеша memory_get_peak_usage - PullRequest
0 голосов
/ 15 марта 2012

Я пытаюсь отследить утечку памяти в программе PHP (Magento, если это имеет значение).Основная проблема - утечка в каком-то объекте / классе, которая со временем растет.То есть, чем больше информации будет занесено в базу данных, тем больше памяти будут использовать определенные процессы приложения.Magento - это очень абстрактная система, поэтому не всегда понятно, какой код запускается и потребляет так много памяти.Вот что я пытаюсь отследить.

Я использовал memory_get_peak_usage в конце файла начальной загрузки программы для оценки производительности и наблюдал устойчивый рост от 250 МБ пиковой нагрузки до 310 МБпиковое использование примерно через неделю.Я хотел бы использовать memory_get_peak_usage с перерывами в течение цикла выполнения, чтобы спросить

Каково было максимальное использование до этого вызова?[позже в цикле] Каково было максимальное использование до этого нового вызова?

Проблема, с которой я сталкиваюсь, состоит в том, что, как только я вызову memory_get_peak_usage один раз, любой будущий вызов возвращает то же значениекак первый звонок, даже когда я знаю, что пиковое использование изменилось.Это приводит меня к мысли, что после однократного вызова memory_get_peak_usage PHP кэширует результат.Я хотел бы распаковать его, чтобы выполнить тестирование, описанное выше.

  1. Могу ли я позвонить memory_get_peak_usage несколько раз?

  2. Есть ли альтернативапрофилирование сценария, который я описал выше.Может, какая-то особенность xDebug?

1 Ответ

1 голос
/ 15 марта 2012

Могу ли я вызвать memory_get_peak_usage несколько раз?

Не уверен в этом.

Есть ли альтернатива профилированию сценария, который я описал выше.Может, какая-то особенность xDebug?

Загляните на страницу профиля XDebug .Прошло некоторое время с тех пор, как я профилировал приложение, но когда я это сделал, я следил за написанием и работал отлично.

...