Central-Processing-Unit
CPU秒的定義?
我完全支持這個話題。
昨天我正在為我正在處理的一些腳本進行分析,所用時間的單位是“ CPU 秒”。誰能提醒我它的定義?
例如,對於我得到的一些分析:200.750 CPU seconds。那應該是什麼意思?在其他情況下,對於耗時的過程,我得到:-347.977 CPU seconds,一個負數!
無論如何我可以將那個時間轉換為日曆時間嗎?
乾杯,
CPU 秒是 CPU 上的一秒時間。
流程執行時間有兩個度量:
- CPU 時間,或 CPU 主動執行程序所花費的時間;和
- 掛起時間,或您開始流程和流程結束之間經過的時間量。
假設單個 CPU 核心,它們的相關性如下:
(Wall time) - (CPU time) = (time the CPU spent doing other things)
所以在一個簡單的例子中,如果你執行一個程序,它需要 10 秒,但你得到 7 個 CPU 秒的測量結果,那麼在這 10 秒內,CPU 花了 3 秒做其他事情而不是執行你的程序。
CPU時間一般分為兩種:
- “sys”或“kernel”時間,或核心為您的程序做事所花費的時間——執行 I/O、計時器、互斥鎖等
- “使用者”時間,或由使用者空間中的程序執行的執行
例如:
$ time sleep 1 real 0m1.005s user 0m0.000s sys 0m0.002s
在這種情況下,我們正在休眠一秒鐘。系統在核心空間花費了2/1000秒,可能是為我們設置了定時器和中斷,在使用者空間沒有時間,整個事情執行了1.005秒,這意味著在那個時間段內電腦額外花費了0.003秒除了處理我們的流程之外,還做其他事情。
在我的腦海中,我不知道你如何或為什麼會得到一個明顯的 CPU 時間負數。