php time() 和 microtime() 有时不一致

2023-11-26

在使用 microtime() (使用 PHP 5)记录一些数据时,我遇到了一些与日志文件的时间戳似乎略有不同相的值,因此我只是尝试比较 time() 和 microtime() 的输出使用一个简单的脚本(usleep只是为了限制数据输出):

<?php
for($i = 0; $i < 500; $i++) {
    $microtime = microtime();
    $time = time();
    list($usec, $sec) = explode(" ", $microtime);
    if ((int)$sec > $time) {
        echo $time . ' : ' . $microtime . '<br>';
    }
    usleep(50000);
}
?>

现在,由于 $microtime 在 $time 之前声明,我希望它更小,并且不应该输出任何内容;然而,显然情况并非如此,$time 有时会小于 microtime() 返回的秒数,如本例(截断的)输出所示:

1344536674 : 0.15545100 1344536675
1344536675 : 0.15553900 1344536676
1344536676 : 0.15961000 1344536677
1344536677 : 0.16758900 1344536678

现在,这只是一个小小的差距;然而,我观察到一些系列的差异(相当)超过一秒……那么,这怎么可能呢?


如果你看一下的实现time and microtime,你会发现它们完全不同:

  • time只是调用Ctime功能。
  • microtime has two实现:如果 C 函数gettimeofday可用(在 Linux 系统上应该如此),它被称为直接的。否则他们用杂技表演了一些杂技来计算时间。

自从Ctime呼叫仅精确到一秒,它也可能故意使用低保真时间源。

此外,在现代 x86_64 系统上,两个 C 函数都可以实现没有系统调用通过查看某些CPU寄存器。如果您使用的是多核系统,这些寄存器可能在内核之间不完全匹配,这可能是一个原因。

造成差异的另一个潜在原因是 NTPd(计时守护进程)或其他一些用户空间进程正在更改时钟。通常,应通过以下方式避免这些影响:adjtime.

