ID: 51122 User updated by: y_kopel at walla dot com Reported By: y_kopel at walla dot com Status: Bogus Bug Type: Arrays related Operating System: linux PHP Version: 5.3.1 New Comment:
so... maybe it worth to erite an optimization on it? Previous Comments: ------------------------------------------------------------------------ [2010-02-24 06:59:31] ras...@php.net With gc on there are gc checks on every iteration. Just because it doesn't use more memory doesn't mean that gc doesn't add more overhead ------------------------------------------------------------------------ [2010-02-24 06:57:03] y_kopel at walla dot com but... with and without gc_enable/gc_disable it consume the same ammount of memory but work 40 times longer with gc_enable ------------------------------------------------------------------------ [2010-02-23 13:02:23] j...@php.net Or run the script in 32bit system (and turn of GC :). With latest SVN checkout of PHP_5_3: $ src/build/php_5_3/sapi/cli/php -dmemory_limit=1G t.php 1.2259361743927 $ src/build/php_5_3/sapi/cli/php -dmemory_limit=1G -dzend.enable_gc=0 t.php 0.70840787887573 And with latest SVN checkout of PHP_5_2: $ src/build/php_5_2/sapi/cli/php -dmemory_limit=1G t.php 0.69131684303284 Not noticeable even. ------------------------------------------------------------------------ [2010-02-23 12:59:02] j...@php.net Just turn off garbage collection if this is a problem for you. (zend.enable_gc = off in php.ini) ------------------------------------------------------------------------ [2010-02-23 11:54:00] y_kopel at walla dot com shorter code: <?php for ($i = 0 ;$i < 1000000 ; $i++){ $users[$i]['SUM'] = 2; } $start = microtime(true); $sum = 0; foreach ($users as &$u){ if ($u['SUM'] > 1){ $sum++;} } echo microtime(true) - $start."\n"; ?> OUTPUT ====== php 5.2.1 ========= 0.328261852264 php 5.3.1 ========= 42.350708961487 ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/51122 -- Edit this bug report at http://bugs.php.net/?id=51122&edit=1