• Авторизация


Оценка эффективности кода C/C++ в Windows 26-04-2009 23:11 к комментариям - к полной версии - понравилось!


Оценка эффективности кода в 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;
}
вверх^ к полной версии понравилось! в evernote
Комментарии (4):
tomato_horror 27-04-2009-08:39 удалить
по поводу выше сказаного промолчу но вот одно скажу язык программирования Си (именно Си а не с++) не может реализоватся на все 100% в ОС windows так как придуман был для ОС UNIX и как бы ни старались разработчики компиляторов и библиотек нихрина у них не выйдет потому что windows дерьмо!!!
if(windows == дерьмо)
{
printf("ставим GNU/Linux \n") ;
}
28-04-2009-18:20 удалить
offtop:
Буду очень признателен Вам, HOT_GRUNGE_DISTORTION, если Вы подскажете как на GNU/Linux запустить 1с7.7, организовать для нее файловый сервер, а также сервер доступа в Инет, файервол, почтовый сервер, сервер терминалов, поднять Anywhere SQL, и сделать это все за один день. Кроме этого нужно чтобы это все сопрягалось с дефакто 20 Windows-овыми рабочими местами.

Касательно оценки эффективности кода - статья написана весьма лаконично, описывает готовое решение для разработчика, ИМХО автору +
DoubleF 07-05-2009-12:54 удалить
Чаще нужна нормальная профилировка программы... Под FreeBSD для этого вообще в программе ничего менять не надо, только поставить fnccheck и перекомпилировать с соответствующими флагами. ``Какое счастье жить при коммунизме:)''. А если уж так хочется измерить ``сырые циклы'', то берём однопроцессорную систему, RDTSC и вперёд. Ну, или pmcstat...
11-05-2010-15:40 удалить
Ответ на комментарий tomato_horror # Да ты гнусь просто и провокатор. Windows - самая лучшая операционная система в мире, если ты не в курсе ! А твой галимый Linux - даже стабильной версии нет ни одной, всё какое-то кусочно рваные дописки и переписки.


Комментарии (4): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник Оценка эффективности кода C/C++ в Windows | whitewin - Дневник whitewin | Лента друзей whitewin / Полная версия Добавить в друзья Страницы: раньше»