0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在Linux上time基礎(chǔ)用法詳解

麥辣雞腿堡 ? 來源:肖邦Linux ? 作者:肖邦Linux ? 2023-10-09 17:28 ? 次閱讀

1 基礎(chǔ)用法詳解

先來看下最基礎(chǔ)的用法,也可能是大家最常見的用法了

root@chopin:~$ time find . -name "chopin.txt"
......
real   0m0.174s
user   0m0.084s
sys    0m0.084s

可以很清楚看到,find 命令執(zhí)行的時間為 0.174s ,是不是很簡單,很方便呢

不過,time 命令輸出了三個參數(shù),我們只用到了第一個參數(shù),其它兩個參數(shù)代表什么含義呢?

這里我來解釋一下:

  • real :表示的是墻上時間,說白了,其實就是從程序運行開始到結(jié)束所經(jīng)歷的時間;
  • user :表示程序運行期間,cpu 在用戶態(tài)所花費的時間;
  • sys :表示程序運行期間,cpu 在內(nèi)核態(tài)所花費的時間;

細心的讀者會發(fā)現(xiàn),上述案例中的 user + sys 不等于 real ,這是怎么回事呢?

其實上邊解釋的 usersys ,是 cpu 執(zhí)行指令所消耗的時間,并不包含:進程阻塞 IO、調(diào)度排隊,這些非 cpu 運行時間。

案例中 find 執(zhí)行查找文件過程中,會有磁盤 IO 讀取,這時 cpu 會被釋放出來干別的事情,這些 IO 消耗的時間,是不包含在 usersys 統(tǒng)計數(shù)據(jù)中,所以就出現(xiàn)了 real 時間大于 user + sys 了。

再通過一個示例來驗證并加強我們的理解

root@chopin:~$ time sleep 2
real   0m2.001s
user   0m0.000s
sys    0m0.000s

可以清楚地看到,sleep 命令基本上沒有消耗 cpu,程序真實的運行時間就是 2 秒

那我們是不是可以得出如下結(jié)論了呢:

real >= user + sys

其實這個結(jié)論在單個 cpu 情況下,是正確的。

如果服務器是多個 cpu,你的程序正好可以將多個 cpu 充分利用起來,程序運行期間是多核心并行的,那么 user + sys 統(tǒng)計的 cpu 時間可能就會大于 real 時間啦

所以這 3 個時間之間的關(guān)系并不是恒定的,你需要清楚的了解服務器是否為多個核心。

通過統(tǒng)計到的 cpu 消耗時間,我們也可以大概知道,程序運行期間 cpu 利用情況。對于單核,計算密集型的程序,real 會很接近 usersys 時間之和的。

Tips:有些同學可能對操作系統(tǒng)可能不太熟悉,這里簡單科普下內(nèi)核態(tài)用戶態(tài)的基本概念

Linux 為使系統(tǒng)更穩(wěn)定,采取了隔離保護的措施,運行狀態(tài)分為內(nèi)核態(tài)和用戶態(tài)

  • 用戶態(tài) :用戶代碼不具備直接訪問底層資源的能力,需要借助內(nèi)核提供的系統(tǒng)調(diào)用 API。在這種隔離保護下,即使用戶程序崩潰,也不會影響整個系統(tǒng)的功能。
  • 內(nèi)核態(tài) :內(nèi)核代碼具備最大權(quán)限,可執(zhí)行任意 cpu 指令,不受任何限制。內(nèi)核態(tài)通常是操作系統(tǒng)提供的最底層、最可靠的代碼運行的,內(nèi)核態(tài)的代碼崩潰是災難性的,影響整個系
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1361

    瀏覽量

    40185
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10807

    瀏覽量

    210852
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11212

    瀏覽量

    208723
