关于耗时
通常对PHP程序的优化首要点就是要知道哪里是瓶颈点,查出瓶颈点是优化程序的必要条件,就好比如你要优化网站程序一样,是加载速度慢还是数据查询返回慢。所以要能掌握程序中的瓶颈点最通俗的做法就是跟踪代码,知道每一步耗时多少,然后把耗时占比最大的或者明显超出它计划耗时这几部分程序列入重点优化目标,程序运行耗时跟服务器实时环境要有关,所以即使同一台机器每次运行结果耗时可能都会与上一次有细微的差别,所以以耗时来判断程序是否是瓶颈主要都是以自我经验去判断。
统计运行耗时
如何知道PHP程序运行耗时多少呢?有很多工具都可以协助我们去跟踪我们的程序每一步的耗时,这里也给一个简要版本的代码
// 琼台博客 www.qttc.net
class TimingHelper {
private $start;
public function __construct() {
$this->start = microtime(true);
}
public function start() {
$this->start = microtime(true);
}
public function segs() {
return microtime(true) - $this->start;
}
public function time() {
$segs = $this->segs();
$days = floor($segs / (60 * 60 * 24));
$segs -= $days * 60 * 60 * 24;
$hours = floor($segs / (60 * 60));
$segs -= $hours * 60 * 60;
$mins = floor($segs / 60);
$segs -= $mins * 60;
$microsegs = ($segs - floor($segs)) * 1000;
$segs = floor($segs);
return
(empty($days) ? "" : $days . "天 ") .
(empty($hours) ? "" : $hours . "小时 ") .
(empty($mins) ? "" : $mins . "分钟 ") .
$segs . "秒 " .
$microsegs . "毫秒";
}
}
用法
// 琼台博客 www.qttc.net
$t = new TimingHelper();
...
$th->start();
echo $th->time();
// result: 1小时 27分 57秒 0.000731563ms 毫秒