我们经常在系统程序调试时需要记录运行时间,以观察程序运行的效率问题,或者对多种实现方法进行比较,一个好的计时器就不可或缺了.pear中的benchmarking_timer就是一个可以计算任意两点之间时间差的类.
下载
你可以从 http://pear.php.net/package/benchmark/download 下载benchmarking框架,然后取出其中的time.php,把它放在和pear.php同级目录下.然后再建一个文件index.php,供测试用.
第一个程序
在index.php里写入<?php
//@author:iwind
//包含类文件
require "timer.php";
//创建一个对象
$timer = new benchmark_timer();
//计时开始
$timer->start();
//测试的一段脚本
for ($i=0; $i<1000; $i++)
{
//we do nothing here
}
//设置标记
$timer->setmarker("mark1");
//输出两点之间的用时
echo $timer->timeelapsed("start", "mark1");
?>
然后执行之,就可以得到0.000543这样的结果,大致为从开始到mark1点之间的耗时.
类方法
方法:benchmark_timer( [mixed $auto = false])
描述:构造器,开始计时器记录.
参数:boolean $auto,缺省为false,如果设定为true的话,则会自动打印计时器结果.形如下表
| time index | ex time | % | |
| start | 1099020859.80505200 | - | 0.00% |
| stop | 1099020859.80595000 | 0.000898 | 100.00% |
| total | - | 0.000898 | 100.00% |
分别列出开始/终止的时间索引,与上一标记之间的运行时间,与上一标记之间的运行时间占总耗时的百分比(所以stop点一直为100%),以及总耗时.
方法: display( )
描述:打印由getoutput方法返回的信息.
形如下表:
| time index | ex time | % | |
| start | 1099021292.32145600 | - | 0.00% |
| mark1 | 1099021292.32202000 | 0.000564 | 46.38% |
| mark2 | 1099021292.32209700 | 0.000077 | 6.33% |
| stop | 1099021292.32267200 | 0.000575 | 47.29% |
| total | - | 0.001216 | 100.00% |