關鍵結構體:
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