Esempio n. 1
0
            $i++;
            break;
        case 8:
            $i++;
            break;
        case 9:
            $i++;
            break;
        default:
            $i++;
    }
}
function benchmark_compare_two()
{
    $n = rand(0, 9);
    $i = 0;
    $n == 0 ? $i++ : $n == 1 ? $i++ : $n == 2 ? $i++ : $n == 3 ? $i++ : $n == 4 ? $i++ : $n == 5 ? $i++ : $n == 6 ? $i++ : $n == 7 ? $i++ : $n == 8 ? $i++ : $n == 9 ? $i++ : $i++;
}
// Add them
$benchmark->addFunction('switch(){}', 'benchmark_compare_one');
$benchmark->addFunction('?: operator', 'benchmark_compare_two');
// Benchmark by time
echo "Benchmark by time...\n";
$time = $benchmark->benchmarkTime(2);
// two functions * 2 seconds = 4 seconds
$time->outputTable();
// Benchmark by calls
echo "Benchmark by calls...\n";
$count = $benchmark->benchmarkCount(1000000);
// two functions * 100000 calls = 200000 calls
$count->outputTable();
Esempio n. 2
0
            return $t->{$n}($p[0], $p[1]);
            break;
        case 3:
            return $t->{$n}($p[0], $p[1], $p[2]);
            break;
        case 4:
            return $t->{$n}($p[0], $p[1], $p[2], $p[3]);
            break;
        case 5:
            return $t->{$n}($p[0], $p[1], $p[2], $p[3], $p[4]);
            break;
        default:
            return call_user_func_array(array($this, $a), $p);
            break;
    }
}
$benchmark->addFunction('noop', 'noop');
$benchmark->addFunction('call_user_func_array', 'benchmark_call_user_func_array');
$benchmark->addFunction('ReflectionMethod::invokeArgs', 'benchmark_reflection_invoke');
$benchmark->addFunction('wrap_call_user_func_array', 'benchmark_wrap_array');
$benchmark->addFunction('inlined args', 'benchmark_inline_wrap_array');
// Benchmark by time
echo "Benchmark by time...\n";
$time = $benchmark->benchmarkTime(2);
// two functions * 2 seconds = 4 seconds
$time->outputTable();
// Benchmark by calls
echo "Benchmark by calls...\n";
$count = $benchmark->benchmarkCount(1000000);
// two functions * 100000 calls = 200000 calls
$count->outputTable();