Hallo,
ich hab ein kleines Problem mit nem MemLeak in PHP. Gegeben sei folgender Code:
Code:
$usage = array(memory_get_usage(), memory_get_usage(), memory_get_usage(), memory_get_usage());
$usage[0] = memory_get_usage();
$foo = 'bar';
$usage[1] = memory_get_usage();
unset($foo);
$usage[2] = memory_get_usage();
$foo = null;
$usage[3] = memory_get_usage();
echo "<pre>". print_r($usage, 1) ."</pre>";
Die Ausgabe ist folgende:
Code:
Array
(
[0] => 59256
[1] => 59344
[2] => 59344
[3] => 59344
)
Man sieht also, dass der Speicherverbrauch auch durch unset nicht runtergeht. Ich habs auf zig verschiedene Varianten getestet, aber der Verbrauch bleibt immer oben. Ich hab auch ausgeschlossen, dass memory_get_usage() selbst oder das Array den Verbrauch hochziehn. Nehm ich alle Anweisungen mit $foo raus, bleibt der Verbrauch konstant.
Kann mir jemand evtl. erklaeren, wie ich das Problem umgehn kann? Mir faellt sonst kein Weg ein, verwendeten Speicher wieder freizugeben, und ich stosse bei ein paar Webseiten so langsam an Kapazitaetsgrenzen
Greetz
alcaeus