|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2006-03-30 15:56 UTC] arnout at argeweb dot nl
[2006-03-30 16:07 UTC] tony2001@php.net
[2006-03-30 16:44 UTC] arnout at argeweb dot nl
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Nov 21 12:00:02 2025 UTC |
Description: ------------ Using the following code leaks 32 bytes of memory. $doe = 'yoyoyo'; echo "john $doe"; PHP 5.1.2 (cli) (built: Feb 22 2006 16:17:32) Copyright (c) 1997-2006 The PHP Group Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies with Zend Extension Manager v1.0.10, Copyright (c) 2003-2006, by Zend Technologies with Zend Optimizer v3.0.0-Beta2, Copyright (c) 1998-2006, by Zend Technologies Reproduce code: --------------- <?php @ob_end_flush(); // to be sure function fake1( $string ){ echo "kaas ".$string; } function fake2( $string ){ echo "kaas $string"; } function fake3( $string ){ $string = "kaas $string"; } function fake4( $string ){ echo "kaas $string asdf"; } echo "<P><b>function fake1</b></p>"; for( $i = 0;$i < 10; $i++ ){ echo "Memory at ".$i.": ".memory_get_usage()."<Br>\n"; fake1( "string" ); echo "Memory at ".$i.": ".memory_get_usage()."<Br>\n"; } echo "<P><b>function fake2</b></p>"; for( $i = 0;$i < 10; $i++ ){ echo "Memory at ".$i.": ".memory_get_usage()."<Br>\n"; fake2( "string" ); echo "Memory at ".$i.": ".memory_get_usage()."<Br>\n"; } echo "<P><b>function fake3</b></p>"; for( $i = 0;$i < 10; $i++ ){ echo "Memory at ".$i.": ".memory_get_usage()."<Br>\n"; fake3( "string" ); echo "Memory at ".$i.": ".memory_get_usage()."<Br>\n"; } echo "<P><b>function fake4</b></p>"; for( $i = 0;$i < 10; $i++ ){ echo "Memory at ".$i.": ".memory_get_usage()."<Br>\n"; fake4( "string" ); echo "Memory at ".$i.": ".memory_get_usage()."<Br>\n"; } ?> Expected result: ---------------- Hardly any change in memory usage. Actual result: -------------- function fake1 Memory at 0: 42920 kaas stringMemory at 0: 42984 Memory at 1: 42984 kaas stringMemory at 1: 42984 Memory at 2: 42984 kaas stringMemory at 2: 42984 Memory at 3: 42984 kaas stringMemory at 3: 42984 ...etcetera... +64 bytes, only once. function fake2 Memory at 0: 42984 kaas stringMemory at 0: 43000 Memory at 1: 43000 kaas stringMemory at 1: 43016 Memory at 2: 43016 kaas stringMemory at 2: 43032 Memory at 3: 43032 kaas stringMemory at 3: 43048 ...etcetera... +16 bytes function fake3 Memory at 0: 43144 Memory at 0: 43160 Memory at 1: 43160 Memory at 1: 43176 Memory at 2: 43176 Memory at 2: 43192 Memory at 3: 43192 Memory at 3: 43208 ...etcetera... +16 bytes function fake4 Memory at 0: 43304 kaas string asdfMemory at 0: 43328 Memory at 1: 43328 kaas string asdfMemory at 1: 43352 Memory at 2: 43352 kaas string asdfMemory at 2: 43376 ...etcetera... +24 bytes