Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Общие вопросы > Как провести benchmark? |
Автор: BCworm 25.9.2009, 09:50 |
Привет всем. Подскажите пожалуйста чем можно провести бенчмарк - т.е чем можно замерить время выполнения программы в зависимости от объема данных? Может есть какие функции чтоб можно было вставить в код? Может есть какие проги специально под делфи? |
Автор: RockClimber 25.9.2009, 11:54 |
Я использую http://www.google.ru/search?q=GetTickCount&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru для измерения времени выполнения какого-либо действия. Мне хватает. |
Автор: AntonN 25.9.2009, 12:18 | ||
Использовать QueryPerformanceCounter(), дающий более точные результаты.
|
Автор: kami 25.9.2009, 21:45 |
AQTime. Позволяет замерять много чего, в том числе и время выполнения функций. Из минусов - платная. |
Автор: BCworm 11.10.2009, 09:22 |
Предложенный AntonN вариант - QueryPerformanceCounter() Это именно то что надо. Получилось работает! в смысле показания меняются в зависимости от загрузки при желании можно и график построить НО! Насколько я понял счет ведется не в сек и м.сек. А в чем? У меня получаются значения типа 0.0014562349882 Как это превратить в миллисекунды? Или это ни и есть? Подскажите пожалуйста. |
Автор: AntonN 11.10.2009, 11:54 |
BCworm, это результат в секундах ![]() чтобы перевести в миллисекунды умнож на 1000 |
Автор: BCworm 11.10.2009, 13:25 |
Ясно спасибо большое вопрос закрыт! |
Автор: bems 11.10.2009, 17:21 |
Вот еще профайлер - довольно древний, но официально безплатный. С новыми делфями подглючивает при интеграции в среду, но ничего не мешает запускать его вручную как простое приложение. |
Автор: Beltar 11.10.2009, 21:00 |
Небольшая статья на тему оптимизации: http://www.rsdn.ru/article/philosophy/Optimization.xml ИМХО в ряде практически важных случаев, когда пользователь дает команду и ждет ее результатов, а время выполнения намного больше одной секунды миллисекунды мерить смысла нету, хватит и обычной Now. Кроме того, не всегда можно сразу понять, куда производительность уходит, у меня был случай, когда один и тот же код откомпилированный в Delphi 2007 давал ЕМНИП 27-28 секунд, а в Delphi 2009 аж 42 секунды (анализ с отчетом в Excel примерно 207000 записей в БД). Все время уходило на поиск полей по имени и "преимущества" юникода проявлялись во всей красе. После нудного переписывания на обращения по индексам время выполнения сравнялось. |