最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

linux獲取進程執(zhí)行時間方法示例

 更新時間:2013年12月16日 10:32:26   作者:  
linux獲取進程執(zhí)行時間有兩種方法可以獲取,第一種是用time命令,time 進程。第二種是通過在程序中進行記錄,首先利用sysconf函數(shù)獲取時鐘滴答數(shù),再用times獲取tms結(jié)構(gòu),詳細看下面的示例代碼

1、前言

測試一個程序的執(zhí)行時間,時間包括用戶CPU時間、系統(tǒng)CPU時間、時鐘時間。之前獲取之前時間都是在程序的main函數(shù)用time函數(shù)實現(xiàn),這個只能粗略的計算程序的執(zhí)行時間,不能準確的獲取其他時間。在看《APUE》時,書中有關(guān)程序時間測試程序,非常正規(guī),提供這三個時間。如是,上網(wǎng)搜了一下,進行總結(jié)一下。

2、獲取方法

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

查看times函數(shù),man 2 tms,得到tms結(jié)構(gòu)定義和times函數(shù)聲明如下:

復(fù)制代碼 代碼如下:

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 */
  };

復(fù)制代碼 代碼如下:

#include <sys/times.h>

 clock_t times(struct tms *buf);

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

3、測試例子:

測試程序如下:

復(fù)制代碼 代碼如下:

#include <stdio.h>
#include <stdlib.h>
#include <sys/times.h>
#include <unistd.h>

#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(2);
    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 0;
}



測試結(jié)果如下所示:

采用time命令,測試結(jié)果如下所示:

相關(guān)文章

  • linux中sed命令的使用與注意小結(jié)

    linux中sed命令的使用與注意小結(jié)

    sed本身也是一個管道命令,可以分析standard input的,sed可以將數(shù)據(jù)進行替換、刪除、新增、選取特定行等。下面這篇文章主要介紹了linux中sed命令的用法和注意事項,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • Linux下如何永久修改主機名的方法步驟

    Linux下如何永久修改主機名的方法步驟

    這篇文章主要介紹了Linux下如何永久修改主機名的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • linux如何開啟apache服務(wù)

    linux如何開啟apache服務(wù)

    這篇文章主要介紹了linux如何開啟apache服務(wù),本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-11-11
  • Ubuntu16.04 安裝Teamviewer的教程詳解

    Ubuntu16.04 安裝Teamviewer的教程詳解

    這篇文章主要介紹了Ubuntu16.04 安裝Teamviewer教程,Teamviewer在linux下也可以進行安裝,下面給出具體的安裝步驟,需要的朋友可以參考下
    2018-07-07
  • 正確配置與維護Apache安全性設(shè)置方法

    正確配置與維護Apache安全性設(shè)置方法

    Apache Server是一個非常優(yōu)秀,非常棒的服務(wù)器,只要你正確配置和維護好Apache服務(wù)器,你就會感受到Apache Server 所帶來的好處,同樣希望你能夠通過閱讀本文達到理論和實踐雙豐收的目的。
    2010-12-12
  • Ubuntu19.10開啟ssh服務(wù)(詳細過程)

    Ubuntu19.10開啟ssh服務(wù)(詳細過程)

    這篇文章主要介紹了Ubuntu19.10開啟ssh服務(wù),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 探討如何減少Linux服務(wù)器TIME_WAIT過多的問題

    探討如何減少Linux服務(wù)器TIME_WAIT過多的問題

    本篇文章是對如何減少Linux服務(wù)器TIME_WAIT過多的問題進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • linux下安裝ffmpeg的詳細教程

    linux下安裝ffmpeg的詳細教程

    這篇文章主要介紹了linux下安裝ffmpeg的詳細教程,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Bash中文件描述符的詳細介紹

    Bash中文件描述符的詳細介紹

    這篇文章主要給大家介紹了關(guān)于Bash中文件描述符的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • 三種方法實現(xiàn)Linux系統(tǒng)調(diào)用

    三種方法實現(xiàn)Linux系統(tǒng)調(diào)用

    這篇文章主要介紹了三種方法實現(xiàn)Linux系統(tǒng)調(diào)用,感興趣的朋友可以參考一下
    2016-01-01

最新評論

蓝山县| 莱西市| 台北县| 扶沟县| 清水河县| 栾川县| 民权县| 高淳县| 吉首市| 通榆县| 惠州市| 漯河市| 临武县| 乌鲁木齐市| 德兴市| 大理市| 北川| 舒城县| 兴海县| 玉门市| 澄迈县| 龙州县| 汽车| 军事| 香河县| 定陶县| 永和县| 漾濞| 祁东县| 河南省| 黔东| 晋宁县| 留坝县| 正安县| 盐城市| 礼泉县| 禄丰县| 兖州市| 台湾省| 枣阳市| 中宁县|