<?php function waste() { for($i=0;$i<=70000;$i++){ $data[] = $i; } foreach($data as $set){ 'raz', 'list'=>4000 ); } } for($i=0;$i<40;$i++){ waste(); }
Powyższy kod działa tak jak zakładałem jednak tylko u mnie na localhoście. Natomiast w środowisku produkcyjnym wartości memory_get_usage(true); są ekstremalnie wysokie. Poniżej prezentuję wartości otrzymane na serwerze: PHP wersja 5.3.26, lokalnie taka sama wersja a wynik maksymalny to 6029312. Nie wiem dlaczego unset(); nie zwalnia pamięci zajmowanej przez te dwie tablice. Ktoś może mnie naprowadzić jak to zdebugować albo dlaczego jest takie duże zużycie?
14942208
28311552
39845888
...
86507520
88342528
92012544
...
97255424
97255424
97255424
...
97779712
przed: 101187584
po: 98041856
ale jak na takie coś to chyba i tak dużo?