Оценка эффективности кода в Windows
Почти всегда при разработке программ существуют несколько реализаций одного и того-же алгоритма. Часто, для оценки влияния на скорость выполнения программы той или иной оптимизации кода, нужно измерить время выполнения алгоритма до и после оптимизации. Для измерения времени работы кода в Windows, написанного на С/С++, можно воспользоваться библиотекой ETimer. У этой библиотеки есть преимущества, перед другими методами измерения времени: точность измерения времени не зависят от изменения частоты процессора в зависимости от нагрузки (технология Intel® SpeedStep или ей подобные) и на многопроцессорных (многоядерных) системах для увеличения точности измерения выполнение потока привязывается к одном процессору. Прочитать более подробно про Etimer и скачать библиотеку можно здесь:
http://software.intel.com/en-us/articles/measure-code-sections-using-the-enhanced-timer.
Пример использование библиотеки:
#include "Etimer.h"
int main(int argc, char* argv[])
{
//создать переменную типа Etime_t
//эта структура данных
//определена в файле Etimer.h.
Etime_t mtime;
//вызвать функцию EtimeInitialize
//для инициализации переменной
if ( !EtimeInitialize(&mtime) ) return -1;
//начало измерения
if (Etime(&mtime))
{
//измеряемый участок код ;)
...
//получаем время выполнения
if (Etime(&mtime))
{
printf("Выполнялось, сек = %16.13f\n",
EtimeDurationInSeconds(&mtime));
}
}
return 0;
}