精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

在Linux上,使用time優雅的統計程序運行時間

系統 Linux
最近在使用 time 命令時,無意間發現了一些隱藏的小秘密和強大功能,今天分享給大家。

[[416875]]

 大家好,我是肖邦。

最近在使用 time 命令時,無意間發現了一些隱藏的小秘密和強大功能,今天分享給大家。

time 在 Linux 下是比較常用的命令,可以幫助我們方便的計算程序的運行時間,對比采用不同方案時程序的運行性能。看似簡單的命令,其實蘊藏著很多細節和技巧,來跟著肖邦一起學習吧。

1 基礎用法詳解

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

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

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

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

這里我來解釋一下:

  •  real:表示的是墻上時間,說白了,其實就是從程序運行開始到結束所經歷的時間;
  •  user:表示程序運行期間,cpu 在用戶態所花費的時間;
  •  sys:表示程序運行期間,cpu 在內核態所花費的時間;

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

其實上邊解釋的 user 和 sys,是 cpu 執行指令所消耗的時間,并不包含:進程阻塞 IO、調度排隊,這些非 cpu 運行時間。

案例中 find 執行查找文件過程中,會有磁盤 IO 讀取,這時 cpu 會被釋放出來干別的事情,這些 IO 消耗的時間,是不包含在 user 和 sys 統計數據中,所以就出現了 real 時間大于 user + sys 了。

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

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

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

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

real >= user + sys

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

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

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

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

Tips:有些同學可能對操作系統可能不太熟悉,這里簡單科普下內核態和用戶態的基本概念

Linux 為使系統更穩定,采取了隔離保護的措施,運行狀態分為內核態和用戶態:

  •  用戶態:用戶代碼不具備直接訪問底層資源的能力,需要借助內核提供的系統調用 API。在這種隔離保護下,即使用戶程序崩潰,也不會影響整個系統的功能。
  •  內核態:內核代碼具備最大權限,可執行任意 cpu 指令,不受任何限制。內核態通常是操作系統提供的最底層、最可靠的代碼運行的,內核態的代碼崩潰是災難性的,影響整個系統的正常運行。

2 你運行的可能是假time

time 還有其它功能嗎?看一下幫助文檔吧 

  1. root@chopin:~$ time --help  
  2. --help: command not found  
  3. real 0m0.129s  
  4. user 0m0.084s  
  5. sys 0m0.036s 

竟然報錯,將 --help 當成了命令來執行了,難道 time 就這么點能耐嗎?

好吧,我也不賣關子了,直接說答案:你運行的可能是假time。你可能有點懵逼,怎么就假的了。

其實在 Linux 系統上,使用 time 時,你可能會遇到三種版本: 

  1. # 1. Bash  
  2. time is a shell keyword  
  3. # 2. Zsh  
  4. time is a reserved word  
  5. # 3. GNU time  
  6. time is /usr/bin/time 

我們當前 Shell 是 Bash,可以通過 type 命令 

  1. root@chopin:~$ type time  
  2. time is a shell keyword 

可以看到,我們剛才執行的 time 是 Shell 的內置命令,如果你用的是 zsh,默認使用的 time 也是對應內置命令。

GNU time 命令路徑是 /usr/bin/time,一般的 Linux 發行版都帶有這個命令,它才是我們今天的豬腳。

3 更強大的功能

GNU time 命令提供了更強大的功能:

  •  更詳細的統計信息
  •  更豐富的格式輸出
  •  支持保存統計數據到文件

下邊我們來學習寫 GNU time 的使用

1. 最簡單的用法 

  1. root@chopin:~$ /usr/bin/time sleep 2  
  2. 0.00user 0.00system 0:02.00elapsed 0%CPU (0avgtext+0avgdata 1784maxresident)k  
  3. 0inputs+0outputs (0major+72minor)pagefaults 0swaps 

使用 GNU time 命令,直接使用絕對路徑即可,我們可以看到輸出信息更多了,不過格式有點丑,后邊會講如何自定義格式。

2. 保持內置 time 的輸出樣式

有同學會問,能輸出內置 Shell 那種的格式么?可以的,使用 -p 選項即可 

  1. root@chopin:~$ /usr/bin/time -p sleep 2  
  2. real 2.00  
  3. user 0.00  
  4. sys  0.00 

3. 輸出更詳細的信息

