3v4l.org

run code in 300+ PHP versions simultaneously
<?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); ?>

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
7.1.70.0030.08717.21
7.1.60.0130.12119.46
7.1.50.0070.13116.72
7.1.00.0000.18022.34
7.0.200.0000.09516.72
7.0.140.0000.10322.09
7.0.100.0070.16720.61
7.0.90.0100.16720.53
7.0.80.0030.17320.46
7.0.70.0130.15720.53
7.0.60.0100.16720.58
7.0.50.0600.15020.95
7.0.40.0070.16720.13
7.0.30.0030.15720.04
7.0.20.0030.11720.04
7.0.10.0030.11320.03
7.0.00.0030.12320.03
5.6.280.0100.28021.71
5.6.250.0130.23721.22
5.6.240.0100.24721.30
5.6.230.0070.26021.22
5.6.220.0070.27321.37
5.6.210.0170.23721.30
5.6.200.0100.26321.57
5.6.190.0170.24021.57
5.6.180.0000.23021.66
5.6.170.0070.19021.68
5.6.160.0030.21322.02
5.6.150.0100.25721.80
5.6.140.0070.22321.65
5.6.130.0070.21721.68
5.6.120.0030.19721.65
5.6.110.0070.18721.67
5.6.100.0030.19021.71
5.6.90.0100.19021.73
5.6.80.0130.24021.13
5.6.70.0070.25021.04
5.6.60.0100.22720.96
5.6.50.0130.16021.13
5.6.40.0130.24021.05
5.6.30.0030.26721.04
5.6.20.0100.23321.00
5.6.10.0130.25021.03
5.6.00.0000.23721.00
5.5.380.0030.27320.99
5.5.370.0070.24320.98
5.5.360.0030.23321.02
5.5.350.0070.24321.04
5.5.340.0030.25021.27
5.5.330.0100.23721.47
5.5.320.0070.25021.52
5.5.310.0130.23721.55
5.5.300.0030.22021.46
5.5.290.0030.23721.49
5.5.280.0000.19321.52
5.5.270.0030.20721.52
5.5.260.0030.19021.50
5.5.250.0030.18721.34
5.5.240.0170.23720.75
5.5.230.0100.24020.74
5.5.220.0100.26720.83
5.5.210.0070.27020.64
5.5.200.0130.23020.89
5.5.190.0000.26320.81
5.5.180.0130.23320.86
5.5.160.0130.26320.85
5.5.150.0100.26720.85
5.5.140.0100.26020.75
5.5.130.0070.21720.71
5.5.120.0130.23320.81
5.5.110.0100.26320.82
5.5.100.0170.24320.70
5.5.90.0070.24020.70
5.5.80.0070.25720.74
5.5.70.0100.26020.66
5.5.60.0130.22320.79
5.5.50.0030.26720.79
5.5.40.0030.25320.72
5.5.30.0100.25720.72
5.5.20.0070.24720.72
5.5.10.0130.22320.77
5.5.00.0100.24720.75
5.4.450.0030.20019.93
5.4.440.0070.19019.92
5.4.430.0000.18719.82
5.4.420.0100.18720.10
5.4.410.0070.22719.83
5.4.400.0130.25719.47
5.4.390.0000.24319.74
5.4.380.0170.25019.66
5.4.370.0130.22719.46
5.4.360.0100.23719.44
5.4.350.0000.26719.68
5.4.340.0200.23319.45
5.4.320.0100.23319.60
5.4.310.0070.24719.59
5.4.300.0100.24319.58
5.4.290.0030.24319.78
5.4.280.0130.24719.68
5.4.270.0030.24319.61
5.4.260.0100.21719.63
5.4.250.0070.23719.58
5.4.240.0200.23719.66
5.4.230.0100.24719.61
5.4.220.0030.26719.45
5.4.210.0100.26719.59
5.4.200.0030.23319.61
5.4.190.0070.22719.50
5.4.180.0070.25719.57
5.4.170.0000.26019.62
5.4.160.0070.25719.44
5.4.150.0000.24319.57
5.4.140.0100.26317.00
5.4.130.0130.22316.85
5.4.120.0070.23017.04
5.4.110.0130.22716.92
5.4.100.0100.24016.99
5.4.90.0070.22717.08
5.4.80.0200.23016.89
5.4.70.0070.24016.91
5.4.60.0100.25017.09
5.4.50.0000.26716.98
5.4.40.0130.24717.03
5.4.30.0130.22316.89
5.4.20.0100.24017.08
5.4.10.0070.25316.93
5.4.00.0100.24016.55

preferences:
18.29 ms | 401 KiB | 5 Q