У меня есть сценарий командной строки, который запускает array()
файлов через цикл и использует имя файла в качестве аргумента для вызова метода вспомогательного объекта.
При каждом запуске скрипта PHP memory_get_usage
сообщает о большем и большем числе
53294264
57019624
61374624
65699176
70230600
75157152
79900392
84630472
89359264
94300016
100031176
105202448
110360808
115777528
121146976
126784824
132366952
до тех пор, пока не произойдет ошибка с
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted
Понятно, что что-то вызывает утечку памяти или что-то вроде глобальной / статической области памяти продолжает добавляться. Какой лучший способ отладить такого рода ошибки в PHP? Есть ли общие ситуации, когда это происходит непреднамеренно в PHP? Есть ли в xDebug некоторые магические опции, которые могут помочь мне определить это? Другие инструменты?
Лучшее, что я придумал, это следовать цепочке выполнения и засорять кодовую базу вызовами memory_get_usage (), пока я не укажу точную проблему, но это кажется утомительным и неэффективным подходом.