還可以輸出更加詳細的信息,讓你對程序運行信息一目了然。請使用 -v 選項 

  1. root@chopin:~$ /usr/bin/time -v sleep 2  
  2. Command being timed: "sleep 2"  
  3. User time (seconds): 0.00  
  4. System time (seconds): 0.00  
  5. Percent of CPU this job got: 0%  
  6. Elapsed (wall clock) time (h:mm:ss or m:ss): 0:02.00  
  7. Average shared text size (kbytes): 0  
  8. Average unshared data size (kbytes): 0  
  9. Average stack size (kbytes): 0  
  10. Average total size (kbytes): 0  
  11. Maximum resident set size (kbytes): 1804  
  12. Average resident set size (kbytes): 0  
  13. Major (requiring I/O) page faults: 0  
  14. Minor (reclaiming a frame) page faults: 71  
  15. Voluntary context switches: 1  
  16. Involuntary context switches: 1  
  17. Swaps: 0  
  18. File system inputs: 0  
  19. File system outputs: 0  
  20. Socket messages sent: 0  
  21. Socket messages received: 0  
  22. Signals delivered: 0  
  23. Page size (bytes): 4096  
  24. Exit status: 0 

這里詳細介紹下 time 命令輸出各項指標

(一)時間相關

(二)內存相關

(三)IO 相關

4. 統計信息輸出到文件

如果你希望將 time 統計的信息輸出到文件,可以使用 -o 選項

  1. root@chopin:~$ /usr/bin/time -v -o a.txt sleep 2 

統計信息直接保存到了 a.txt,如果你希望統計信息能夠追加到文件,可以額外加 -a 選項

5. 自定義格式輸出

如果命令中內置的輸出格式,不符合你的需求,GNU time 可以支持自定義輸出格式,通過選項 -f 可以各種指標參數 

  1. /usr/bin/time -f "real %e\nuser %U\nsys %S\n" sleep 1  
  2. real 1.00  
  3. user 0.00  
  4. sys  0.00 

具體支持的格式,貼心的肖邦已經幫你整理好了

這些格式參數太多了,平時大部分情況用不到,可以收藏起來,以便后期使用時可以快速參考。

4 在性能分析中的作用

看到這么多系統參數指標,難免會有同學會感到疑惑,這些參數能干什么呀?

其實這些指標,對應到操作系統 cpu、內存、IO 這幾方面。深刻的理解了這些指標參數,可以幫助你從本質上把握程序的運行情況,甚至可以協助你分析程序的性能瓶頸。

下邊我簡單解釋幾個概念,希望能起到拋磚引玉的作用。

(一)CPU 時間

cpu 時間包括:real、user、sys,當 user + sys >= real 時,說明該程序是計算密集型;當 user + sys 遠小于 real 時,說明存在較多的 IO 等待。

(二)上下文切換

平時所說的上下文,是指進程的運行環境,包括當時的寄存器值、內存堆棧等信息,內核可以根據上下文完全恢復一個被打斷的進程任務。

當執行系統調用、進程切換時,都會產生上下文切換。切換上下文時,操作系統需要為進程保存和恢復上下文信息。

上下文切換分為主動和被動兩種,主動上下文切換多,說明存在較多的阻塞調用;被動上下文切換說明 cpu 使用率高。

當上下文切換過多時,意味著較多的 cpu 時間花費在上下文切換上,導致 cpu 處理進程任務的有效時間大大減少。

(三)缺頁異常

次缺頁異常較多,說明程序的內存布局相對合理,命中率高;當主缺頁異常較多時,說明程序對內存的訪問跳躍性大,命中率低。

處理缺頁異常和切換上下文的時間,不包含在 user 和 sys 中,當發現 user + sys 遠小于 real 時,則很可能大部分時間都消耗在這些地方,需要重點分析這兩點。 

 

責任編輯:龐桂玉 來源: Linux學習
相關推薦

2021-05-11 11:52:23

Linuxtime命令

2021-05-10 07:30:07

Linux統計程序

2018-04-08 14:27:45

Linuxuptime系統運行時間

2020-04-06 11:47:44

Linux命令腳本

2021-06-24 10:28:19

uptimed命令Linux

2010-01-27 14:14:48

C++程序運行時間

2019-10-14 09:14:37

Linuxbash命令

2016-08-23 10:17:42

2022-11-04 09:09:54

Linux服務器

2021-08-18 08:32:09

代碼運行時間示波器

2019-01-15 14:00:59

Linux服務器命令

2022-01-19 08:50:53

