所以我用rusage打印出它從用戶需要多長時間,以及系統處理的指令,沿着線的東西,如何打印時間在linux
//DO STUFF HERE
printf(" TOTAL TIMES: ");
tusage.ru_utime.tv_sec = rusage.ru_utime.tv_sec + rusage.ru_stime.tv_sec;
所以我用rusage打印出它從用戶需要多長時間,以及系統處理的指令,沿着線的東西,如何打印時間在linux
//DO STUFF HERE
printf(" TOTAL TIMES: ");
tusage.ru_utime.tv_sec = rusage.ru_utime.tv_sec + rusage.ru_stime.tv_sec;
試試這個:
#include <stdio.h>
#include <sys/resource.h>
int main() {
struct rusage rusage;
struct rusage tusage;
int i, j, r=0;
for (i = 0; i < 10000; i++) {
for (j = 1; j < 100000; j++) {
r = i % j + i/j;
}
}
getrusage(RUSAGE_SELF, &rusage);
printf("TOTAL TIME \n");
tusage.ru_utime.tv_sec = rusage.ru_utime.tv_sec + rusage.ru_stime.tv_sec;
tusage.ru_utime.tv_usec = rusage.ru_utime.tv_usec + rusage.ru_stime.tv_usec;
tusage.ru_utime.tv_sec += tusage.ru_utime.tv_usec/1000000;
tusage.ru_utime.tv_usec = tusage.ru_utime.tv_usec % 1000000;
printf("%ld.%06ld\n", tusage.ru_utime.tv_sec, tusage.ru_utime.tv_usec);
return r;
}
在linux中使用'getrusage'有什麼問題? – Art 2013-03-14 08:02:08
使用'gettimeofday',參見[this](http://stackoverflow.com/questions/2150291/how-do-i-measure-a-time-interval-in-c) – 2013-03-14 08:07:10
@Art相同的代碼打印0.00 in linux,但是相同的代碼在mac os中打印實際值爲什麼是這樣? – NoNameY0 2013-03-14 08:07:43