收藏 人收藏

    評論

    相關(guān)推薦

    Linux LED子系統(tǒng)詳解

    Linux LED子系統(tǒng)詳解
    的頭像 發(fā)表于 06-10 10:37 ?1493次閱讀
    <b class='flag-5'>Linux</b> LED子系統(tǒng)<b class='flag-5'>詳解</b>

    labview中的Elapsed Time控件的用法

    跪求labview中的Elapsed Time控件的用法
    發(fā)表于 03-22 23:36

    linux中comm命令用法

    linux系統(tǒng)中comm命令用法詳解 linux系統(tǒng)下的comm命令是一個非常實用的文件對比命令。 comm命令功能:選擇或拒絕兩個已排序的文件的公共的行。 comm命令語法:comm
    發(fā)表于 07-04 08:22

    Linux關(guān)機命令詳解

    Linux關(guān)機命令詳解 linux下一些常用的關(guān)機/重啟命令有shutdown、halt、reboot、及init,它們都 可以達到重啟系統(tǒng)的目的,但每個命令的內(nèi)部工作過程是不同的
    發(fā)表于 01-18 12:52 ?3616次閱讀

    OrCAD中創(chuàng)建總線及用法詳解

    OrCAD中創(chuàng)建總線及用法詳解,如何創(chuàng)建總線,菜單place->bus或者右側(cè)快捷按鈕
    發(fā)表于 12-02 10:18 ?2.6w次閱讀

    linux下網(wǎng)卡配置詳解

    linux下網(wǎng)卡配置詳解
    發(fā)表于 12-15 22:38 ?0次下載

    XMEGA PWM模塊多通道的用法詳解

    本文主要詳解XMEGA PWM模塊多通道的用法,具體的跟隨小編來了解一下。
    的頭像 發(fā)表于 06-18 14:09 ?4276次閱讀
    XMEGA PWM模塊多通道的<b class='flag-5'>用法</b><b class='flag-5'>詳解</b>

    你會使用Linux 中的“!”驚嘆用法

    前言 實際,不起眼的“!”linux中有著很多讓你驚嘆的妙用。本文就來細數(shù)那些“!”的神奇用法。
    的頭像 發(fā)表于 01-29 09:08 ?2550次閱讀

    CMake用法詳解

    CMake用法詳解
    發(fā)表于 10-25 16:28 ?2次下載

    Linux設(shè)備驅(qū)動開發(fā)詳解

    Linux設(shè)備驅(qū)動開發(fā)詳解
    發(fā)表于 10-28 11:03 ?50次下載

    Linux系統(tǒng)維護命令的用法

    Linux有很多命令,每個命令基本可以用一篇文章介紹,本文僅簡單總結(jié)一些常用系統(tǒng)維護命令的用法
    的頭像 發(fā)表于 04-17 14:57 ?995次閱讀
    <b class='flag-5'>Linux</b>系統(tǒng)維護命令的<b class='flag-5'>用法</b>

    Linux中GNU time命令的使用

    更強大的功能 GNU time 命令提供了更強大的功能: 更詳細的統(tǒng)計信息 更豐富的格式輸出 支持保存統(tǒng)計數(shù)據(jù)到文件 下邊我們來學習寫 GNU time 的使用 1. 最簡單的用法 root
    的頭像 發(fā)表于 10-09 17:53 ?709次閱讀

    linux中find用法詳解

    Linux中, find 命令是一個非常強大的工具,用于指定目錄下查找文件和目錄。下面是 find 命令的用法和詳細解釋: 語法: find [路徑] [表達式] 路徑:要查找的目
    的頭像 發(fā)表于 11-08 14:29 ?657次閱讀

    linux常用命令及用法

    Linux是一種開源的操作系統(tǒng),它以穩(wěn)定、高效和安全的特點受到廣大用戶的喜愛。掌握Linux的常用命令及其用法對于操作系統(tǒng)的管理和開發(fā)都至關(guān)重要。本文將詳盡、詳實、細致地介紹Linux
    的頭像 發(fā)表于 11-17 09:47 ?614次閱讀

    Linux lsof命令的基本用法

    linux 系統(tǒng)中,一切皆文件。通過文件不僅僅可以訪問常規(guī)數(shù)據(jù),還可以訪問網(wǎng)絡(luò)連接和硬件。所以 lsof 命令不僅可以查看進程打開的文件、目錄,還可以查看進程監(jiān)聽的端口等 socket 相關(guān)的信息。本文將介紹 lsof 命令的基本
    的頭像 發(fā)表于 10-23 11:52 ?155次閱讀
    <b class='flag-5'>Linux</b> lsof命令的基本<b class='flag-5'>用法</b>