2012-01-06 4 views
0

병목 현상이 정확한 위치를 찾기 위해 매우 큰 코드에서 GetTickCount()를 개별적으로 사용하여 여러 함수의 시간을 측정하려고합니다. 코드 전체를 성공적으로 처리 할 수 ​​있습니다. 내가 고민하는 것은 시간 기능을 추가하여 각 기능에 대한 시간을 측정하는 부분입니다. 함수가 선언되거나 정의 될 때 또는 호출되는 main() 내부에 타이머를 삽입합니까? 도움이 될 것입니다. 감사합니다.int main에서 여러 함수에 대한 GetTickCount()

답변

1

그들이 런타임에 호출 당신의 시간을, 예를 들면 :

int main(int argc, char** argv) 
{ 
    ... 
    DWORD start = GetTickCount(); 
    CallAFunction(); 
    DWORD end = GetTickCount(); 
    DWORD elapsed = (end >= start) ? (end - start) : ((MAXDWORD - start) + end); 
    ... 
} 

코드 타이밍을 측정하는 더 좋은 방법 대신 코드 자체의 논리를 작성하는 프로파일 러를 사용하는 것입니다. 프로파일 러는 런타임 프로세스에 후크하여 자체 코드를 함수 자체에 삽입합니다. 그런 다음 함수가 실행되는 데 걸리는 시간뿐만 아니라 호출되는 횟수, 함수가 호출하는 함수, 호출 스택을 로그하는 등을 추적 할 수 있습니다. 추가 코드를 작성하지 않고도 모두 가능합니다.

관련 문제