日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux 如何取进程运行时间,linux -- 获取进程执行时间

發布時間:2024/9/19 linux 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux 如何取进程运行时间,linux -- 获取进程执行时间 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

獲取進程執行時間

一、時間概念

在linux下進行編程時,可能會涉及度量進程的執行時間。linux下進程的時間值分三種:

時鐘時間(real time):指進程從開始執行到結束,實際執行的時間。

用戶CPU時間(user CPU time):指進程中執行用戶指令所用的時間,也包括子進程。

系統CPU時間(system CPU time):指為進程執行內核程序所經歷的時間,例如調用read和write內核方法時,消耗的時間就計入系統CPU時間。

二、獲取方法

有兩種方法可以獲取,第一種是用time命令,time 進程。第二種是通過在程序中進行記錄,首先利用sysconf函數獲取時鐘滴答數,再用times獲取tms結構。

查看times函數,man 2 tms,得到tms結構定義和times函數聲明如下:

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);

注意:此處計算的時間是時鐘滴答數,需要除以系統時鐘滴答數,得出實際的秒數。

三、測試例子

測試程序如下:

#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 ;

}

測試結果如下所示:

采用time命令,測試結果如下所示:

其中real表示時鐘時間,user表示用戶CPU時間,sys表示系統CPU時間。time命令也可以用于系統的命令,如time ls、time ps等等。

參考:http://www.cnblogs.com/Anker/p/3416288.html

Linux獲取進程執行時間

1.前言 ? ?測試一個程序的執行時間,時間包括用戶CPU時間.系統CPU時間.時鐘時間.之前獲取之前時間都是在程序的main函數用time函數實現,這個只能粗略的計算程序的執行時間,不能準確的獲取其 ...

Unix/Linux獲取進程的詳細信息

Linux的進程的信息都記錄在/proc//下面,其實常用的ps.top命令也是從這里讀取信息的.常用的信息有: cmd(命令).cmdline(完整的命令行參數).envrio ...

Linux獲取進程中變量

列出所有進程 #include #include #include ...

Windows與Linux獲取進程集合的方法

Windows: List tasklist=new ArrayList(); try { Process process = Runtime. ...

Linux常用獲取進程占用資源情況手段

測試環境:Ubuntu14.04 1.? 獲取進程ID號 ps -aux | grep your_process_name 例如: xxx@xxx:~$ ps -e |grep Midlet|awk ...

linux: 獲取監聽指定端口的進程PID

在 linux 下經常需要殺死(重啟)監聽某端口的進程, 因此就寫了一個小腳本, 通過 ss 命令獲取監聽制定端口的進程 PID, 然后通過 kill 命令結束掉進程: #!/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

轉載地址:http://weyo.me/pages/techs/linux-get-pid/ 根據pid,kill該進程:http://www.cnblogs.com/lovychen/p/54113 ...

linux shell 獲取進程pid

1.通過可執行程序的程序名稱 a.運行程序 b.獲取進程id號 c.pidof相關知識:http://www.cnblogs.com/yunsicai/p/3675938.html 2.有些程序需要在 ...

隨機推薦

029. aps.net中DataView中詳細信息的跳轉顯示

點擊當前頁面的連接, 跳轉到另一個頁面, 然后進行更新刪除等一系列操作 主要代碼:

用任務管理器畫CPU正弦曲線

這個最初是在microsoft的中看到的,用你的程序來控制CPU的使用率. 首先是要求寫一個用來實現CPU使用率為50%程序. 這個還是很好實現的,只要讓你的程序忙的時間課空閑 ...

c++中的array數組和vector數組

我覺得實驗一下會記得比較牢,話不多直接上代碼. 下面是array數組,感覺用的不多. //cpp 風格數組 array #include #include

PDF轉換成二進制字符串寫入 HTTP 輸出流

最近項目需要做電子簽章,需要網頁打開PDF簽章后保存:正好復習哈二進制和流的轉換: 文件轉換成二進制字符串寫入HTTP輸出流 protected void Page_Load(object sende ...

setPluginsEnabled(true) 誰知道android的4.3之后為什么會報錯

我也是最近才遇到這個問題的,查了下資料,setPluginEnable已經棄用了,使用webSettings.setPluginState(WebSettings.PluginState.ON);可以 ...

myBatis 基礎測試 表關聯關系配置 集合 測試

myBatis 基礎測試 表關聯關系配置 集合 測試 測試myelipse項目源碼 sql 下載?http://download.csdn.net/detail/liangrui1988/599388 ...

Java 和Oracle的數據類型

一.BigDecimal BigDecimal 由任意精度的整數非標度值 和 32 位的整數標度 (scale) 組成. 如果為零或正數,則標度是小數點后的位數. 如果為負數,則將該數的非標度值乘以 ...

win10 設置默認輸入法為英文,ctrl +shift切換中文

控制面板-更改輸入法,這個界面出現的是電腦現在安裝的語言,每個語言中可能有多個輸入法,比如我的有微軟的和qq的,誰在上誰就是系統的默認語言(本人當然是中文在上),英文中有美式鍵盤. 如果想要電腦啟動的 ...

expdp用戶10遷移到新環境11之正式實施

expdp遷移源端數據庫:cu? ? 源端IP:? ?源端schema: xxx目標數據庫:ora 目標IP:xxx操作流程:31日凌晨應用停,隨后使用數據泵遷移,兩套庫遷移,遷移一套,遷移完畢應用確 ...

css學習1

1.標簽的權值為1,類選擇符的權值為10,ID選擇符的權值最高為100 注意:還有一個權值比較特殊--繼承也有權值但很低,有的文獻提出它只有0.1,所以可以理解為繼承的權值最低.

總結

以上是生活随笔為你收集整理的Linux 如何取进程运行时间,linux -- 获取进程执行时间的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。