php測試性能代碼
function microtime_float ()
{
list ($usec, $sec) = explode(" ", microtime());
return ((float) $usec + (float) $sec);
}
function echotime ($name)
{
static $t_start = 0;
$t_end = microtime_float();
if ($name != 'start') {
$time = $t_end - $t_start;
echo ($name . ':');
echo intval($time * 1000);
echo "<br>\n";
}
$t_start = $t_end;
}
$index = 1000;
$loop = 10000;
$length = 10000;
$key = "abc" . $index;
$array = array();
for ($i = 0; $i < $length; $i ++) {
$array['abc' . $i] = 'abc' . $i;
}
echotime('start');
for ($i = 0; $i < $loop; $i ++) {
if (array_key_exists($key, $array)) {
$a = true;
}
}
echotime('array_key_exists');
for ($i = 0; $i < $loop; $i ++) {
if (isset($array[$key])) {
$a = true;
}
}
echotime('isset');
for ($i = 0; $i < $loop; $i ++) {
if (in_array($key, $array)) {
$a = true;
}
}
echotime('in_array');
for ($i = 0; $i < $loop; $i ++) {
if (array_search($key, $array)) {
$a = true;
}
}
echotime('array_search');
$array2 = array_flip($array);
for ($i = 0; $i < $loop; $i ++) {
if (isset($array2[$key])) {
$a = true;
}
}
echotime('flip and search');
$array2 = $array;
foreach ($array2 as $k => $v) {
$array2[$k] = strtoupper($v);
}
echotime('foreach1');
$array2 = $array;
foreach ($array2 as &$v) {
$v = strtoupper($v);
}
echotime('foreach2');
$array2 = $array;
$array2 = array_map('strtoupper', $array2);
echotime('array_map');