基准测试--CPU时间长于墙时间? [英] Benchmarking - CPU time bigger than wall time?

查看:21
本文介绍了基准测试--CPU时间长于墙时间?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Linux上测量了排序算法的CPU时间和挂起时间。我使用getrusage来测量CPU时间,使用clock_gettime CLOCK_MONOTONIC来获得墙时间。虽然我注意到一个CPU的时间比墙上的时间长,但这是正确的吗?我一直认为CPU时间必须少于墙上的时间。我的示例结果:

3.000187 seconds  [CPU]
3.000001 seconds  [WALL]

推荐答案

如果计算需要两秒的处理器时间,则两个处理器(理想情况下)可以在一秒内完成计算。因此,双处理器系统的挂钟秒对应两个CPU秒。即使您没有在您的进程中显式使用多线程,您使用的库或操作系统也可能使用多个处理器为您的进程执行工作。

此外,有些核算是近似的。系统可能会以某个小单位来跟踪处理器时间,例如出于论证的目的,例如微秒,并在进程接收到至少0.5微秒的处理器时间的任何时候向该进程收取微秒的费用。(这应该是所有回答浮点问题的人的一个教训,他们建议使用整数算法来避免舍入误差。所有离散算术都可能有舍入误差。)

这篇关于基准测试--CPU时间长于墙时间?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