提问人:Jeff 提问时间:11/13/2009 更新时间:11/13/2009 访问量:768
PHP 基准测试函数计时器脚本
PHP benchmark functions timer script
问:
我有两个函数,我想比较它们的执行时间:
function subject_one() {
$str = preg_match_all( ...[SNIP]... );
// ...[SNIP]...
return $str;
}
function subject_two() {
$reader = new XMLReader;
$writer = new XMLWriter;
// ...[SNIP]...
echo $str;
}
是否可以编写一个函数来执行此操作?
例如:
function benchmark_two_functions( $first_function, $second_function ) {
// do stuff
return $length_of_time_to_complete_each_function
}
我见过的大多数示例都在脚本的顶部和底部添加了代码,如果可能的话,我想避免这种情况。
答:
0赞
dusoft
11/13/2009
#1
也许可以使用TICKS?
http://sk2.php.net/manual/en/function.register-tick-function.php
0赞
Björn
11/13/2009
#2
PEAR 有一个用于 PHP 分析的 Benchmark 库。它运行良好,但如果您对服务器具有root访问权限并且可以安装它,也许XDebug是一个更好的工具。
11赞
vdrmrt
11/13/2009
#3
试试这个
function subject_one(){
sleep(1);
}
function subject_two(){
sleep(5);
}
/* Result should be ~4 */
print benchmark_two_functions('subject_one','subject_two');
function getmicrotime() {
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
function benchmark_two_functions($first_function, $second_function){
$start = getmicrotime();
$first_function();
$exec_time_first = getmicrotime() - $start;
$start = getmicrotime();
$second_function();
$exec_time_second = getmicrotime() - $start;
return $exec_time_first - $exec_time_second;
}
评论
0赞
Jeff
11/15/2009
我想知道如何修改该函数以多次运行?benchmark_two_functions()
subject_one()
subject_two()
评论