| 
        php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
 PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits             
             [2009-08-24 14:28 UTC] jani@php.net
  [2009-08-25 14:19 UTC] pearl1985 at interia dot pl
  | 
    |||||||||||||||||||||||||||
            
                 
                Copyright © 2001-2025 The PHP GroupAll rights reserved.  | 
        Last updated: Tue Nov 04 09:00:01 2025 UTC | 
Description: ------------ When I was using function lambda in class, I saw that it is using a lot of operating memory. I saw this error when the script was sending e-mails reports to users registered in my service. Reproduce code: --------------- <?php class example { function test() { $var = create_function('', '$a = 1;$b=2;$c=$a+$b;'); $var(); unset($var); } } $example = new example; for($i=0;$i<=10000;$i++) { $example->test(); } echo 'Results after remove lambda'."\n"; echo 'Memory limit: '.ini_get('memory_limit')."\n"; echo 'Usage: '. round(memory_get_usage()/1024/1024, 1)."\n"; echo 'Peak:'. round(memory_get_peak_usage()/1024/1024, 1); echo "\n"; ?> Expected result: ---------------- I expected a slight growth of operating memory usage by script. By using endless loop, I expect the script will be executing even for 2 hours, thanks to correction of appropriate php configuration directive. Actual result: -------------- When I used endless loop while(true), php engine ended its work after 2 minutes,generating error "PHP Fatal error: Allowed memory size of 41943040 bytes exhausted (tried to allocate 40961 bytes)"