【问题标题】:how to analyze cpu time while benchmarking in python (multiprocessing)?如何在python(多处理)中进行基准测试时分析cpu时间?
【发布时间】:2017-03-18 23:24:41
【问题描述】:

以下是在 ipython 中使用 %time 进行分析后的结果-

单线程: CPU时间:用户6m44s sys 1.78s 共6m46s 挂墙时间:5 分 19 秒

4 线程: CPU时间:用户10m12s sys 2.83s 总共10m15s 挂墙时间:4 分 14 秒

多线程代码的 CPU 时间不应该更短吗? 此外,CPU 时间怎么可能超过挂墙时间,因为挂墙时间是总经过的时间。能否请您澄清一下这些术语。

【问题讨论】:

    标签: python multithreading performance time benchmarking


    【解决方案1】:

    No CPU time 是所有 cpu 在任务上花费的时间。因此,如果 cpu1 在一个任务上花费 2 分钟,而 cpu2 在同一个任务上花费 3 分钟,那么 cpu 时间将为 1 + 3 = 4。

    所以在多线程程序中,我们预计 cpu 时间通常会超过 wall 时间。

    现在你可能会问为什么你的单线程程序也是如此。答案可能是,即使您的代码没有明确使用并行性,您也可能使用了一个库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-15
      • 2011-02-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多