在Linux下面测量程序的执行时间。采用一下办法。
#include <sys/time.h>
#include <sys/resource.h>
uint64_t getusertime() {
struct rusage rusage;
getrusage( 0, &rusage );
// transt it to microsecond(1 s =10^6 microsecond )返回的时间是微妙级别的
return rusage.ru_utime.tv_sec * 1000000ULL + rusage.ru_utime.tv_usec;
}
struct rusage {
struct timeval ru_utime; /* user CPU time used */ 用户态下执行总时间
struct timeval ru_stime; /* system CPU time used */ 内核态下执行总时间。
long ru_maxrss; /* maximum resident set size */
long ru_ixrss; /* integral shared memory size */
long ru_idrss; /* integral unshared data size */
long ru_isrss; /* integral unshared stack size */
long ru_minflt; /* page reclaims (soft page faults