Най-накрая успях да намеря решението. Открих, че когато боклукът за събиране на PHP се запълни, няма начин да го освободим. Unset
и gc_collect_cycles()
също не са ефективни. Единственият начин е да използвате Function
върху различни части от кодове. В моя случай имах голям скрипт в цикъл for, така че копирах всичките си кодове във функция и в моя цикъл извиквам функцията. Всеки път, когато функцията затихва, паметта се освобождава. Можете да го тествате, като добавите memory_get_usage()
веднъж във вашата функция и веднъж извън функцията, за да видите разликата.