в программе PHP, я последовательно читаю кучу файлов (с file_get_contents
), gzdecode
их, json_decode
результат, анализирую содержимое, выкидываю большую часть его и сохраняю около 1% в массив.
К сожалению, с каждой итерацией (я перемещаюсь по массиву, содержащему имена файлов), кажется, потеряна некоторая потеря памяти (в соответствии с memory_get_peak_usage
, около 2-10 МБ каждый раз). У меня есть двойной и триплексный мой код, я не храню незавершенные данные в цикле (и необходимые данные почти не превышают около 10 МБ в целом), но я часто переписываю (фактически, строки в массиве). По-видимому, PHP не освобождает память правильно, тем самым используя все больше и больше ОЗУ, пока не достигнет предела.
Есть ли способ сделать принудительную сборку мусора? Или, по крайней мере, выяснить, где используется память?
Спасибо заранее, Дмитрий