2012-01-06 2 views
0

Я пытаюсь использовать несколько функций с помощью GetTickCount() отдельно в очень большом фрагменте кода, чтобы найти, где именно находятся узкие места. Я могу успешно выполнить весь фрагмент кода. То, что я изо всех сил пытаюсь решить, - это где добавить функцию синхронизации для измерения времени для каждой отдельной функции. Я вставляю таймер, когда объявляются функции или когда они определены, или внутри основного(), где они вызывают. Любая помощь будет действительно оценена. Спасибо.GetTickCount() для нескольких функций в int main

ответ

1

Вы раз их, когда они вызываются во время выполнения, например:

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

Лучший способ для измерения тайминги кода является использование профилировщика вместо того, чтобы писать логику в самом коде. Профайлер подключается к процессу выполнения и вставляет свой собственный код внутри самих функций. Затем он может отслеживать не только продолжительность выполнения функций, но и сколько раз они вызываются, какие функции вызывают функции, столы вызовов журналов и т. Д. Все без написания дополнительного кода.

Смежные вопросы