php 检测代码执行时间

某些时候对于执行时间较长的代码块,我们想知道哪块最耗时,耗了多少,可以使用如下方法,做个简单的探测:

完成小目标

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
* @开始时间
*/
function proStartTime() {
global $startTime;
$mtime1 = explode(" ", microtime());
$startTime = $mtime1[1] + $mtime1[0];
}

/**
* @检测点时间
*/
function proEndTime() {
global $startTime,$set;
$mtime2 = explode(" ", microtime());
$endtime = $mtime2[1] + $mtime2[0];
$totaltime = ($endtime - $startTime);
$totaltime = number_format($totaltime, 7);
echo "<br/>process time: ".$totaltime;
}

在需要的地方,插入

1
2
3
4
5
6
7
8
9
10
// 记时开始
proStartTime();
...
... // 你的代码
...
proEndTime();
...
... // 继续检测
...
proEndTime();

以上内容参考博客 花儿为何那样红

ps 本次检测主要是批量修改订单状态很慢,代码级别的优化,效果有限。后来针对数据字段做了索引,效订提升近百倍。

不足

这种检查测方式可以完成工作,但检查后代码还是移除,这些手工操作难免失误。

且无法从整体上去观察项目的代码运行效率。

完善:Xdebug

等改天使用完成补

在 PhpStorm 中使用 Xdebug

WebGrind 工具的使用