◆ 脚本执行速度测试
前面有提到,只有找到影响速度的代码,我们才有可能进行优化。PEAR的benchmark包中的Benchmark_Timer类和Benchmark_Iterate类,可以用来很方便地测试脚本执行的速度。(关于PEAR的安装与配置请自行查看相关资料)
首先用Benchmark_Iterate类来测试程序中某个函数或类的某个方法的执行时间。
benchmark1.php
<?php </SPAN>
require_once(
'Benchmark/Iterate.php'
);
$benchmark
= new
Benchmark_Iterate()
;
$benchmark
->
run
(
10
,
'myFunction'
,
'test'
);
$result
=
$benchmark
->
get
();
echo
"
"
;
print_r
(
$result
);
echo
""
;
exit;
function
myFunction
(
$var
) {
// do something
echo
'Hello '
;
}
?>
建立benchmark Iterate对象$benchmark,这个对象用来执行myFunction函数10次。
$argument变量每次都传递给myFunction. 多次运行的分析结果存入$result,然后用benchmark对象的get()方法来获取。这个结果用print_r()输出到屏幕。通常会输出这样的结果:
Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello
Array
(
[1] => 0.000427
[2] => 0.000079
[3] => 0.000072
[4] => 0.000071
[5] => 0.000076
[6] => 0.000070
[7] => 0.000073
[8] => 0.000070
[9] => 0.000074
[10] => 0.000072
[mean] => 0.000108
[iterations] => 10
)
myFunction的每次执行,benchmark对象都会跟踪执行时间。并且会计算平均的执行时间([mean]那一行)。通过多次运行目标函数,你可以得到该函数的平均运行时间。
在实际测试中,函数的次数应当至少1000次左右,这样可以得到较客观的结果。