我正在尝试使用Profiler来描述我的Kohana项目。我在Windows上使用php 5.5.3在XAMPP上。在这个版本的PHP上,主要请求,0.000000 sec.
或数据库调用的执行时间为find_file()
。与PHP 5.4.19相同的行为。
如果我使用PHP 5.3将项目移动到XAMPP,一切都按预期工作 - 单个数据库查询需要0.00012-0.00014 sec.
左右等。
我怀疑自5.3版以来microtime(true)
函数发生了一些变化。如果我用简单的时间计算用10000次迭代测量rand(0, 9999)
:
$time_start = microtime(true);
for($i=0; $i<10000; $i++) {
rand(0, 9999);
}
$time_end = microtime(true);
$time = $time_end - $time_start;
我在函数调用之前和之后仍然获得相同的时间,因此执行时间等于0,这当然是不可能的。
有没有办法在Windows上修复PHP 5.4或5.5上的这种行为以获得更精确的计时? 谢谢!
答案 0 :(得分:1)
查看php源代码
if(6 == EG(windows_version_info).dwMajorVersion && 2 >= EG(windows_version_info).dwMinorVersion) {
GetSystemTimePreciseAsFileTime(&ft); /* highest possible resolution <1us */
} else {
GetSystemTimeAsFileTime(&ft); /* 100ns blocks since 01-Jan-1641 */
}
似乎Windows 8具有更精确的计时功能,这就是为什么它在该版本上不可重复的原因。
我可以使用http://windowstimestamp.com中的校准工具解决此问题。
谢谢大家的答案!