設備樹Linux文件系統

2020-05-29 19:00:10

LinuxMySQLMariaDB

2015-07-20 15:44:46

Swift框架MJExtension反射

2011-08-19 15:05:29

異常處理

2023-02-12 12:00:57

2021-09-18 08:02:49

Go程序工具

2017-01-19 20:28:44

2021-03-15 08:33:01

CC++動態庫

2024-03-21 09:15:58

JS運行的JavaScrip
點贊
收藏

51CTO技術棧公眾號

91.麻豆视频| 国产精品久久福利| 欧美亚洲另类激情另类| 国产jjizz一区二区三区视频| 成人软件在线观看| 亚洲欧美偷拍三级| 精品久久久久久一区| 超碰在线免费97| 欧美国产另类| 亚洲欧美制服另类日韩| 中文字幕55页| 欧美艳星kaydenkross| 中文字幕在线一区| 国产精品免费一区二区三区四区| 波多野结衣视频免费观看| 亚洲欧洲日韩| 亚洲乱码国产乱码精品精天堂| 中文字幕66页| 中文字幕在线官网| 亚洲精品久久嫩草网站秘色| 欧美黄色直播| 欧美一级在线免费观看| 麻豆91在线播放免费| 91国产美女视频| 亚洲国产精品免费在线观看| 国内精品久久久久久99蜜桃| 精品国产99国产精品| 激情五月婷婷基地| 欧美日韩视频免费观看| 午夜精品成人在线| 人人妻人人澡人人爽欧美一区| caoporn国产精品免费视频| 成人涩涩免费视频| 92看片淫黄大片欧美看国产片| 亚洲第一网站在线观看| 最新国产拍偷乱拍精品| 欧美激情videos| 永久免费看片直接| 国产无限制自拍| 国产成人久久精品77777综合 | 亚洲精品在线播放| 欧美色网站导航| 国产v亚洲v天堂无码久久久| 碰碰在线视频| 亚洲国产视频直播| 中文精品无码中文字幕无码专区| 青青青青在线| 国产精品高潮久久久久无| 日韩国产精品一区二区三区| 欧美套图亚洲一区| 久久这里只精品最新地址| 国产日韩在线一区二区三区| 亚洲成人第一区| 国产精品99久久久久久有的能看| 成人国产精品久久久久久亚洲| 中文字幕激情视频| 理论电影国产精品| 国产欧美日韩免费| 国产又粗又猛又黄又爽无遮挡 | 97免费公开视频| 9.1麻豆精品| 8x8x8国产精品| 日本一二三四区视频| 99精品视频在线免费播放| 3751色影院一区二区三区| 黄色片免费网址| 亚洲精品一区国产| 日韩禁在线播放| 手机看片福利视频| 色综合五月天| 不卡中文字幕av| 538精品在线观看| 亚洲视频综合| 日本成人激情视频| 中文亚洲av片在线观看| 国内精品久久久久影院薰衣草| 亚洲自拍小视频免费观看| 丰满人妻熟女aⅴ一区| av不卡在线观看| 日韩av高清在线播放| 午夜免费福利在线观看| 亚洲激情校园春色| 中国丰满人妻videoshd | 一区二区三区四区五区在线 | 美腿丝袜亚洲图片| 精品在线欧美视频| 成人午夜免费影院| 欧美日本精品| 日韩美女免费观看| 国产欧美久久久精品免费| 成人av在线网站| 日本午夜一区二区三区| 中文字幕有码在线观看| 高跟丝袜一区二区三区| 亚洲精品综合在线观看| 色婷婷av一区二区三区丝袜美腿| 色婷婷综合久久久久中文字幕1| 久久国产在线视频| 日本aⅴ亚洲精品中文乱码| 91天堂在线视频| 国产免费av在线| 亚洲综合精品久久| 天堂在线资源视频| 韩国女主播一区二区三区| 伊人av综合网| 日本一级片免费看| 国产乱码精品1区2区3区| 久久免费看av| 国产激情视频在线观看| 色综合婷婷久久| 深夜视频在线观看| 水蜜桃久久夜色精品一区| 97精品一区二区视频在线观看| 亚洲图片小说视频| 久久影院午夜论| 精品国产一区二区三区无码| 成人黄色毛片| 亚洲欧美日韩精品久久| 免费毛片在线播放免费| 久久99精品久久久久久国产越南 | 六十路息与子猛烈交尾| 国产精品精品国产一区二区| 日本国产欧美一区二区三区| 丰满少妇一级片| 亚洲婷婷综合色高清在线| 日本熟妇人妻中出| 日韩成人av在线资源| 久久99视频精品| 国产又黄又粗又长| 国产精品久久久久一区| av五月天在线| 一区二区三区视频免费观看| 久久免费成人精品视频| 99这里有精品视频| 国产精品理论片在线观看| 欧美日韩亚洲一二三| 亚洲精品**不卡在线播he| 久久久亚洲成人| 亚洲欧美黄色片| 亚洲一区二区在线免费看| 久久久久无码精品| 亚洲激情中文在线| 91在线视频九色| 福利视频在线| 日韩一区二区三区四区五区六区 | 欧美91福利在线观看| 国产美女久久精品| 香港伦理在线| 91精品婷婷国产综合久久性色| 国产又粗又猛又爽又黄的视频小说| 日韩精品1区2区3区| 日本精品一区二区三区视频| 成人免费看视频网站| 日韩精品在线免费播放| 国产成人在线免费视频| 久久久久久9999| 亚洲精品一二三四五区| 日韩久久视频| 91沈先生作品| 中日韩高清电影网| 日韩女优av电影| 日韩欧美中文字幕一区二区| 91免费小视频| 亚洲五月天综合| 日韩免费视频| 97人人澡人人爽| 18video性欧美19sex高清| 亚洲国产精品免费| 日本免费在线观看视频| 欧美极品aⅴ影院| 欧美性受xxxx黒人xyx性爽| 亚洲视频一区| 欧美性色黄大片人与善| 国产精品无码久久久久| 欧美精品性视频| 色偷偷在线观看| 在线观看日韩高清av| 人妻人人澡人人添人人爽| 成人毛片老司机大片| 国产成人久久婷婷精品流白浆| 久久精品播放| yellow视频在线观看一区二区| 黄色软件视频在线观看| 中文字幕亚洲第一| www日本高清视频| 色偷偷88欧美精品久久久| 国产亚洲精品久久久久久豆腐| 国产精品一二三在| 亚洲国产精品久久久久爰色欲| 日韩欧美三级| 国产精品99久久久久久久| 欧美舌奴丨vk视频| 欧美精品一区三区| 色哟哟在线观看| 91精品国产综合久久蜜臀| 日本熟妇成熟毛茸茸| 国产精品女人毛片| 日韩少妇一区二区| 老司机精品视频导航| 免费成人午夜视频| 希岛爱理av一区二区三区| 国产三区二区一区久久| 亚洲日本免费电影| 欧美中文在线观看国产| 亚洲第一图区| 最新中文字幕亚洲| 日本一区二区三区在线观看视频| 91精品国产色综合久久ai换脸 | 欧美一激情一区二区三区| 欧美h在线观看| 亚洲一卡二卡三卡四卡| av在线播放中文字幕| av在线综合网| 永久av免费在线观看| 日本特黄久久久高潮| 久久久久久免费看| 日韩在线视频免费| 亚洲激情精品| 一区二区不卡视频| 一本色道久久综合亚洲精品酒店| 亚洲在线一区二区| 国产极品嫩模在线观看91精品| 97视频免费在线看| 欧洲性视频在线播放| 久久韩国免费视频| av在线电影免费观看| 日韩精品福利在线| 色一情一乱一区二区三区| 日韩一级片在线观看| 一级黄色小视频| 欧美色偷偷大香| 三级网站在线播放 | 中文字幕精品无| 午夜精品福利一区二区蜜股av| 欧美成人精品激情在线视频| 亚洲人精品午夜| 永久免费看mv网站入口| 国产精品全国免费观看高清| 久久久久久国产免费a片| 久久久久九九视频| 欧美老熟妇乱大交xxxxx| 91在线视频18| 黄色a一级视频| 久久先锋影音av| 精品夜夜澡人妻无码av| 久久一二三国产| 国产精品1000部啪视频| 久久综合一区二区| 女人又爽又黄免费女仆| 久久久精品欧美丰满| 一区二区黄色片| 久久精品欧美一区二区三区麻豆 | 亚洲色图在线视频| 永久免费看片直接| 一区二区三区在线免费播放| 欧美激情国产精品免费| 亚洲午夜久久久久久久久电影院 | 精品欧美一区二区久久久久 | 中文字幕欧美人与畜| 日韩综合一区| 国产美女视频免费| 欧美日韩亚洲一区| 黄色大片中文字幕| 国产精品日韩精品欧美精品| 精品久久久久久久无码| 久久精品72免费观看| 国产xxxxhd| 不卡欧美aaaaa| 91网站免费入口| 一区二区中文视频| 老湿机69福利| 精品二区三区线观看| 久久久精品毛片| 欧美精品久久天天躁| www.久久久久久| 亚洲老司机av| 麻豆传媒在线观看| 久久久久久久国产精品| 老司机2019福利精品视频导航| 国产精品日日做人人爱| 日韩第一区第二区| 久久av一区二区三区漫画| 精品久久久久中文字幕小说| 美女在线免费视频| 夜久久久久久| 九九精品久久久| 成人18精品视频| 免费成人深夜天涯网站| 亚洲精品第1页| 亚洲AV无码成人精品区东京热| 欧美精品久久久久久久多人混战| 色综合免费视频| 色99之美女主播在线视频| 欧美午夜大胆人体| 国产精品久久99久久| 伊人精品久久| 先锋在线资源一区二区三区| 精品96久久久久久中文字幕无| 不卡影院一区二区| 高清成人在线观看| 欧美xxxx精品| 精品毛片网大全| 国产视频在线免费观看| 亚洲欧洲日产国码av系列天堂| 91网址在线观看| 国产精品久久久久久久av电影| 国产精品调教视频| 中国老女人av| 美腿丝袜亚洲综合| 精品无码在线视频| 亚洲综合丝袜美腿| 91午夜交换视频| 亚洲女人天堂视频| av中文在线资源| 亚洲一区精品电影| 日本一区二区在线看| 美女福利视频在线| 丁香激情综合五月| 成人免费精品动漫网站| 欧美在线制服丝袜| 日韩a在线观看| 久久91精品国产| 亚洲热av色在线播放| 色视频一区二区三区| 国产精品久久久亚洲一区| 免费国偷自产拍精品视频| 中文字幕在线不卡| 免费在线不卡av| 亚洲午夜激情免费视频| 麻豆mv在线观看| 国产精品日韩二区| 欧美日韩国产精品一区二区亚洲| 中文字幕视频三区| 国产精品网曝门| 制服丝袜在线一区| 国产亚洲美女久久| 亚洲第一二三四区| 欧美性videos高清精品| 欧美卡一卡二卡三| 91精品国产综合久久久蜜臀粉嫩 | 日本欧美一级片| 色天下一区二区三区| 欧美爱爱视频免费看| 99精品视频一区二区| 伊人久久综合视频| 亚洲精品乱码久久久久久按摩观| av中文在线资源库| 狠狠色狠狠色综合人人| 一本久道久久久| 中文字幕一区二区三区人妻电影| 精品日韩视频在线观看| 日韩porn| 国产精品丝袜白浆摸在线| 久久神马影院| 欧美性受xxxx黒人xyx性爽| 一区二区三区中文字幕在线观看| 精品人妻无码一区二区三区蜜桃一| 久久综合网hezyo| 99精品国产高清一区二区麻豆| 欧美图片激情小说| 99精品欧美一区二区蜜桃免费 | 亚洲七七久久综合桃花剧情介绍| 成人av蜜桃| 一区二区国产精品| 精品人妻互换一区二区三区| 欧美日韩中文字幕一区| 黄网站app在线观看| 亚洲一区二区久久久久久 | 国产又粗又长又大的视频| 国产精品区一区二区三区| 国产农村妇女毛片精品久久| 色综合久久88| 婷婷精品视频| 伊人国产在线视频| 一区二区三区在线观看动漫| 日本激情一区二区三区| 国产v综合ⅴ日韩v欧美大片| 99精品一区| 亚洲成a人片在线www| 欧美日韩在线一区| 日本高清视频在线观看| 国产精品久久久久久久天堂第1集| 国产欧美一级| 中文字幕第69页| 亚洲国产精品va在线看黑人| 久久久人成影片一区二区三区在哪下载| 伊人久久大香线蕉精品| 不卡的av中国片| 伊人网av在线| 韩国精品美女www爽爽爽视频| 欧美色网址大全| 精品人妻在线视频| 欧美亚洲国产怡红院影院| 色婷婷av在线| 水蜜桃亚洲精品| 成人免费毛片aaaaa**| 亚洲视频一区在线播放| 午夜精品久久17c| 亚洲成人av| 一道本在线观看|