CPU秒的定义?

dud*_*ude 3 central-processing-unit

我完全支持这个话题。

昨天我正在对我正在处理的一些脚本进行分析,所花费的时间单位是“ CPU 秒”。谁能用它的定义提醒我?

例如,对于我得到的一些分析:200.750 CPU seconds。那是什么意思?在其他情况下,对于耗时的过程,我得到:-347.977 CPU seconds,一个负数!

无论如何,我可以将那个时间转换为日历时间吗?

干杯,

Dav*_*osh 5

CPU-second 是 CPU 上的一秒时间。

进程执行时间有两个度量:

  • CPU 时间,或 CPU 主动运行进程所花费的时间;和
  • 墙上时间,或从您开始流程到流程结束之间经过的时间。

假设有一个 CPU 内核,它们之间的关系如下:

(Wall time) - (CPU time) = (time the CPU spent doing other things)
Run Code Online (Sandbox Code Playgroud)

所以在一个简单的例子中,如果你运行一个进程,它需要 10 秒,但你得到 7 个 CPU 秒的测量值,那么在这 10 秒内,CPU 花费了 3 秒做除了执行你的进程之外的事情。

CPU时间一般分为两种:

  • “系统”或“内核”时间,或内核代表您的进程做事的时间——运行 I/O、定时器、互斥锁等等
  • “用户”时间,或由用户空间中的进程运行的执行

例如:

$ time sleep 1

real    0m1.005s
user    0m0.000s
sys     0m0.002s
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我们睡了一秒钟。系统在内核空间用了 2/1000 秒,大概是给我们设置了定时器和中断,在用户空间没时间,整个过程用了 1.005 秒,也就是说那段时间电脑多用了 0.003 秒处理我们的流程以外的事情。

在我的头顶上,我不知道您如何或为什么会得到明显的 CPU 时间负数。