ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 정밀한 타이머 - QueryPerformanceFrequency
    정리필요2 2008. 9. 1. 00:02

    ----------------TEST loop--------------------

       LARGE_INTEGER timefeq,start,end;
       float tinterval;

       QueryPerformanceFrequency(&timefeq);
       QueryPerformanceCounter(&start);
       
     //  Sleep(3); // 테스트로 주어본 delay : 3/1000 초

     //  작업


       QueryPerformanceCounter(&end);

       tinterval = (float)(end.QuadPart-start.QuadPart)/timefeq.QuadPart;


    ----------------------------------------------


    cpu 속도와는 관계없는 timer의 초당 counter값.
    cpu와는 별도로 정밀한 시간단위를 얻을 수 있도록 system에 설치되어 있는 고성능 timer(counter).
    QueryPerformanceFrequency()는 그 주파수(초당 진동수)를 알아내는 함수이다.


    (end-start)/timefeq 의 결과값이 '작업' 동작의 걸리는시간!!

    단위는 초. x1000 하면 ms (밀리세컨드), x1,000,000 을 곱하면 us(마이크로세컨드).





    더이상의 정확한 시간단위를 얻을수 없음. QueryPerformanceCounter, QueryPerformanceFrequency이 제일 정확.









    출처 지식iN > 컴퓨터, 통신 > 프로그래밍 > C, C++
    질문: vc 로 프로그램 시간 측정하기(백만분의 1초단위로) jandun / 2004-04-24 02:07
    c언어로 프로그램의 시간을 측정 하려고 합니다

    그런데 clock()함수를 이용하면 1000분의 1초까지 밖에

    계산이 안돼더군요

    더욱 정밀하게 백만분의 1초 단위로 측정하고자 합니다.

    어떤함수를 어떻게 써야 하는지 자세히좀 가르쳐 주세요

    예를 써주시면 더욱 감사하겠습니다.
    답변: re: vc 로 프로그램 시간 측정하기(백만분의 1초단위로) bluenlive / 2004-04-11 23:33
    VC++ 라면...
    GetTickCount() 를 사용하면 됩니다.

    Winbase.h에 정의되어 있고, Windows.h를 include하면 됩니다.
    (Kernel32.lib를 사용합니다)

    이 함수는 컴퓨터가 처...
Designed by Tistory.