@ 2014-08-06T07:02:47Z <?php
define('NUMBER_OF_THINGS', 100000);
class Something{
const SOME_MAX_VALUE = 100;
protected $field;
public function setField($value){
$this->field = $value;
return $this;
}
public function getField(){
return $this->field;
}
}
$aBunchOfThings = array();
for($i=0; $i<NUMBER_OF_THINGS; $i++){
$aThing = new Something();
$aBunchOfThings[] = $aThing->setField(rand(1, Something::SOME_MAX_VALUE));
}
function searchForeach($array, $needle){
$results = array();
foreach($array as $key => $thing){
if($thing->getField() == $needle){
$result[] = $needle;
}
}
return $result;
}
function searchArrayFilter($array, $needle){
return array_filter($array, function(&$thing) use (&$needle){
return $thing->getField() == $needle;
});
}
function uniqueForeach($array){
$results = array();
foreach($array as $key => $thing){
$uniqueThing = true;
foreach($results as $result){
if($result->getField() == $thing->getField()){
$uniqueThing = false;
break;
}
}
if($uniqueThing){
$result[] = $thing;
}
}
return $result;
}
function uniqueArrayMap($array){
return array_intersect_key($array, array_unique(array_map(function (&$thing) {
return $thing->getField();
}, $array)));
}
$needle = 50;
$start = microtime(true);
$result = searchForeach($aBunchOfThings, $needle);
$durationForeach = microtime(true) - $start;
$start = microtime(true);
$result = searchArrayFilter($aBunchOfThings, $needle);
$durationArrayFilter = microtime(true) - $start;
$start = microtime(true);
$result = uniqueForeach($aBunchOfThings);
$durationUniqueForeach = microtime(true) - $start;
$start = microtime(true);
$result = uniqueArrayMap($aBunchOfThings);
$durationUniqueArrayMap = microtime(true) - $start;
echo "Function | Time\n";
echo "-----------------------------------------\n";
echo "searchForeach | $durationForeach\n";
echo "searchArrayFilter | $durationArrayFilter\n";
echo "uniqueForeach | $durationUniqueForeach\n";
echo "uniqueArrayMap | $durationUniqueArrayMap\n";
?>
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 7.3.1 Function | Time
-----------------------------------------
searchForeach | 0.0079841613769531
searchArrayFilter | 0.017876863479614
uniqueForeach | 0.015586137771606
uniqueArrayMap | 0.029489994049072
Output for 7.3.0 Function | Time
-----------------------------------------
searchForeach | 0.007472038269043
searchArrayFilter | 0.013360977172852
uniqueForeach | 0.015148162841797
uniqueArrayMap | 0.02289891242981
Output for 7.2.13 Function | Time
-----------------------------------------
searchForeach | 0.0078339576721191
searchArrayFilter | 0.016879796981812
uniqueForeach | 0.020656824111938
uniqueArrayMap | 0.032742023468018
Output for 7.2.12 Function | Time
-----------------------------------------
searchForeach | 0.0091829299926758
searchArrayFilter | 0.017181873321533
uniqueForeach | 0.02384614944458
uniqueArrayMap | 0.03783392906189
Output for 7.2.11 Function | Time
-----------------------------------------
searchForeach | 0.011941194534302
searchArrayFilter | 0.021637916564941
uniqueForeach | 0.032104015350342
uniqueArrayMap | 0.042418956756592
Output for 7.2.10 Function | Time
-----------------------------------------
searchForeach | 0.0088400840759277
searchArrayFilter | 0.016835927963257
uniqueForeach | 0.028751134872437
uniqueArrayMap | 0.034209012985229
Output for 7.2.9 Function | Time
-----------------------------------------
searchForeach | 0.0089960098266602
searchArrayFilter | 0.021003007888794
uniqueForeach | 0.029294967651367
uniqueArrayMap | 0.048609972000122
Output for 7.2.8 Function | Time
-----------------------------------------
searchForeach | 0.0080749988555908
searchArrayFilter | 0.017142057418823
uniqueForeach | 0.023424863815308
uniqueArrayMap | 0.03587007522583
Output for 7.2.7 Function | Time
-----------------------------------------
searchForeach | 0.0080528259277344
searchArrayFilter | 0.019130945205688
uniqueForeach | 0.032389879226685
uniqueArrayMap | 0.041846036911011
Output for 7.2.6 Function | Time
-----------------------------------------
searchForeach | 0.0092182159423828
searchArrayFilter | 0.021831035614014
uniqueForeach | 0.01382303237915
uniqueArrayMap | 0.051881790161133
Output for 7.2.5 Function | Time
-----------------------------------------
searchForeach | 0.0087771415710449
searchArrayFilter | 0.017446041107178
uniqueForeach | 0.015625
uniqueArrayMap | 0.027134895324707
Output for 7.2.4 Function | Time
-----------------------------------------
searchForeach | 0.0083730220794678
searchArrayFilter | 0.018711090087891
uniqueForeach | 0.037601947784424
uniqueArrayMap | 0.032490968704224
Output for 7.2.3 Function | Time
-----------------------------------------
searchForeach | 0.0087268352508545
searchArrayFilter | 0.017985105514526
uniqueForeach | 0.024821043014526
uniqueArrayMap | 0.037916898727417
Output for 7.2.2 Function | Time
-----------------------------------------
searchForeach | 0.008430004119873
searchArrayFilter | 0.021787881851196
uniqueForeach | 0.028438091278076
uniqueArrayMap | 0.033030033111572
Output for 7.2.1 Function | Time
-----------------------------------------
searchForeach | 0.0086231231689453
searchArrayFilter | 0.018218040466309
uniqueForeach | 0.029294967651367
uniqueArrayMap | 0.042441129684448
Output for 7.2.0 Function | Time
-----------------------------------------
searchForeach | 0.010840892791748
searchArrayFilter | 0.021538019180298
uniqueForeach | 0.034506797790527
uniqueArrayMap | 0.048145055770874
Output for 7.1.25 Function | Time
-----------------------------------------
searchForeach | 0.019207000732422
searchArrayFilter | 0.034118175506592
uniqueForeach | 0.022687911987305
uniqueArrayMap | 0.18949317932129
Output for 7.1.7 Function | Time
-----------------------------------------
searchForeach | 0.0070228576660156
searchArrayFilter | 0.014944076538086
uniqueForeach | 0.0089449882507324
uniqueArrayMap | 0.085513114929199
Output for 7.1.6 Function | Time
-----------------------------------------
searchForeach | 0.0092349052429199
searchArrayFilter | 0.019090175628662
uniqueForeach | 0.012218952178955
uniqueArrayMap | 0.095956087112427
Output for 7.1.5 Function | Time
-----------------------------------------
searchForeach | 0.01286506652832
searchArrayFilter | 0.024049997329712
uniqueForeach | 0.013665914535522
uniqueArrayMap | 0.11927080154419
Output for 7.1.0 Function | Time
-----------------------------------------
searchForeach | 0.010612964630127
searchArrayFilter | 0.021213054656982
uniqueForeach | 0.013200998306274
uniqueArrayMap | 0.10517501831055
Output for 7.0.20 Function | Time
-----------------------------------------
searchForeach | 0.0098018646240234
searchArrayFilter | 0.018229007720947
uniqueForeach | 0.0089380741119385
uniqueArrayMap | 0.086803913116455
Output for 7.0.14 Function | Time
-----------------------------------------
searchForeach | 0.010333061218262
searchArrayFilter | 0.022058963775635
uniqueForeach | 0.014835119247437
uniqueArrayMap | -0.092849016189575
Output for 7.0.10 Function | Time
-----------------------------------------
searchForeach | 0.0080459117889404
searchArrayFilter | 0.01730489730835
uniqueForeach | 0.01658821105957
uniqueArrayMap | 0.1041419506073
Output for 7.0.9 Function | Time
-----------------------------------------
searchForeach | 0.0073299407958984
searchArrayFilter | 0.015919923782349
uniqueForeach | 0.032816171646118
uniqueArrayMap | 0.12660002708435
Output for 7.0.8 Function | Time
-----------------------------------------
searchForeach | 0.0066370964050293
searchArrayFilter | 0.014944076538086
uniqueForeach | 0.010546922683716
uniqueArrayMap | 0.092989921569824
Output for 7.0.7 Function | Time
-----------------------------------------
searchForeach | 0.0067470073699951
searchArrayFilter | 0.015141010284424
uniqueForeach | 0.026585817337036
uniqueArrayMap | 0.11894798278809
Output for 7.0.6 Function | Time
-----------------------------------------
searchForeach | 0.009857177734375
searchArrayFilter | 0.021265983581543
uniqueForeach | 0.010977029800415
uniqueArrayMap | 0.094440937042236
Output for 7.0.5 Function | Time
-----------------------------------------
searchForeach | 0.0066201686859131
searchArrayFilter | 0.018502950668335
uniqueForeach | 0.059071063995361
uniqueArrayMap | 0.17143988609314
Output for 7.0.4 Function | Time
-----------------------------------------
searchForeach | 0.0068180561065674
searchArrayFilter | 0.017771005630493
uniqueForeach | 0.056416034698486
uniqueArrayMap | 0.1670401096344
Output for 7.0.3 Function | Time
-----------------------------------------
searchForeach | 0.0089929103851318
searchArrayFilter | 0.022521018981934
uniqueForeach | 0.011391878128052
uniqueArrayMap | 0.14843702316284
Output for 7.0.2 Function | Time
-----------------------------------------
searchForeach | 0.0084218978881836
searchArrayFilter | 0.017849206924438
uniqueForeach | 0.061008930206299
uniqueArrayMap | 0.1778039932251
Output for 7.0.1 Function | Time
-----------------------------------------
searchForeach | 0.0070090293884277
searchArrayFilter | 0.019073009490967
uniqueForeach | 0.061092138290405
uniqueArrayMap | 0.17124605178833
Output for 7.0.0 Function | Time
-----------------------------------------
searchForeach | 0.0076420307159424
searchArrayFilter | 0.019284009933472
uniqueForeach | 0.047813892364502
uniqueArrayMap | 0.17728519439697
Output for 5.4.0 - 5.4.45 , 5.5.0 - 5.5.38 , 5.6.0 - 5.6.28 Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 32 bytes) in /in/NaefP on line 58
Process exited with code 255 . Output for 5.3.0 - 5.3.29 Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 71 bytes) in /in/NaefP on line 25
Process exited with code 255 . Output for 5.1.0 - 5.1.6 , 5.2.0 - 5.2.17 Parse error: syntax error, unexpected T_FUNCTION in /in/NaefP on line 34
Process exited with code 255 . Output for 5.0.0 - 5.0.5 Parse error: parse error, unexpected T_FUNCTION in /in/NaefP on line 34
Process exited with code 255 . Output for 4.4.2 - 4.4.9 Parse error: syntax error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/NaefP on line 5
Process exited with code 255 . Output for 4.3.0 - 4.3.1 , 4.3.5 - 4.3.11 , 4.4.0 - 4.4.1 Parse error: parse error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/NaefP on line 5
Process exited with code 255 . Output for 4.3.2 - 4.3.4 Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/NaefP on line 5
Process exited with code 255 . preferences:dark mode live preview
146.32 ms | 401 KiB | 232 Q