[20210410]關於time命令的解析.txt

lfree發表於2021-04-12

[20210410]關於time命令的解析.txt

--//在 Linux 下,可以透過 time 命令,很容易獲取程式的執行時間:

$ time echo 2^1000000 | bc > /dev/null

real    0m4.117s
user    0m4.105s
sys     0m0.004s

--//可以看到,real = user+sys,非常接近。

$ time sleep 4
real    0m4.002s
user    0m0.000s
sys     0m0.002s

--//先來解釋下這三個引數的含義:
--//real:表示的鐘表時間,也就是從程式執行到結束花費的時間;
--//user:表示執行期間,cpu 在使用者空間所消耗的時間;
--//sys:表示執行期間,cpu 在核心空間所消耗的時間;

--//對於執行sleep 4,基本不消耗CPU時間。這樣兩者差別就很大。而前者基本屬於CPU的密集運算。real就非常接近user+sys。

--//會遇到 real 遠遠小於 user + sys 的場景嗎?實際上平行計算就可能出現這樣的情況。例子如下:

$ time  seq 3 |  xargs -IQ -P 3 bash -c "echo 2^1000000 | bc > /dev/null "
real    0m4.655s
user    0m12.978s
sys     0m0.018s

--//在我的測試環境echo 2^1000000 | bc > /dev/null大約需要4秒多一點,如果有新裝置,我經常使用這樣簡單的方式測試CPU計算性
--//能。而現在開啟3個並行,你可以發現real 需要4.X秒。而user需要12.XXX秒完成。這樣就出現 read遠遠小於user+sys的情況。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2767491/,如需轉載,請註明出處,否則將追究法律責任。

相關文章