7 #include <sys/sysctl.h>
9 static double cpufrequency
= 0;
11 static void init(void)
13 long result
= 0; size_t resultlen
= sizeof(long);
14 sysctlbyname("machdep.tsc_freq",&result
,&resultlen
,0,0);
15 cpufrequency
= result
;
18 long long cpucycles_monotonic(void)
22 if (!cpufrequency
) init();
23 clock_gettime(CLOCK_MONOTONIC
,&t
);
25 result
*= 0.000000001;
26 result
+= (double) t
.tv_sec
;
27 result
*= cpufrequency
;
31 long long cpucycles_monotonic_persecond(void)
33 if (!cpufrequency
) init();