#27126 [Opn->Bgs]: Filling an array with php on Solaris is really slow.
| From: | iliaa@php.net | Date: | Tue, 03 Feb 2004 15:27:08 +0000 |
| Subject: | #27126 [Opn->Bgs]: Filling an array with php on Solaris is really slow. | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-54336@lists.php.net to get a copy of this message | ||
ID: 27126
Updated by: iliaa@php.net
Reported By: mike at schreiber dot com
-Status: Open
+Status: Bogus
Bug Type: Performance problem
Operating System: Solaris 6-10beta
PHP Version: Irrelevant
New Comment:
Sorry, but your problem does not imply a bug in PHP itself. For a
list of more appropriate places to ask for help using PHP, please
visit http://www.php.net/support.php as this bug system
is not the
appropriate forum for asking support questions.
Thank you for your interest in PHP.
Given that the code runs at different speed across various
platforms, I'd say this a platform issue more then anything
else.
Previous Comments:
------------------------------------------------------------------------
[2004-02-03 02:45:38] mike at schreiber dot com
Description:
------------
While filling an array with about 400.000 Elements on a solaris box
took several seconds to be done. On other OS or for example Java und
Sun took only a few mill-seconds.
The debugger reports, that php ist trying to fetch memory for every
element in the array. This is the reason why it get so slow.
I have tried different Solaris Versions and different php versions. It
is the compination of solaris and php.
Linux und Solaris (same hardware) is much more faster.
Reproduce code:
---------------
<?php
function GetMicrotime(){
list($microseconds, $seconds) = explode("
",microtime());
return ((float)$microseconds + (float)$seconds);
}
$start = GetMicrotime();
$ende = GetMicrotime();
for($i=0;$i<50000;$i++)
{
$great_dump[] = array(1234,1234,1234);
}
$ende = GetMicrotime();
$time = $ende - $start;
printf("%.10f",$time);
echo "\n";
echo sizeof($great_dump);
?>
Expected result:
----------------
less then one second
Actual result:
--------------
took me about 6,3 seconds
Debugger:
0.1541 brk(0x003EC3A8) = 0
0.1542 brk(0x003EC3A8) = 0
0.1543 brk(0x003EE3A8) = 0
0.1544 brk(0x003EE3A8) = 0
0.1545 brk(0x003F03A8) = 0
0.1546 brk(0x003F03A8) = 0
0.1547 brk(0x003F23A8) = 0
0.1548 brk(0x003F23A8) = 0
0.1549 brk(0x003F43A8) = 0
0.1550 brk(0x003F43A8) = 0
0.1551 brk(0x003F63A8) = 0
continues about 3500 times
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=27126&edit=1