Linux 如何取进程运行时间,linux -- 获取进程执行时间
獲取進程執(zhí)行時間
一、時間概念
在linux下進行編程時,可能會涉及度量進程的執(zhí)行時間。linux下進程的時間值分三種:
時鐘時間(real time):指進程從開始執(zhí)行到結(jié)束,實際執(zhí)行的時間。
用戶CPU時間(user CPU time):指進程中執(zhí)行用戶指令所用的時間,也包括子進程。
系統(tǒng)CPU時間(system CPU time):指為進程執(zhí)行內(nèi)核程序所經(jīng)歷的時間,例如調(diào)用read和write內(nèi)核方法時,消耗的時間就計入系統(tǒng)CPU時間。
二、獲取方法
有兩種方法可以獲取,第一種是用time命令,time 進程。第二種是通過在程序中進行記錄,首先利用sysconf函數(shù)獲取時鐘滴答數(shù),再用times獲取tms結(jié)構(gòu)。
查看times函數(shù),man 2 tms,得到tms結(jié)構(gòu)定義和times函數(shù)聲明如下:
struct tms {
clock_t tms_utime; /* user time */
clock_t tms_stime; /* system time */
clock_t tms_cutime; /* user time of children */
clock_t tms_cstime; /* system time of children */
};
#include
clock_t times(struct tms *buf);
注意:此處計算的時間是時鐘滴答數(shù),需要除以系統(tǒng)時鐘滴答數(shù),得出實際的秒數(shù)。
三、測試例子
測試程序如下:
#include
#include
#include
#include
#define BUFFER_SIZE 4 * 1024
int main()
{
int sc_clk_tck;
sc_clk_tck = sysconf(_SC_CLK_TCK);
struct tms begin_tms, end_tms;
clock_t begin, end;
system("date");
begin = times(&begin_tms);
sleep();
end = times(&end_tms);
printf("real time: %lf\n", (end - begin) / (double)sc_clk_tck);
printf("user time: %lf\n", (end_tms.tms_utime - begin_tms.tms_utime) / (double)sc_clk_tck);
printf("sys time: %lf\n", (end_tms.tms_stime - begin_tms.tms_stime) / (double)sc_clk_tck);
printf("child user time: %lf\n", (end_tms.tms_cutime - begin_tms.tms_cutime) / (double)sc_clk_tck);
printf("child sys time: %lf\n", (end_tms.tms_cstime - begin_tms.tms_cstime) / (double)sc_clk_tck);
return ;
}
測試結(jié)果如下所示:
采用time命令,測試結(jié)果如下所示:
其中real表示時鐘時間,user表示用戶CPU時間,sys表示系統(tǒng)CPU時間。time命令也可以用于系統(tǒng)的命令,如time ls、time ps等等。
參考:http://www.cnblogs.com/Anker/p/3416288.html
Linux獲取進程執(zhí)行時間
1.前言 ? ?測試一個程序的執(zhí)行時間,時間包括用戶CPU時間.系統(tǒng)CPU時間.時鐘時間.之前獲取之前時間都是在程序的main函數(shù)用time函數(shù)實現(xiàn),這個只能粗略的計算程序的執(zhí)行時間,不能準確的獲取其 ...
Unix/Linux獲取進程的詳細信息
Linux的進程的信息都記錄在/proc//下面,其實常用的ps.top命令也是從這里讀取信息的.常用的信息有: cmd(命令).cmdline(完整的命令行參數(shù)).envrio ...
Linux獲取進程中變量
列出所有進程 #include #include #include ...
Windows與Linux獲取進程集合的方法
Windows: List tasklist=new ArrayList(); try { Process process = Runtime. ...
Linux常用獲取進程占用資源情況手段
測試環(huán)境:Ubuntu14.04 1.? 獲取進程ID號 ps -aux | grep your_process_name 例如: xxx@xxx:~$ ps -e |grep Midlet|awk ...
linux: 獲取監(jiān)聽指定端口的進程PID
在 linux 下經(jīng)常需要殺死(重啟)監(jiān)聽某端口的進程, 因此就寫了一個小腳本, 通過 ss 命令獲取監(jiān)聽制定端口的進程 PID, 然后通過 kill 命令結(jié)束掉進程: #!/bin/sh # set ...
linux中使用top獲取進程的資源占用信息
在linux中使用top獲取進程的資源占用信息: Cpu(s): ?1.0%us, ?0.0%sy, ?0.0%ni, 98.3%id, ?0.7%wa, ?0.0%hi, ?0.0%si, ?0.0 ...
linux命令(26):Bash Shell 獲取進程 PID
轉(zhuǎn)載地址:http://weyo.me/pages/techs/linux-get-pid/ 根據(jù)pid,kill該進程:http://www.cnblogs.com/lovychen/p/54113 ...
linux shell 獲取進程pid
1.通過可執(zhí)行程序的程序名稱 a.運行程序 b.獲取進程id號 c.pidof相關(guān)知識:http://www.cnblogs.com/yunsicai/p/3675938.html 2.有些程序需要在 ...
隨機推薦
029. aps.net中DataView中詳細信息的跳轉(zhuǎn)顯示
點擊當前頁面的連接, 跳轉(zhuǎn)到另一個頁面, 然后進行更新刪除等一系列操作 主要代碼:
用任務(wù)管理器畫CPU正弦曲線
這個最初是在microsoft的中看到的,用你的程序來控制CPU的使用率. 首先是要求寫一個用來實現(xiàn)CPU使用率為50%程序. 這個還是很好實現(xiàn)的,只要讓你的程序忙的時間課空閑 ...
c++中的array數(shù)組和vector數(shù)組
我覺得實驗一下會記得比較牢,話不多直接上代碼. 下面是array數(shù)組,感覺用的不多. //cpp 風格數(shù)組 array #include #include
PDF轉(zhuǎn)換成二進制字符串寫入 HTTP 輸出流
最近項目需要做電子簽章,需要網(wǎng)頁打開PDF簽章后保存:正好復習哈二進制和流的轉(zhuǎn)換: 文件轉(zhuǎn)換成二進制字符串寫入HTTP輸出流 protected void Page_Load(object sende ...
setPluginsEnabled(true) 誰知道android的4.3之后為什么會報錯
我也是最近才遇到這個問題的,查了下資料,setPluginEnable已經(jīng)棄用了,使用webSettings.setPluginState(WebSettings.PluginState.ON);可以 ...
myBatis 基礎(chǔ)測試 表關(guān)聯(lián)關(guān)系配置 集合 測試
myBatis 基礎(chǔ)測試 表關(guān)聯(lián)關(guān)系配置 集合 測試 測試myelipse項目源碼 sql 下載?http://download.csdn.net/detail/liangrui1988/599388 ...
Java 和Oracle的數(shù)據(jù)類型
一.BigDecimal BigDecimal 由任意精度的整數(shù)非標度值 和 32 位的整數(shù)標度 (scale) 組成. 如果為零或正數(shù),則標度是小數(shù)點后的位數(shù). 如果為負數(shù),則將該數(shù)的非標度值乘以 ...
win10 設(shè)置默認輸入法為英文,ctrl +shift切換中文
控制面板-更改輸入法,這個界面出現(xiàn)的是電腦現(xiàn)在安裝的語言,每個語言中可能有多個輸入法,比如我的有微軟的和qq的,誰在上誰就是系統(tǒng)的默認語言(本人當然是中文在上),英文中有美式鍵盤. 如果想要電腦啟動的 ...
expdp用戶10遷移到新環(huán)境11之正式實施
expdp遷移源端數(shù)據(jù)庫:cu? ? 源端IP:? ?源端schema: xxx目標數(shù)據(jù)庫:ora 目標IP:xxx操作流程:31日凌晨應(yīng)用停,隨后使用數(shù)據(jù)泵遷移,兩套庫遷移,遷移一套,遷移完畢應(yīng)用確 ...
css學習1
1.標簽的權(quán)值為1,類選擇符的權(quán)值為10,ID選擇符的權(quán)值最高為100 注意:還有一個權(quán)值比較特殊--繼承也有權(quán)值但很低,有的文獻提出它只有0.1,所以可以理解為繼承的權(quán)值最低.
總結(jié)
以上是生活随笔為你收集整理的Linux 如何取进程运行时间,linux -- 获取进程执行时间的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦幻西游解绑将军令方法
- 下一篇: 京东上购买的闲置商品如何卖了换钱