Created
October 25, 2018 03:12
-
-
Save jaynarayan89/ca3da4ad67ab61b2abbacf60e6a1393a to your computer and use it in GitHub Desktop.
php code for perfomance testing of your code
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Test results | |
$array1 = test('array_walk'); | |
$array2 = test('array_walk_list_each'); | |
$array3 = test('array_walk_foreach1'); | |
$array4 = test('array_walk_foreach2'); | |
// Check arrays for equal | |
var_dump($array1 == $array2, $array1 == $array3, $array1 == $array4); | |
// Test function 1 | |
function array_walk_list_each(&$array, $function, $userData = null) { | |
while ( list($key, $value) = each($array) ) | |
$function($array[$key], $key, $userData); | |
} | |
// Test function 2 | |
function array_walk_foreach1(&$array, $function, $userData = null) { | |
foreach ($array as $key => &$value ) | |
$function($value, $key, $userData); | |
} | |
// Test function 3 | |
function array_walk_foreach2(&$array, $function, $userData = null) { | |
foreach ($array as $key => $value ) | |
$function($array[$key], $key, $userData); | |
} | |
function some_function(&$value, $key, $userData) { | |
$value = "$key => $userData"; | |
} | |
function test($function, $count = 10000, $arrayElements = 1000) { | |
echo $function, ' ... '; | |
$array = array_fill(0, $arrayElements, "some text value"); | |
$timer = microtime(true); | |
for( $i = 0; ++$i < $count; ) | |
$function($array, 'some_function', 'some user data'); | |
printf("%.3f sec <hr>", microtime(true) - $timer); | |
return $array; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment