たとえば、プログラムが特定の命令を実行した時間を追跡するにはどうすればよいですか。たとえば、ディスク使用量を測定する場合、時間がかかります。
real=50.0s user=30.s sys=20.0s
システム時間と実際のコマンド時間を区別して収集するにはどうすればよいですか?
たとえば、プログラムが特定の命令を実行した時間を追跡するにはどうすればよいですか。たとえば、ディスク使用量を測定する場合、時間がかかります。
real=50.0s user=30.s sys=20.0s
システム時間と実際のコマンド時間を区別して収集するにはどうすればよいですか?
前の例と大差ない別の解決策があります。
#include<time.h>
int main ()
{
clock_t start_time, stop_time;
start_time = clock();
// ... do your thing;
stop_time = clock();
printf("Elapsed time: %lf", (double)( stop_time - start_time ) / CLOCKS_PER_SEC);
}
昔はpureCoverageを使って実行時間を調べていましたが、コストがかかりました。同じ種類のことを行う無料のツールがあるかもしれませんが、迅速で汚い解決策のために...
include <time.h>
#include <stdlib.h>
#include <stdio.h>
int main(void) {
time_t start_time, end_time;
start_time = time(NULL);
//Do your thing...
end_time = time(NULL);
int diff = end_time - start_time;
//Diff will be the number of milliseconds that elapsed.
}
getrusage
Linux での使用:
#include <sys/time.h>
#include <sys/resource.h>
...
struct rusage rusage;
getrusage(RUSAGE_SELF, &rusage);
/* use rusage.ru_utime and rusage.ru_stime for user and system time resp. */