自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在Linux中如何查找一個(gè)命令或進(jìn)程的執(zhí)行時(shí)間

系統(tǒng) Linux
在類 Unix 系統(tǒng)中,你可能知道一個(gè)命令或進(jìn)程開始執(zhí)行的時(shí)間,以及一個(gè)進(jìn)程運(yùn)行了多久。 但是,你如何知道這個(gè)命令或進(jìn)程何時(shí)結(jié)束或者它完成運(yùn)行所花費(fèi)的總時(shí)長(zhǎng)呢? 在類 Unix 系統(tǒng)中,這是非常容易的! 有一個(gè)專門為此設(shè)計(jì)的程序名叫 GNU time。

 [[250151]]

在類 Unix 系統(tǒng)中,你可能知道一個(gè)命令或進(jìn)程開始執(zhí)行的時(shí)間,以及一個(gè)進(jìn)程運(yùn)行了多久。 但是,你如何知道這個(gè)命令或進(jìn)程何時(shí)結(jié)束或者它完成運(yùn)行所花費(fèi)的總時(shí)長(zhǎng)呢? 在類 Unix 系統(tǒng)中,這是非常容易的! 有一個(gè)專門為此設(shè)計(jì)的程序名叫 GNU time。 使用 time 程序,我們可以輕松地測(cè)量 Linux 操作系統(tǒng)中命令或程序的總執(zhí)行時(shí)間。 time 命令在大多數(shù) Linux 發(fā)行版中都有預(yù)裝,所以你不必去安裝它。

在 Linux 中查找一個(gè)命令或進(jìn)程的執(zhí)行時(shí)間

要測(cè)量一個(gè)命令或程序的執(zhí)行時(shí)間,運(yùn)行:

  1. $ /usr/bin/time -p ls

或者,

  1. $ time ls

輸出樣例:

  1. dir1 dir2 file1 file2 mcelog
  2.  
  3. real 0m0.007s
  4. user 0m0.001s
  5. sys 0m0.004s
  1. $ time ls -a
  2. . .bash_logout dir1 file2 mcelog .sudo_as_admin_successful
  3. .. .bashrc dir2 .gnupg .profile .wget-hsts
  4. .bash_history .cache file1 .local .stack
  5.  
  6. real 0m0.008s
  7. user 0m0.001s
  8. sys 0m0.005s

以上命令顯示出了 ls 命令的總執(zhí)行時(shí)間。 你可以將 ls 替換為任何命令或進(jìn)程,以查找總的執(zhí)行時(shí)間。

輸出詳解:

  1. real —— 指的是命令或程序所花費(fèi)的總時(shí)間
  2. user —— 指的是在用戶模式下程序所花費(fèi)的時(shí)間
  3. sys —— 指的是在內(nèi)核模式下程序所花費(fèi)的時(shí)間

我們也可以將命令限制為僅運(yùn)行一段時(shí)間。參考如下教程了解更多細(xì)節(jié):

time 與 /usr/bin/time

你可能注意到了, 我們?cè)谏厦娴睦又惺褂昧藘蓚€(gè)命令 time/usr/bin/time 。 所以,你可能會(huì)想知道他們的不同。

首先, 讓我們使用 type 命令看看 time 命令到底是什么。對(duì)于那些我們不了解的 Linux 命令,type 命令用于查找相關(guān)命令的信息。 更多詳細(xì)信息,請(qǐng)參閱本指南

  1. $ type -a time
  2. time is a shell keyword
  3. time is /usr/bin/time

正如你在上面的輸出中看到的一樣,time 是兩個(gè)東西:

  • 一個(gè)是 BASH shell 中內(nèi)建的關(guān)鍵字
  • 一個(gè)是可執(zhí)行文件,如 /usr/bin/time

由于 shell 關(guān)鍵字的優(yōu)先級(jí)高于可執(zhí)行文件,當(dāng)你沒有給出完整路徑只運(yùn)行 time 命令時(shí),你運(yùn)行的是 shell 內(nèi)建的命令。 但是,當(dāng)你運(yùn)行 /usr/bin/time 時(shí),你運(yùn)行的是真正的 GNU time 命令。 因此,為了執(zhí)行真正的命令你可能需要給出完整路徑。

在大多數(shù) shell 中如 BASH、ZSH、CSH、KSH、TCSH 等,內(nèi)建的關(guān)鍵字 time 是可用的。 time 關(guān)鍵字的選項(xiàng)少于該可執(zhí)行文件,你可以使用的唯一選項(xiàng)是 -p。

你現(xiàn)在知道了如何使用 time 命令查找給定命令或進(jìn)程的總執(zhí)行時(shí)間。 想進(jìn)一步了解 GNU time 工具嗎? 繼續(xù)閱讀吧!

關(guān)于 GNU time 程序的簡(jiǎn)要介紹

GNU time 程序運(yùn)行帶有給定參數(shù)的命令或程序,并在命令完成后將系統(tǒng)資源使用情況匯總到標(biāo)準(zhǔn)輸出。 與 time 關(guān)鍵字不同,GNU time 程序不僅顯示命令或進(jìn)程的執(zhí)行時(shí)間,還顯示內(nèi)存、I/O 和 IPC 調(diào)用等其他資源。