所有这些理由都​​非常深奥。要进一步调试问题,您应该:

  • Determine OS and CPU architecture (hint: and tell us!)
  • Try to 强制在一个核心上执行该进程
  • 停止任何正在(或可能正在)调整系统时间的程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php time() 和 microtime() 有时不一致 的相关文章

  • 如何使用CSS将背景图像放入选择选项标签中

    我有一个从 json 响应接收的国家 地区下拉列表 并且想要在国家 地区名称旁边添加相应的国家 地区国旗图标 也从 json 响应获取图像 我已经尝试了不同的 jQuery 和 bootstrap 插件 但他们所做的是破坏我以前的选择框样式
  • Jquery 两个字段的时间差(以小时为单位)

    我的表单中有两个字段 用户可以在其中选择输入时间 start time end time 我想在更改这些字段时重新计算另一个字段的值 我想做的是获取两次之间的小时数 例如 如果我的开始时间为 5 30 结束时间为 7 50 我想将结果 2
  • Smarty输出空白页

    已解决 模板文件错误 我有这样的 Smarty 设置 require once smarty Smarty class php smarty new Smarty smarty gt compile dir compile dir smar
  • 通过 __get() 通过引用返回 null

    快速规格 PHP 5 3 error reporting 1 the highest 我正在使用 get 通过引用技巧神奇地访问对象中任意深度的数组元素 快速示例 public function get key return isset t
  • SMTP 配置在生产中不起作用

    我正在尝试在提交表单时发送电子邮件 我正在使用 PHPMailer 使用以下配置发送邮件 mail new PHPMailer mail gt isSMTP mail gt Host mail example in mail gt Port
  • PHP - 获取base64图像字符串解码并保存为jpg(生成空图像)

    嗨 我实际上是通过 ajax 发送一个 base64 图像字符串到一个 php 脚本 该脚本只是解码字符串并将内容保存为 jpg 文件 但结果是一张空图像 这怎么可能 PHP脚本 uploadedPhotos array photo 1 p
  • Yii2 异常:ApcCache 需要加载 PHP apc 扩展

    在高级模板前端的主配置中配置缓存组件时 我收到异常 在我的 php ini 上启用了扩展 rsults 如何解决此问题 前端 config main php cache gt class gt yii caching ApcCache ke
  • 为什么这会返回资源 id #2? [复制]

    这个问题在这里已经有答案了 可能的重复 我如何从 PHP 中的 MySql 响应中 回显 资源 id 6 https stackoverflow com questions 4290108 how do i echo a resource
  • 在字符串中间添加一个字符

    可能有一个简单的解决方案可以解决这个问题 但会引起面部表情 我将时间存储为 4 个字符长的字符串 即 1300 我试图将该字符串显示为 13 00 我觉得必须有一个比我现在正在做的更优雅的解决方案 我目前有 startTime get fi
  • 如何在类似 MVC 的页面中加载基于漂亮 URL 的类?

    我想请教一些关于如何解决这个问题的提示 我正在尝试构建自己的 MVC 网站 我了解了 URL 的基础知识 http example com blog cosplay cosplayer expo today 博客 gt 控制器cosplay
  • 如何使用 Twig 的属性函数访问嵌套对象属性

    我试图使用一个树枝变量来访问另一个树枝变量的属性 直到我找到 属性 函数为止 该变量才起作用 除了需要访问嵌套属性的情况外 效果很好 当包含属性的变量实际上是对象 属性时 它不起作用 例如 attribute object1 variabl
  • 如何在 PHP 中使用 cURL 发出同时包含 GET 和 POST 参数的请求?

    其他人已经问过如何从 perl java bash 等执行此操作 但我需要在 PHP 中执行此操作 并且我没有看到任何已提出的专门与 PHP 相关的问题 或包含 PHP 的答案 My code ch curl init url curl s
  • 使用 XSLT 将 XML 转换为 SQL

    由于我无法控制的原因 我将获得一个 XML 文件和一个 XSLT 文件 该文件可以将 XML 文件转换为 SQL 代码或错误 现在让我们假设我们可以信任提供 XML 文件的人不会在 XML 中包含危险的构造 我什至不知道是否应该使用 Sim
  • suhosin.mt_srand.ignore 在 PHP 中一致洗牌数组的解决方法?

    我有一个 PHP 脚本 需要随机化一个具有一致结果的数组 这样它就可以向用户呈现前几个项目 然后如果他们愿意 他们可以从同一个打乱的集合中提取更多结果 我目前使用的是这个 基于我相信的 Fisher Yates 算法 function sh
  • 检查条件并通过 Zend 中的 Regex 识别 url 中的模式

    我正在实现 Zend Regex 路由 并且必须对 url 执行多次检查 例如 如果这是我的网址 http localhost application public index php module controller action 这是
  • 如何使用 PHP 对字符串进行 rot13 处理?

    我有一个很大的 php 代码 我想手动对其进行编码和解码 我的问题是 php 代码里面有很多单引号和双引号 因此我在使用时出现错误str rot13 功能如下 那么正确的语法是什么以及如何使用下面的函数进行编码 str rot13 That
  • 一种无需 JavaScript 即可在 PHP 中确定浏览器宽度的方法?

    首先有吗 或者我必须使用javascript 我希望能够更改使用的 CSS 因此 frex 我可以为移动设备或其他设备加载较小的字体 不幸的是 仅使用 PHP 无法检测用户分辨率 如果您使用 Javascript 则可以在 cookie 中
  • setcookie with expire=0 浏览器关闭后不会过期

    我使用setcookie来制作一个过期 0的cookie 从 PHP 文档来看 link http php net manual en function setcookie php cookie 过期的时间 这是一个 Unix 时间戳 所以
  • 在服务器上找不到本地主机或 phpMyAdmin:如何修复?

    我按照安装说明进行操作PHP MySQL and PHPMyAdmin 但是当我尝试访问时http localhost phpmyadmin 我收到此错误 未找到 在此找不到请求的 URL phpmyadmin 服务器 然后我尝试访问loc
  • PHP 通过 SSL 连接到 MS SQL

    我想要实现的目标非常简单 我想通过安全连接从 PHP 脚本连接到外部 MS SQL 数据库 然而 这已被证明是有问题的 到目前为止 经过三个小时的研究 我不知所措 客户端的平台是Ubuntu 这意味着我无法使用SQLSRV 安全连接已经在不

