2013-12-10 1 views
2

Я новичок в visual studio 2012, и я хочу проверить скорость моих функций. Каков наилучший способ сделать это? Я пытаюсь ускорить свою функцию, и я хочу увидеть время, которое требуется от выполнения, пока оно не даст результаты. Я ценю помощь.Как проверить время выполнения функции в Visual Studio C++?

+0

Используйте win32 PerformanceCounter: [Как пользоваться QueryPerformanceCounter?] [1] [1]: http://stackoverflow.com/a/1739265/2930642 – eranb

ответ

1

Скорее всего, нет хорошего пути. В зависимости от версии Visual Studio у вас есть, она может поставляться с поддержкой профилировщика, если это так, включите это, и он скажет вам.

Else, смотреть на что-то вроде высокой производительности счетчика API по адресу: http://msdn.microsoft.com/en-us/library/windows/desktop/ms644904%28v=vs.85%29.aspx

1

В дополнение к использованию QueryPerformanceCounter упоминается в других постах, есть несколько шагов, которые помогут вам измерять время более точно:

  1. Вызовите Sleep (0) или SwitchToThread() перед началом измерения времени. Это приведет к созданию более надежных средств, поскольку контекстные переключатели не будут возникать сразу после возврата из режима сна(). Если функция короткая и вызывается в замкнутом цикле, вызовите «Сон» перед циклом, вы хотите, чтобы кэш-память CPU оставалась ГОРЯЧЕЙСЯ, когда вы вызываете вашу функцию.
  2. Поднять приоритет потока и/или базовый приоритет процесса с помощью SetThreadPriority и SetProcessPriorityBoost.
  3. Магазин N тысяч результатов в массиве, выбросить или проигнорировать наихудшие 5% (выбросы). Перед печатью статистики сортируйте массив, чтобы легче находить выбросы.