GetTickCount () для нескольких функций в int main - PullRequest
0 голосов
/ 06 января 2012

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

1 Ответ

1 голос
/ 06 января 2012

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

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

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

...