使用以下脚本计算执行时间:
$ php -r "'$tt=microtime();for('$i=0;'$i<111120;'$i++) '
echo hash('crc32', microtime()).PHP_EOL;echo 'Time took: ' '
. (microtime()-'$tt).PHP_EOL;"
结果(多个):
...所用时间:0.266269...所用时间:-0.725037...所用时间:0.264577...所用时间:0.655573...花费的时间:-0.389367...所用时间:-0.451503...所用时间:0.50867
为什么时间计算有时返回负值?
传递第二个参数:
microtime(true);
否则,你会得到一个字符串而不是一个真正的浮点值,这会导致意外/错误的结果:
默认情况下,microtime() 返回一个格式为 "msec sec" 的字符串,其中 sec 是当前时间,以秒数为单位,自 Unix 纪元(格林威治标准时间 1970 年 1 月 1 日 0:00:00),msec 是 自 SEC 以来经过的微秒,以秒为单位表示。
— php.net/microtime
(强调我的)
例子:
microtime(): 0.93146600 1382611111 (string value)
microtime(true): 1382611111.93146600 (float, printed as a string in this case)