现在我们看看另一个测试脚本运行时间的方法--使用Benchmark_Timer类来测试一段代码执行所消耗的时间及这一段代码中每次调用与下一次调用间的时间。
benchmark2.php
<?php </SPAN>require_once 'Benchmark/Timer.php'; $timer = new Benchmark_Timer(); $timer->start(); $timer->setMarker('start_myFunction'); for($i=0; $i<10; $i++){ myFunction($argument); } $timer->setMarker('end_myFunction'); $timer->stop(); $profiling = $timer->getProfiling(); echo '
Time elapsed: '
. $timer->timeElapsed('start_myFunction','end_myFunction') .''; echo ''; print_r($profiling); echo ''; exit; function myFunction($var) { static $counter = 0; // do something echo $counter++ . ' '; } ?>
首先,建立一个benchmark timer对象$timer。然后调用start()方法,表示开始计时。 SetMaker()方法用来标记要测试的代码段。MyFunction()函数在循环中被调用,表示一段要执行的代码(当然实际中不会这么简单)。然后再用$timer对象的setMarker()方法标记程序执行终点。分析信息用getProfiling()来获取。在两个标记间程序执行消耗的时间用timeElapsed()方法计算出来(就像例子中的循环)。最后,用print_r()输出信息到屏幕:
0 1 2 3 4 5 6 7 8 9
Time elapsed: 0.000594
通过这种方法,你可以在代码中设置大量时间段标记,获取每段代码执行时消耗的时间,很容易可以看出到底是哪一部份的代码影响了整个程序的运行效率。然后开始着手对这部份代码进行改进。
用以上两种方法,你可以找出代码中最影响速度的部份代码。另外还可以用来对优化后的代码进行测试,看看到底执行速度提高了多少。通过测试->优化->测试->优化 …这样不断循环,你可以最终确定提供最佳效率的代码。
介绍使用Benchmark_Timer类测试PHP代码执行时间的方法,包括建立对象、开始计时、标记代码段、获取分析信息等。通过设置时间段标记,可找出影响程序运行效率的代码部分,经测试与优化循环,确定最佳效率代码。

被折叠的 条评论
为什么被折叠?



