<?php
$iterations = $argv[1];
class foo {
public function bar(array $a, $b, $bar = null, $baz = array('test'), $test = '/') {
// stuff
}
}
function reflection() {
$foo = new ReflectionClass('foo');
$bar = $foo->getMethod('bar');
foreach( $bar->getParameters() as $param ) {
$data['name'] = $param->getName();
$data['optional'] = $param->isOptional();
if ( $param->isOptional() ) $data['default'] = $param->getDefaultValue();
}
return $data;
}
function sorting() {
$data = range(0, 100);
rsort($data);
}
function call() {
$foo = new foo();
$foo->bar([], 1);
}
$start = microtime(1);
for($i=0; $i < $iterations; $i++) reflection();
printf('Reflection %d iterations in %3.f secs' . PHP_EOL, $iterations, microtime(true) - $start);
$start = microtime(1);
for($i=0; $i < $iterations; $i++) sorting();
printf('Sort of array(100) %d iterations in %3.f secs' . PHP_EOL, $iterations, microtime(true) - $start);
$start = microtime(1);
for($i=0; $i < $iterations; $i++) call();
printf('Instance and Method call %d iterations in %3.f secs' . PHP_EOL, $iterations, microtime(true) - $start);