|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2004-02-03 10:27 UTC] iliaa@php.net
[2004-02-04 02:36 UTC] mike at schreiber dot com
|
|||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Nov 02 14:00:01 2025 UTC |
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