gpt4 book ai didi

ColdFusion 执行时间准确度

转载 作者:行者123 更新时间:2023-12-04 12:41:20 26 4
gpt4 key购买 nike

我找到了一个 very old thread从 2004 年开始,ColdFusion 调试输出中列出的执行时间仅精确到 16 毫秒。这意味着,当您打开调试输出并查看执行时间时,您会看到最接近 16 毫秒倍数的估计值。我今天可以通过 ACF10 看到这一点。刷新页面时,大多数情况下会在 15-16 毫秒的倍数之间反弹。

以下是问题:

  • 从底部开始,当 ColdFusion 报告 0ms 或 16ms 时,
    这总是意味着介于 0 和 16 之间,但不超过 16 毫秒?
  • 当 Coldfusion 报告 32 ms 时,这是否意味着介于
    17 和 32?
  • ColdFusion 默认情况下单独列出所有内容,而不是单独列出
    调用者包含许多函数的执行树。什么时候
    确定树上更高的执行成本,它是否求和
    children 的“不准确”时代,或者这是一个现实的成本
    所有子进程执行的实际时间是多少?
  • 我们可以使用 cftimers 或 getTickCount() 来实际获得准确吗
    次,或者这些也是估计?
  • 有时,您会看到 3 个函数每个需要 4 毫秒,总共需要 12 毫秒,甚至单个调用需要 7 毫秒。为什么有时看起来“准确”?

  • 我现在将提供一些猜测,但我需要一些社区支持!
  • ColdFusion 将跟踪报告,准确到 16 毫秒,而不是将子进程相加。
  • cftimers 和 getTickCount() 更准确。
  • 我不知道?
  • 最佳答案

    在 Java 中,您可以使用 System.currentTimeMillis() 或 System.nanoTime()。

    我假设 getTickCount() 只返回 System.currentTimeMillis()。 ColdFusion 还使用它来报告调试输出执行时间。您可以在许多 StackOverflow 问题中找到提示 System.currentTimeMillis() 不准确的问题,因为它是从操作系统报告的。在 Windows 上,精度可能会有很大差异,有人说最高可达 50 毫秒。它不考虑闰秒或任何东西。但是,它很快。查询似乎报告来自 JDBC 驱动程序、SQL 引擎或其他方法的信息,因为它们通常是准确的。

    作为替代方案,如果您真的想要提高准确性,可以使用以下命令:
    currentTime = CreateObject("java", "java.lang.System").nanoTime()
    这比 currentTimeMillis() 性能低,但精确到纳秒。您可以除以 1000 得到微秒。如果您试图通过除以 1000000 转换为毫秒,您将需要包含在 precisionEvaluate() 中。

    请注意,nanoTime() 不是精确到纳秒,而是精确到纳秒。它的准确性只是对 currentTimeMillis() 的改进。

    关于ColdFusion 执行时间准确度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21532281/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com