天天看點

linux如何測試函數運作時間,程式運作時間測試 - 使用系統函數 getrusage 擷取程式運作時間...

關鍵結構體:

struct rusage {

struct timeval ru_utime;

struct timeval ru_stime;

long ru_maxrss;

long ru_ixrss;

long ru_idrss;

long ru_isrss;

long ru_minflt;

long ru_majflt;

long ru_nswap;

long ru_inblock;

long ru_oublock;

long ru_msgsnd;

long ru_msgrcv;

long ru_nsignals;

long ru_nvcsw;

long ru_nivcsw;

};

程式:

#include

#include

#include

#include

int str2int(char* str){

char *p = str;

int sum = 0;

while (*p != '\0')

{

sum = sum*10 + (*p-'0');

p++;

}

return sum;

}

int main(int argc, char* argv[]){

int def = 1000;

if (argc == 2)

{

def = str2int(argv[argc-1]);

}

for (int i = 0; i < def ; i++)

{

float tmp = sqrt(i);

}

struct rusage usage;

getrusage(rusage_self, &usage);

//getrusage(rusage_children, &usage);

long user = usage.ru_utime.tv_sec * 1000000 + usage.ru_utime.tv_usec; // user time used

long sys = usage.ru_stime.tv_sec * 1e6 + usage.ru_stime.tv_usec; // sys time used

printf("user: %ld us\n", user); // 使用者空間使用的時間

printf("sys: %ld us\n", sys); // 核心空間使用的時間

printf("total: %ld us\n", user+sys); // 總共使用的時鐘

return 0;

}

保持更新,如果對您有幫助請點選推薦!更多關于linux 相關的知識,請關注 cnblogs.com/xuyaowen