首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP执行时间测量精度

PHP执行时间测量精度
EN

Stack Overflow用户
提问于 2013-06-28 14:26:34
回答 1查看 320关注 0票数 2

所以我像这样测量执行时间:

代码语言:javascript
复制
$time = -microtime(true);
...
$time += microtime(true);

PHP版本是运行在Win Server2008 x64机器上的5.3.26RC1 x86。"Precision“ini参数等于16。但是,每次执行时间低于0.001,它只返回0(显然,脚本不能立即执行!)。更奇怪的是,我的测试机器(标准php.ini-development)返回非零值,即使这两个语句之间没有代码...会出什么问题呢?

更新:简单测试:

代码语言:javascript
复制
<?php
ini_set('precision',16);
echo php_uname() . PHP_EOL;
echo phpversion() . PHP_EOL;
echo ini_get('precision').PHP_EOL;

$time = -microtime(true);
$time += microtime(true);
echo number_format($time, 10) .PHP_EOL;
?>

测试机输出:

代码语言:javascript
复制
Windows NT XXX 6.1 build 7601 (Windows 7 Ultimate Edition Service Pack 1) i586
5.4.12
16
0.0000028610

生产机器输出:

代码语言:javascript
复制
Windows NT XXX 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586
5.3.26RC1
16
0.0000000000
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-28 14:31:26

你的平台,Windows,不能区分这么小的时间,用标准的时间调用。

PHP源代码中的注释:

在windows上,time_sleep_until的精度为毫秒,而microtime()的精度为十分之一秒。

(在ext/standard/tests/misc/time_sleep_until_basic.phpt中。)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17358511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档