天天看点

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