test-gst.c
text/x-csrc
Filename: test-gst.c
Type: text/x-csrc
Part: 0
#include <windows.h>
#define FILETIME_UNITS_PER_SEC 10000000L
#define FILETIME_UNITS_PER_USEC 10
void main(int argc, char *argv[]) {
FILETIME ft1, ft2;
ULARGE_INTEGER uli1, uli2;
int r = 0;
int n = (argc > 1) ? atol(argv[1]) : 0;
GetSystemTimePreciseAsFileTime(&ft1);
for (long int i = 0; i < n; i++) r += i;
GetSystemTimePreciseAsFileTime(&ft2);
uli1.LowPart = ft1.dwLowDateTime; uli1.HighPart = ft1.dwHighDateTime;
long usec1 = (long) (((uli1.QuadPart) % FILETIME_UNITS_PER_SEC)
/ FILETIME_UNITS_PER_USEC);
uli2.LowPart = ft2.dwLowDateTime; uli2.HighPart = ft2.dwHighDateTime;
long usec2 = (long) (((uli2.QuadPart) % FILETIME_UNITS_PER_SEC)
/ FILETIME_UNITS_PER_USEC);
printf("usec1: %llu, usec2: %llu, usec2 - usec1: %d, uli2 - uli1: %ld, r: %d\n", usec1, usec2, usec2 - usec1, (long)(uli2.QuadPart - uli1.QuadPart), r);
}