Czy spotkał się ktoś z was z bardzo niecodziennym problemem tzn. Podczas używania buforowania wyjścia oraz definiowania w metodzie klasy funkcji lambda, nieoczekiwanie po wykonaniu wielu wielu pętli znika nagle pamięć dostępna dla skryptu?
Jest to dla mnie bardzo dziwne zjawisko, bo poniższą klasę która napisałem aby ukazać problem który zauważyłem wykorzystuję jako template, gdzie przed include pliku php (szablon) robię dwie funkcje lamba, które służą mi do komunikacji z klasą języków itp.
Aby zrozumieć w czym rzecz przedstawiam poniżej, kod w którym owy błąd się pojawia.
<?php class example { function test_remove_lambda() { $var = create_function('', '$a = 1;$b=2;$c=$a+$b;'); $var(); } } $example = new example; //Użycie pamięci równe 0.1 lub 0 for($i=0;$i<=10000;$i++) { $example->test_remove_lambda(); } // po wykonaniu się owej pętli, gdzie w ogóle nie składuję danych do zmiennej itp. rzeczy nagle zużywam ok 9mb ?>
Poniżej przedstawiam wynik obliczeń (pierwsze uruchomienie):
CODE
Memory limit: 128M
Usage: 0.1
Peak:0.1
Results after remove lambda
Memory limit: 128M
Usage: 8.4
Peak:8.5
Usage: 0.1
Peak:0.1
Results after remove lambda
Memory limit: 128M
Usage: 8.4
Peak:8.5
Kolejne uruchomienia skryptu:
CODE
Memory limit: 128M
Usage: 0
Peak:0
Results after remove lambda
Memory limit: 128M
Usage: 8.4
Peak:8.5
Usage: 0
Peak:0
Results after remove lambda
Memory limit: 128M
Usage: 8.4
Peak:8.5