time 命令的語法是:

  1. /usr/bin/time [options] command [arguments...]

上述語法中的 options 是指一組可以與 time 命令一起使用去執(zhí)行特定功能的選項(xiàng)。 下面給出了可用的選項(xiàng):

  • -f, –format —— 使用此選項(xiàng)可以根據(jù)需求指定輸出格式。
  • -p, –portability —— 使用簡(jiǎn)要的輸出格式。
  • -o file, –output=FILE —— 將輸出寫到指定文件中而不是到標(biāo)準(zhǔn)輸出。
  • -a, –append —— 將輸出追加到文件中而不是覆蓋它。
  • -v, –verbose —— 此選項(xiàng)顯示 time 命令輸出的詳細(xì)信息。
  • –quiet – 此選項(xiàng)可以防止 time 命令報(bào)告程序的狀態(tài).

當(dāng)不帶任何選項(xiàng)使用 GNU time 命令時(shí),你將看到以下輸出。

  1. $ /usr/bin/time wc /etc/hosts
  2. 9 28 273 /etc/hosts
  3. 0.00user 0.00system 0:00.00elapsed 66%CPU (0avgtext+0avgdata 2024maxresident)k
  4. 0inputs+0outputs (0major+73minor)pagefaults 0swaps

如果你用 shell 關(guān)鍵字 time 運(yùn)行相同的命令, 輸出會(huì)有一點(diǎn)兒不同:

  1. $ time wc /etc/hosts
  2. 9 28 273 /etc/hosts
  3.  
  4. real 0m0.006s
  5. user 0m0.001s
  6. sys 0m0.004s

有時(shí),你可能希望將系統(tǒng)資源使用情況輸出到文件中而不是終端上。 為此, 你可以使用 -o 選項(xiàng),如下所示。

  1. $ /usr/bin/time -o file.txt ls
  2. dir1 dir2 file1 file2 file.txt mcelog

正如你看到的,time 命令不會(huì)顯示到終端上。因?yàn)槲覀儗⑤敵鰧懙搅?code>file.txt 的文件中。 讓我們看一下這個(gè)文件的內(nèi)容:

  1. $ cat file.txt
  2. 0.00user 0.00system 0:00.00elapsed 66%CPU (0avgtext+0avgdata 2512maxresident)k
  3. 0inputs+0outputs (0major+106minor)pagefaults 0swaps

當(dāng)你使用 -o 選項(xiàng)時(shí), 如果你沒有一個(gè)名為 file.txt 的文件,它會(huì)創(chuàng)建一個(gè)并把輸出寫進(jìn)去。如果文件存在,它會(huì)覆蓋文件原來的內(nèi)容。

你可以使用 -a 選項(xiàng)將輸出追加到文件后面,而不是覆蓋它的內(nèi)容。

  1. $ /usr/bin/time -a file.txt ls

-f 選項(xiàng)允許用戶根據(jù)自己的喜好控制輸出格式。 比如說,以下命令的輸出僅顯示用戶,系統(tǒng)和總時(shí)間。

  1. $ /usr/bin/time -f "\t%E real,\t%U user,\t%S sys" ls
  2. dir1 dir2 file1 file2 mcelog
  3. 0:00.00 real, 0.00 user, 0.00 sys

請(qǐng)注意 shell 中內(nèi)建的 time 命令并不具有 GNU time 程序的所有功能。

有關(guān) GNU time 程序的詳細(xì)說明可以使用 man 命令來查看。

  1. $ man time

想要了解有關(guān) Bash 內(nèi)建 time 關(guān)鍵字的更多信息,請(qǐng)運(yùn)行:

  1. $ help time

就到這里吧。 希望對(duì)你有所幫助。

會(huì)有更多好東西分享哦。 請(qǐng)關(guān)注我們!

加油哦!

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2020-08-03 16:00:31

Linux命令進(jìn)程

2016-08-23 10:17:42

2021-02-24 11:44:35

語言計(jì)算函數(shù)嵌入式系統(tǒng)

2018-07-18 15:13:56

MCU代碼時(shí)間

2025-01-16 07:00:00

AOPSpringBoot后端

2010-04-28 12:33:36

Oracle自定義函數(shù)

2010-09-06 13:17:19

SQL Server語句

2010-09-08 15:00:03

SQL語句執(zhí)行

2016-12-07 17:45:44

Linux文件

2011-05-17 13:32:04

oracle

2024-05-10 08:44:53

C#軟件開發(fā)優(yōu)化代碼

2010-11-18 15:53:30

Oracle語句執(zhí)行時(shí)

2017-05-27 14:45:04

Linux命令進(jìn)程

2009-11-26 11:05:44

PHP計(jì)算頁面執(zhí)行時(shí)間

2020-07-14 08:17:26

代碼執(zhí)行時(shí)間

2024-04-12 07:50:40

Python監(jiān)控利器Time 模塊

2019-08-28 07:45:45

數(shù)據(jù)存儲(chǔ)層多線程

2020-04-06 11:47:44

Linux命令腳本

2021-06-26 16:24:21

Linux命令系統(tǒng)

2023-01-30 14:27:14

Linux進(jìn)程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)