- var_dump: documentation ( source)
- microtime: documentation ( source)
- debug_backtrace: documentation ( source)
<?php
class Foo {
function recurseBenchCallerContex($iterations, $recursionLimit)
{
if($recursionLimit > 0) {
return $this->recurseBenchCallerContex($iterations, $recursionLimit - 1);
}
$start = microtime(true);
for($c = 0; $c < $iterations; $c++) {
$trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2);
$class = isset($trace[1]['class']) ? $trace[1]['class'] : null;
}
var_dump('debug_backtrace', microtime(true) - $start);
$start = microtime(true);
for($c = 0; $c < $iterations; $c++) {
$class = get_called_class();
}
$start = microtime(true);
var_dump('get_called_class', microtime(true) - $start);
}
}
$foo = new Foo;
$foo->recurseBenchCallerContex(1000, 10);