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

Reply via email to