以下是在 ipython- 中使用 %time 进行分析后的结果-
单线程: CPU 时间:用户 6 分 44 秒 系统 1.78 秒 总计 6 分 46 秒 挂孔时间:5分19秒
4 线程: CPU 时间:用户 10m12s 系统 2.83s 总计 10m15s 挂孔时间:4分14秒
多线程代码的CPU时间不应该更少吗? 另外,CPU时间怎么可能超过墙壁时间,因为墙壁时间是总经过的时间。您能否澄清这些术语。
无 CPU时间是所有 CPU 在任务上花费的时间。因此,如果 cpu1 在任务上花费了 2 分钟,而 cpu2 在同一任务上花费了 3 分钟,则 cpu 时间为 1 + 3 = 4。
因此,在多线程程序中,我们预计CPU时间通常会超过墙壁时间。
现在你可能会问为什么你的单线程程序也是如此。答案可能是,即使您的代码没有显式使用并行性,也可能有一个您使用的库使用并行性。