如何计算一段php程序代码的执行消耗时间?
对于系统时间,可能很多同学对php的time()函数并不陌生,可惜time()函数只返回自从 Unix 纪元(格林尼治时间1970年1月1日 00:00:00)到当前时间的秒数。
没错,是秒。我们一段php程序代码执行耗时可能并不超过一秒,所以time()并不适用。php提供了一个更为精确的时间函数microtime();
microtime --- 返回当前Unix时间戳和微秒数。
格式: mixed microtime (get_as_float)
函数默认以 “microsec sec” 的格式返回一个字符串,其中sec 是自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,microsec 为微秒部分。
如果get_as_float 参数设置为 TRUE,microtime() 将返回一个浮点数,表示自 Unix 纪元起精确到微秒的以“秒”为单位的当前时间。
例如:echo microtime(); 会返回:0.73579800 1571284208。
echo microtime(true);则返回:1571284208.7358。
好了,然后的事情很简单,为了免于对返回的结果做复杂的字符串转换,我们设定microtime()输入参数为true,使得其返回的结果为浮点数。
然后在程序开始和结束分别计算一次,两次结果相减便是程序执行的时间。(PHP手册里有一句话:永远不要比较两个浮点数是否相等。)
最后使用number_format格式化浮点数(number_format() 函数通过千位分组来格式化数字,也可以通过输入第二个参数,自由选择保留几位小数)。
代码如下:
<?php
$start = microtime(true);
然后就是各种程序xxxxx;
$end = microtime(true);
$time = $end - $start;
//精确到十位小数,可自行调节
echo number_format($time, 10, '.', '') . " seconds";
?>