|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2006-01-04 13:59 UTC] taneli at crasman dot fi
[2006-01-04 14:51 UTC] tony2001@php.net
[2006-01-04 14:58 UTC] taneli at crasman dot fi
[2006-01-04 15:00 UTC] taneli at crasman dot fi
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Oct 29 13:00:01 2025 UTC |
Description: ------------ Running unparsable code - which shouldn't be done, of course, but - causes a memory leak. Proper, parsable code does not cause memory leaks. Reproduce code: --------------- <?{ echo "Erroneous code eval():\n"; echo "Memory used before: " . memory_get_usage() . "\n"; for ($i = 0; $i < 1000; $i++) { eval('$foo = 1; $bar = 2; asdf'); echo "Loop $i, memory used: " . memory_get_usage() . "\n"; } echo "Memory used after: " . memory_get_usage() . "\n"; echo "\nProper code eval():\n"; echo "Memory used before: " . memory_get_usage() . "\n"; for ($i = 0; $i < 1000; $i++) { eval('$foo = 1; $bar = 2;'); echo "Loop $i, memory used: " . memory_get_usage() . "\n"; } echo "Memory used after: " . memory_get_usage() . "\n"; }?> Expected result: ---------------- Erroneous code eval(): Memory used before: 42568 Loop 1, memory used: 42568 ... Loop 999, memory used: 42568 Memory used after: 42568 Proper code eval(): Memory used before: 42568 Loop 1, memory used: 42568 ... Loop 999, memory used: 42568 Memory used after: 42568 Actual result: -------------- Erroneous code eval(): Memory used before: 42568 Loop 0, memory used: 49960 Loop 1, memory used: 57040 Loop 2, memory used: 64088 Loop 3, memory used: 71136 ... Loop 999, memory used: 7073088 Memory used after: 7073064 Proper code eval(): Memory used before: 7073064 Loop 0, memory used: 7073376 ... Loop 999, memory used: 7073376 Memory used after: 7073352