What is the best method for memory cleanup in PHP? (5.2) What is the best method for memory cleanup in PHP? (5.2) php php

What is the best method for memory cleanup in PHP? (5.2)


PHP itself confuses both concepts sometimes but, in general, a variable set to NULL is not the same as a variable that does not exist:

<?php$foo = 'One';$bar = 'Two';$foo = NULL;unset($bar);var_dump($foo); // NULLvar_dump($bar); // Notice: Undefined variable: barvar_dump(get_defined_vars()); // Only foo shows up: ["foo"]=> NULL?>


unset() does just that, it unsets a variable; but it does not immediate free up memory.

PHP's garbage collector will actually free up memory previously used by variables that are now unset, but only when it runs. This could be sooner, when CPU cycles aren't actively being used for other work, or before the script would otherwise run out of memory... whichever situation occurs first.

And be aware that unset won't necessarily release the memory used by a variable if you have other references to that variable. It will simply delete the reference, and reduce the reference count for the actual stored data by 1.

EDITWhile unset doesn't immediately release the memory used (only garbage collection actually does that) the memory that is no longer used as a result is available for the declaration of new variables


I found problem.

First it was caused by xdebug profilling tools (i have turned on everything :) ) - and it consume lot of memory.

So remember: xdebug (when profilling turned on) consumes some memory in PHP process of your application

Second, I didn't release static members used in called functions.