Wreszcie udało mi się znaleźć rozwiązanie. Odkryłem, że kiedy śmieci kolekcji PHP się zapełniają, nie ma możliwości ich uwolnienia. Unset
i gc_collect_cycles()
również nie są skuteczne. Jedynym sposobem jest użycie Function
w różnych sekcjach kodów. W moim przypadku miałem duży skrypt w pętli for, więc skopiowałem wszystkie moje kody do funkcji, aw mojej pętli wywołuję funkcję. Za każdym razem, gdy funkcja się wycisza, pamięć się uwalnia. Możesz to przetestować, dodając memory_get_usage()
raz w swojej funkcji i raz poza funkcją, aby zobaczyć różnicę.