- microtime: documentation ( source)
- range: documentation ( source)
<?php
function benchmark($n) {
$iterations = intval(1000000 / $n);
print "$iterations iterations, $n range\n";
$a = range(0, $n);
$start = microtime(TRUE);
for ($i = 1; $i < $iterations; $i++) (array) $a !== $a;
$trick = microtime(TRUE) - $start;
$start = microtime(TRUE);
for ($i = 1; $i < $iterations; $i++) !is_array($a);
$is_array = microtime(TRUE) - $start;
print '(array) !== is ' . ($trick < $is_array ? 'faster' : 'slower') ." than !is_array() for arrays and $n\n";
$a = range(0, $n);
$start = microtime(TRUE);
for ($i = 1; $i < $iterations; $i++) (array) $a === $a;
$trick = microtime(TRUE) - $start;
$start = microtime(TRUE);
for ($i = 1; $i < $iterations; $i++) is_array($a);
$is_array = microtime(TRUE) - $start;
print '(array) === is ' . ($trick < $is_array ? 'faster' : 'slower') ." than is_array() for arrays and $n\n";
$a = (object) range(0, $n);
$start = microtime(TRUE);
for ($i = 1; $i < $iterations; $i++) (array) $a !== $a;
$trick = microtime(TRUE) - $start;
$start = microtime(TRUE);
for ($i = 1; $i < $iterations; $i++) !is_array($a);
$is_array = microtime(TRUE) - $start;
print '(array) !== is ' . ($trick < $is_array ? 'faster' : 'slower') ." than !is_array() for object and $n\n";
$a = (object) range(0, $n);
$start = microtime(TRUE);
for ($i = 1; $i < $iterations; $i++) (array) $a === $a;
$trick = microtime(TRUE) - $start;
$start = microtime(TRUE);
for ($i = 1; $i < $iterations; $i++) is_array($a);
$is_array = microtime(TRUE) - $start;
print '(array) === is ' . ($trick < $is_array ? 'faster' : 'slower') ." than is_array() for objects and $n\n";
}
benchmark(10);
print "\n";
benchmark(140);
print "\n";
benchmark(150);
print "\n";