QueryPerformanceCounterの使い方。しょっちゅう忘れるのでメモ。
メインへ戻る


#include <stdio.h>
#include <windows.h>

__int64 watch1 = 0;

void start_watch(void)
{
    QueryPerformanceCounter((LARGE_INTEGER *)&watch1);
}

void stop_watch(void)
{
    __int64 watch2 = 0, freq = 0;
    QueryPerformanceCounter((LARGE_INTEGER *)&watch2);
    QueryPerformanceFrequency((LARGE_INTEGER *)&freq);
    printf("elapsed = %.15f (msec)\n",(watch2-watch1)/(double)freq*1000.0);
}

int main(void)
{
    double x;
    start_watch();
    for(long i=0; i<100000; ++i)
        x += i * 0.1;
    stop_watch();
    return 0;
}

(実行結果)
私の高速 0.8GHzマシンでの実行結果(^^)。
$ a
elapsed = 1.258260477239426 (msec)

ネタはこちら↓
http://support.microsoft.com/kb/815668/ja


Copyright (C) 2007 Nakayama Masahito