gpt4 book ai didi

benchmarking - 在进行基准测试时,是什么导致 CPU 时间和 "elapsed real time"之间出现延迟?

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

我正在使用内置的基准测试模块进行一些快速而肮脏的测试。它给了我:

  • CPU 时间
  • 系统 CPU 时间(实际上,我运行的代码从未得到任何结果)
  • 用户和系统 CPU 时间的总和(在我的情况下总是与 CPU 时间相同)
  • 经过的实时

  • 我什至不知道我需要所有这些信息。

    我只想比较两段代码,看看哪一段需要更长的时间。我知道一段代码可能比另一段代码进行更多的垃圾收集,但我不确定它会产生多大的影响。

    我应该查看哪个指标的任何想法?

    而且,最重要的是,有人可以解释为什么“经过的实时时间”总是比 CPU 时间长 - 是什么导致两者之间的滞后?

    最佳答案

    除了运行 Ruby 代码之外,您的系统中还发生了很多事情。已用时间是所用的总实际时间,不应用于基准测试。您需要系统和用户 CPU 时间,因为这些时间是您的进程实际拥有 CPU 的时间。

    例如,如果您的流程:

  • 使用 CPU 运行代码一秒钟;然后
  • 使用 CPU 运行 OS 内核代码一秒钟;然后
  • 在另一个进程运行时被换出七秒钟;然后
  • 使用 CPU 多一秒钟来运行您的代码,

  • 你会看到:
  • 十秒过去的时间,
  • 两秒用户时间,
  • 一秒系统时间,
  • 三秒的总 CPU 时间。

  • 三秒是您需要担心的,因为这十秒完全取决于进程调度的变幻莫测。

    关于benchmarking - 在进行基准测试时,是什么导致 CPU 时间和 "elapsed real time"之间出现延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/668682/

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