【问题标题】:Does a precise/accurate timing method exist?是否存在精确/准确的计时方法?
【发布时间】:2011-03-23 19:40:37
【问题描述】:

我见过很多方法来为脚本计时 - 从 getrusage()、microtime() 等。理想情况下,有一种方法可以给出真正的运行时间,排除“噪音”,例如调度程序,这样每次我运行一个独立的脚本时,我都会得到完全相同的答案,因为它是一个确定性的过程。理想是不可能的,如果是这样,下一个最佳解决方案是什么?提前致谢。

【问题讨论】:

  • 6 个问题,0 个接受的答案.. 你应该解决这个问题。
  • 我不知道在任何情况下软件时序的精度都具有任何价值。您是否基于在内部循环中运行它来构建时钟?由于多种因素,您可以预期时间测量中的噪声。两位,也许三位,小数位的准确性几乎是您所能期望的,或者这意味着什么。
  • “独立于其他变量”(原文如此)是一个毫无意义的陈述。您并非独立于其他变量,因为它就是这样工作的。您可以努力减轻这些变量,但在裸机上编码不足,您将与整个操作系统竞争。即使你这样做了,时钟芯片、电源调制的频率等也存在时序不规则性。
  • 脚本/程序需要一定的时间才能运行。独立于其他变量,每次都需要相同的时间。因为计算机是一个确定性系统,所以可以以完美的精度和准确度为每个脚本获得可重复的运行时间。我不知道这个工具是否存在,这就是问题所在。目前使用 microtime,就原始性能而言,我没有任何关于准确性和精度的东西可以使用……但与更大的值相比,它可以正常工作。
  • 例如 - 在比较客户端处理时间、服务器端处理时间和网络传输时间时,只需使用 time() 即可。

标签: php linux optimization time


【解决方案1】:

您应该查看Xdebug。运行时分析将使您对执行时间以及调用堆栈图和内存使用情况有一个很好的了解。

【讨论】:

  • 具体来说,你要使用the profiling featuresxdebug offer。
  • PDT (PHP Development Tool),一个包含 Xdebug 的 Eclipse 插件。 Xdebug 应该输出我可以用 kcachegrind 可视化的数据。似乎当前的工作是弄清楚所有部分并正确安装它们。
猜你喜欢
  • 2016-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多