【每天一個Linux命令】08. Linux中time命令的用法

來源:互聯網
上載者:User


Linux中time命令,我們經常用來計算某個程式的運行耗時(real),使用者態cpu耗時(user),系統態cpu耗時(sys)


time命令最常用的使用方式就是在其後面直接跟上命令和參數:
time <command> [<arguments...>]

舉個栗子1:

bixiaopeng@bixiaopengtekiMacBook-Pro ~$ time sleep 2real     0m2.005suser    0m0.001ssys     0m0.002s

小解其意:

real     0m2.005s  :sleep這個程式運行耗時為0m2.005s
user    0m0.001s :  這個時間代表的是sleep運行在使用者態的cpu時間
sys     0m0.002s :  這個時間代表的是sleep運行在核心態的cpu時間。

使用者態(User Mode):

在使用者態,代碼不具備直接存取硬體或者訪問記憶體的能力,而必須藉助作業系統提供的可靠的,底層的APIs來訪問硬體或者記憶體。由於這種隔離帶來的保護作用,使用者態的代碼崩潰(Crash),系統是可以恢複的。我們大多數的代碼都是運行在使用者態的。

核心態(Kernel Mode)
在核心態,代碼擁有完全的,不受任何限制的訪問底層硬體的能力。可以執行任意的CPU指令,訪問任意的記憶體位址。核心態通常情況下,都是為那些最底層的,由作業系統提供的,可信可靠的代碼來啟動並執行。核心態的代碼崩潰將是災難性的,它會影響到整個系統。

為什麼要區分Kernel Mode 和 User Mode
隔離保護,使得系統更穩定。
好,講完使用者態和核心態之後,我們來看user time,說過了,這個指的是程式foo運行在使用者態的cpu時間,cpu時間不是牆上的鐘走過的時間,而是指CPU工作時間。

舉個栗子2:

#time -p 不顯示單位bixiaopeng@bixiaopengtekiMacBook-Pro ~$ time -p sleep 2real 2.00user 0.00sys 0.00


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.