随机推荐

  • bash 在循环中分配给数组索引时遇到问题

    我可以让它在 ksh 中工作 但不能在 bash 中工作 这真的让我发疯 希望这是我忽略的显而易见的事情 我需要运行一个外部命令 其中输出的每一行都将存储在数组索引中 这个简化的示例看起来像是在循环中正确设置了数组 但是在循环完成后 这些数
  • 如何将 Json 字符串转换为 NSArray? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我目前正在尝试将一些对象的 JSON 表示形式转换为NSArray 我用了Res
  • 新的 cassandra 节点无法使用种子进行八卦

    我正在尝试使用 cassandra 2 0 7 启动一个新节点 两个节点均位于 Digital Ocean 种子节点已启动并正在运行 我可以从我尝试启动的节点远程登录到该主机上的端口 7000 root cassandra02 apache
  • pydev 调试器:在 OS 10.8 升级后无法找到 python 2.7 的真实位置

    我刚刚升级到 OS X 10 8 Mountain Lion 但无法理解 pydev 调试器如何在 Aptana 3 0 上工作 在 Aptana 的首选项中 我将 python 解释器设置为 usr bin python 它指出系统库来自
  • Object.GetType() 可以返回 null 吗?

    只是好奇 有什么时间打电话吗 GetType 对象上会返回 null 假设用途 public Type MyMethod object myObject return myObject GetType 对象上的 GetType 永远不会返回
  • 编译具有相同目标的不同子项目时出现 CMP0002 错误

    我有很多子文件夹 home library1 library2 libraryn 每个子文件夹都包含一个可以自行编译的完整库 每个库都有不同的维护器 到目前为止 它工作正常 并且我使用脚本编译它们 现在我需要创建另一个库 它依赖于现有的库
  • 如何使用 Linq 写入 Excel 电子表格?

    我正在编写一个应用程序 需要从数据库中检索一些行并将它们转储到 Excel 电子表格中 我正在使用 Linq 来检索这些行 是否可以将这些行直接转储到 Excel 工作表中的对应行 其中 Excel 中的一个单元格对应于数据库中的一个单元格
  • Primefaces 验证码消失或不更新/刷新无效输入?

    我有以下一段代码h form
  • php8.2 找不到 Redis.dll

    我在 Windows 计算机上使用 PHP 8 2 启动 Redis 5 3 7 时遇到困难 当我尝试启动它时 会显示一个对话框 其中包含以下消息 无法在动态链接库c Program Files php ext php redis dll中
  • jdk1.7的javac在没有-cp选项的情况下找不到javafx jar

    我在这个网站和其他地方读过几个问题 这些问题表明安装 Oracle JDK7 时 不需要指定 jfxrt jar 的类路径当JDK正确安装时 不幸的是 我的安装似乎不正确 但我无法找出问题所在 我为 Red Hat Enterprise L
  • React onChange 处理程序在页面加载期间被多次调用

    我们正在尝试添加一个onChange我们的自定义组件之一的处理程序 即Checkbox组件 它是自定义组件的唯一原因是我们可以有效地封装intermediateHTML 属性 它看起来像这样
  • 即使使用包装类,SwingWorker 异常也会丢失

    我一直在努力解决 SwingWorker 吃掉后台任务中抛出的任何异常的可用性问题 例如 描述的在这个SO线程上 该线程很好地描述了问题 但没有讨论恢复原始异常 我收到的小程序需要向上传播异常 但我什至没能抓住它 我正在使用 SimpleS
  • 解析类 C 定义字符串的最有效方法?

    我有一组用类 C 语言编写的函数定义 其中包含一些附加关键字 这些关键字可以放在某些参数之前 例如与 无符号 或 寄存器 相同的方式 我需要分析这些行以及一些函数存根并从中生成实际的 C 代码 Flex Yacc 是最正确的方法吗 如果我对
  • Python 动态函数名

    我正在寻找一种更好的方法来调用基于 Python 中的变量的函数 而不是使用如下的 if else 语句 每个状态码都有对应的功能 if status CONNECT return connect args kwargs elif stat
  • 如何将 Jsoup 文档转换为 W3C 文档?

    我通过解析内部 HTML 页面构建了一个 Jsoup 文档 public Document newDocument String path throws IOException Document doc null doc Jsoup con
  • Datatables + PHP:多个表的服务器端处理

    如何获取数据表服务器端处理脚本来处理自定义查询 我需要从多个表中选择列并让数据表呈现它们 Datatables net 使用 PHP 的服务器端处理 SSP 总结如下 https datatables net examples server
  • 检测浏览器是否处于全屏模式

    有什么方法可以可靠地检测浏览器是否以全屏模式运行 我很确定没有任何浏览器 API 可以查询 但是有人通过检查和比较 DOM 公开的某些高度 宽度测量值来解决这个问题吗 即使它只适用于某些浏览器 我也有兴趣了解它 Chrome 15 Fire
  • Paho MQTT Android 服务唤醒活动

    我正在尝试使用 Paho Android MQTT 库 从这里下载的 例子服务申请工作正常 订阅和publish当示例应用程序运行时 方法也可以正常工作 当我close它 设备不再接收消息通知 有谁有如何正确修改 实现服务以接收消息的经验
  • 在 Pig 中将一个元组拆分为多个元组

    我喜欢从单个元组生成多个元组 我的意思是 我有包含以下数据的文件 gt gt cat data ID ColumnName1 Value1 ColumnName2 Value2 所以我通过以下命令加载它 grunt gt gt A load
  • php time() 和 microtime() 有时不一致

    在使用 microtime 使用 PHP 5 记录一些数据时 我遇到了一些与日志文件的时间戳似乎略有不同相的值 因此我只是尝试比较 time 和 microtime 的输出使用一个简单的脚本 usleep只是为了限制数据输出