tft每日頭條

 > 生活

 > linux 系統時間指令

linux 系統時間指令

生活 更新时间:2025-01-24 22:39:48
計算命令執行時間

在分析應用程序的效率或比較不同的算法時,其執行時間非常重要。

實戰演練

(1)time命令可以測量出應用程序的執行時間:

$ time APPLICATION

time命令會執行APPLICATION。當APPLICATION執行完畢後,time命令将其real時間、sys時間以及user時間輸出到stderr中,将APPLICATION的正常輸出發送到stdout。

time命令的可執行二進制文件位于/usr/bin/time,另外還有一個bash shell的内建命令也叫作time。當執行time時,默認調用的是shell的内建命令。内建的time命令選項有限。如果需要使用額外的功能,應該使用可執行文件time的絕對路徑(/usr/bin/time)。

(2)選項-o可以将相關的時間統計信息寫入文件:

$ /usr/bin/time -o output.txt COMMAND

文件名應該出現在選項-o之後。

選項-a可以配合-o使用,将命令執行時間追加到原文件的末尾:

$ /usr/bin/time -a -o output.txt COMMAND

(3)選項-f可以指定輸出哪些統計信息及其格式。格式字符串包括一個或多個以%為前綴的參數。格式參數包括以下幾種。

❏ real時間: %e

❏ user時間: %U

❏ sys時間: %S

❏ 系統分頁大小:%Z

通過結合格式參數以及其他文本,我們就可以創建格式化輸出:

$ /usr/bin/time -f "FORMAT STRING" COMMAND

例如:

$ /usr/bin/time -f "Time: %U" -a -o timing.log uname

Linux

其中,%U指定了user時間。

time命令将被計時的應用程序的輸出發送到stdout,将自身的輸出發送到stderr。我們可以用重定向操作符(>)重定向應用程序輸出,用錯誤重定向操作符(2>)重定向time命令的輸出。

例如:

$ /usr/bin/time -f "Time: %U" uname> command_output.txt

2>time.log

$ cat time.log

Time: 0.00

$ cat command_output.txt

Linux

(4)格式參數也可以報告内存使用情況。參數%M會顯示所使用的最大内存(以KB為單位),參數%Z會顯示系統頁面大小:

$ /usr/bin/time -f "Max: %M K\nPage size: %Z bytes" \

ls>

/dev/null

Max: 996 K

Page size: 4096 bytes

這裡并不需要被計時的命令(ls)的輸出,因此将标準輸出重定向到了/dev/null。

工作原理

time命令默認報告3類時間。

❏ Real:指的是壁鐘時間(wall clock time),也就是命令從開始執行到結束的時間。這段時間包括其他進程所占用的時間片(time slice)以及進程被阻塞時所消耗的時間(例如,為等待I/O操作完成所用的時間)。

❏ User:是指進程花費在用戶模式(内核模式之外)中的CPU時間。這是執行進程所花費的時間。執行其他進程以及花費在阻塞狀态中的時間并沒有計算在内。

❏ Sys:是指進程花費在内核中的CPU時間。它代表在内核中執行系統調用所使用的時間,這和庫代碼(library code)不同,後者仍舊運行在用戶空間。與“user時間”類似,這也是真正由進程使用的CPU時間。參考表9-1,其中簡要描述了内核模式(也稱為監督模式)和系統調用機制。

time命令給出了進程的很多細節信息。其中包括退出狀态、接收到的信号數量以及進程上下文的切換次數等。這些信息都可以通過給選項-f提供相應的格式化字符串來顯示。

linux 系統時間指令(Linux時間統計命令time)1

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved