<?php
ini_set('hhvm.enable_zend_sorting', 0);
function timed($return=false){
global $timestart;
if (!isset($timestart)){$timestart=getmicrotime();return;}
static $time1;
$time2=getmicrotime();
if (!$time1)$time1=$timestart;
$diff=($time2-$time1);
$time1=$time2;
if ($return)return $diff;
echo "<BR>".$diff.'<BR>';
}
function getmicrotime(){
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
define("thisIsVeryBigKeyName0",0);
define("thisIsVeryBigKeyName1",1);
$arraysize=1000;
$interate=100;
$a=array();
timed();
for ($n=0;$n<$arraysize;$n++){
$a[]=array("thisIsVeryBigKeyName0"=>0,"thisIsVeryBigKeyName1"=>1);
}
for ($n=0;$n<$interate;$n++){
foreach ($a as $a2){
$test=$a2["thisIsVeryBigKeyName0"].$a2["thisIsVeryBigKeyName1"];
}
}
echo "assoc name: time ".timed(1)." usage ".memory_get_usage()." peakusage ".memory_get_peak_usage()."<BR>\n";
unset ($a);
timed(1);
$a=array();
for ($n=0;$n<$arraysize;$n++){
$a[]=array(thisIsVeryBigKeyName0=>0,thisIsVeryBigKeyName1=>1);
}
for ($n=0;$n<$interate;$n++){
foreach ($a as $a2){
$test=$a2[thisIsVeryBigKeyName0].$a2[thisIsVeryBigKeyName1];
}
}
echo "define : time ".timed(1)." usage ".memory_get_usage()." peakusage ".memory_get_peak_usage()."<BR>\n";
unset($a);
timed(1);
$a=array();
for ($n=0;$n<$arraysize;$n++){
$a[]=array(0=>0,1=>1);
}
for ($n=0;$n<$interate;$n++){
foreach ($a as $a2){
$test=$a2[0].$a2[1];
}
}
echo "numeric : time ".timed(1)." usage ".memory_get_usage()." peakusage ".memory_get_peak_usage()."<BR>\n";
unset($a);
timed(1);
$a=array();
for ($n=0;$n<$arraysize;$n++){
$a[]=array(0,1);
}
for ($n=0;$n<$interate;$n++){
foreach ($a as $a2){
$test=$a2[0].$a2[1];
}
}
echo "not assoc : time ".timed(1)." usage ".memory_get_usage()." peakusage ".memory_get_peak_usage()."<BR>\n";
unset($a);
timed(1);
$a=new SplFixedArray($arraysize);
for ($n=0;$n<$arraysize;$n++){
$a[$n]=array(0,1);
}
for ($n=0;$n<$interate;$n++){
foreach ($a as $a2){
$test=$a2[0].$a2[1];
}
}
echo "spl+array : time ".timed(1)." usage ".memory_get_usage()." peakusage ".memory_get_peak_usage()."<BR>\n";
unset($a);
timed(1);
$a=new SplFixedArray($arraysize);
for ($n=0;$n<$arraysize;$n++){
$b=new SplFixedArray(2);
$b[0]=0;$b[1]=1;
$a[$n]=$b;
}
for ($n=0;$n<$interate;$n++){
foreach ($a as $a2){
$test=$a2[0].$a2[1];
}
}
echo "spl only : time ".timed(1)." usage ".memory_get_usage()." peakusage ".memory_get_peak_usage()."<BR>\n";
unset($a);
timed(1);
$a=new SplFixedArray($arraysize);
for ($n=0;$n<$arraysize;$n++){
$b=new SplFixedArray(2);
$b[thisIsVeryBigKeyName0]=0;$b[thisIsVeryBigKeyName1]=1;
$a[$n]=$b;
}
for ($n=0;$n<$interate;$n++){
foreach ($a as $a2){
$test=$a2[thisIsVeryBigKeyName0].$a2[thisIsVeryBigKeyName1];
}
}
echo "spl define: time ".timed(1)." usage ".memory_get_usage()." peakusage ".memory_get_peak_usage()."<BR>\n";
unset($a);
timed(1);
?>
preferences:
24.63 ms | 402 KiB | 5 Q