Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- function prepare($num) {
- echo "preparing array with $num elements ... ";
- $array = array();
- for ($i=0; $i<$num; $i++) {
- $array[uniqid('', true)] = true;
- }
- echo 'OK', PHP_EOL;
- return $array;
- }
- function test($num, $cycles, $tries) {
- echo "@cycles: ", $cycles, PHP_EOL;
- echo "@length: ", $num, PHP_EOL;
- echo "@tries: ", $tries, PHP_EOL;
- $array = prepare($num);
- $key = uniqid('', true);
- echo "array_key_exists: ";
- $times = array();
- for ($j=0; $j<$tries; $j++) {
- $t = microtime(true);
- for($i = 0; $i < $cycles; $i++) {
- array_key_exists($key, $array);
- }
- $times[$j] = microtime(true) - $t;
- }
- printf('%0.4f second(s)'.PHP_EOL, array_sum($times)/$tries);
- echo "isset: ";
- $times = array();
- for ($j=0; $j<$tries; $j++) {
- $t = microtime(true);
- for($i = 0; $i < $cycles; $i++) {
- isset($array[$key]);
- }
- $times[$j] = microtime(true) - $t;
- }
- printf('%0.4f second(s)'.PHP_EOL, array_sum($times)/$tries);
- }
- $cycles = 1000000;
- $tries = 5;
- echo '----------------------', PHP_EOL;
- test(1000, $cycles, $tries);
- echo '----------------------', PHP_EOL;
- test(10000, $cycles, $tries);
- echo '----------------------', PHP_EOL;
- test(100000, $cycles, $tries);
- echo '----------------------', PHP_EOL;
- test(1000000, $cycles, $tries);
- echo '----------------------', PHP_EOL;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement