Mailinglisten-Archive |
Norbert Pfeiffer wrote: > Hi Sebastian, > >>> Man muss auch beachten, dass man soviele unset($irgendwas); >>> einfuegen kann, wie man will. Waehrend des aktuellen Laufes >>> wird der RAM nicht wieder verfuegbar. >> nicht wieder verfügbar für andere Prozesse (außerhalb PHPs) >> aber PHP selber kann den so 'freigegebenen' Speicher für was >> anderes verwenden. > koennte !!! > a - wie ich schon schrieb, mit unset(); ist die Variable > zwar weg, aber der RAM nicht wieder verfuegbar - test it > b - keine Scriptsprache gibt den RAM waehrend des Runs an das > BS zurueck, was man leicht asprobieren kann, indem man das > Script animiert immer neuen Speicher zu allocieren und > paralell alten RAM "freizugeben". Diese Schleife endet <?php if (! function_exists('memory_get_usage')) { echo 'cannot run memorytest, needs --with-memory-limit'; exit; } /** * testing memory consumption */ $loops = 1000; $data = str_repeat('X', 1000); echo 'Memory before unset loop: ' . memory_get_usage() . "<br />\n"; for ($i = 0; $i < $loops; $i++) { $varname = 'var' . $i; $$varname = $i . $data . $i; unset($$varname); echo 'unset loop ' . $i . ': ' . memory_get_usage() . "<br />\n"; } echo 'Memory after unset loop: ' . memory_get_usage() . "<br />\n"; echo 'Memory before loop: ' . memory_get_usage() . "<br />\n"; for ($i = 0; $i < $loops; $i++) { $varname = 'var' . $i; $$varname = $i . $data . $i; echo 'loop ' . $i . ': ' . memory_get_usage() . "<br />\n"; } echo 'Memory after loop: ' . memory_get_usage() . "<br />\n"; echo "\n" . '<hr />finished'; ?> ------------------------------------ php-Version: 5.1.2 - php-OS: Linux - Memory before unset loop: 53312 unset loop 0: 53352 unset loop 1: 53352 ... unset loop 999: 53440 Memory after unset loop: 53440 Memory before loop: 53440 loop 0: 54448 loop 1: 55496 ... loop 999: 1132904 Memory after loop: 1132904 finished > immer mit einem Scriptabbruch und unter Windoof auch schon > mal mit dem Niedergang des BS ... ;-) Windows ... kennt ja auch kein memory_limit und somit auch kein memory_usage() da kann man das eh nicht testen -- Sebastian Mendel www.sebastianmendel.de www.sf.net/projects/phpdatetime | www.sf.net/projects/phptimesheet
php::bar PHP Wiki - Listenarchive