1/* compare CPUTimeRead() vs CFAbsoluteTimeGetCurrent() */ 2 3#include <stdio.h> 4#include <stdlib.h> 5#include "cputime.h" 6#include <CoreFoundation/CoreFoundation.h> 7 8#define WAIT_TIME_SEC 1.0 9 10int main() 11{ 12 CPUTime cputimeStart, cputimeEnd; 13 CFAbsoluteTime start; 14 15 printf("Resolution on this machine: %f nanoseconds\n", 16 CPUTimeDeltaUs(0ULL, 1ULL) * 1000.0); 17 18 start = CFAbsoluteTimeGetCurrent(); 19 cputimeStart = CPUTimeRead(); 20 while((CFAbsoluteTimeGetCurrent() - start) < WAIT_TIME_SEC) { 21 ; 22 } 23 cputimeEnd = CPUTimeRead(); 24 25 printf("Waited %f sec; elapsed CPUTime %f s\n", 26 WAIT_TIME_SEC, CPUTimeDeltaSec(cputimeStart, cputimeEnd)); 27 printf("cputimeStart %08X:%08X cputimeEnd %08X:%08X\n", 28 (unsigned)(cputimeStart >> 32), 29 (unsigned)(cputimeStart & 0xffffffffULL), 30 (unsigned)(cputimeEnd >> 32), 31 (unsigned)(cputimeEnd & 0xffffffffULL)); 32 printf("cputime raw delta %lu\n", 33 (unsigned long)(cputimeEnd - cputimeStart)); 34 35 return 0; 36} 37