PDA

Просмотр полной версии : Тест на скорость кусков прог...



Яр
29.10.2004, 22:13
Как проверить за какое время выполняется тот или иной участок кода (подпрограмма)? Допустим, у меня есть две подпрограммы, выполняющие одно и то же, и я хочу измерять какая из них выполняется быстрее. Как это обычно делают? :)
Если просто замеряют время перед её выполнением и после в милли\нано\етс-секундах, то подскажите пожалуйста какой функцией (имеется в виду с++) получить текущее время в подходящей точности...

shidox
29.10.2004, 22:34
Если в бьюлдере так там объект просто есть таймер
а так вообще я точно не помню но шоо то вроде getcurdate или как то там :)
чесно говоря забыл :oops:

Tigra
29.10.2004, 22:57
Если это тебе серьезно нужно, то есть такая вещь как профилировщики. Каким именно пользоваться - зависит от того, _насколько_ серьезно ты собираешься тестировать... Есть VTune - серьезная весчь) Есть микрософтовский Profile.exe - входит в поставку VC++...
Что касается функций - CTime::GetCurrentTime(). Можно пользоваться GetTickCount() (это если из АПИшных функций)...
По всякому можно, но если нужен не только замер, а и анализ, то профилировщик, ИМХО, все же лучше чем добавление таймеров и пр..

Slaventius
30.10.2004, 01:24
Профайлеры обычно юзают. Если саморучно, то под винду есть две неплохие функции QueryPerformanceCounter() и QueryPerformanceFrequency()

Tigra
21.02.2005, 00:10
Кстати, о профилировщиках АКА профайлерах )))...
Пользуетесь ли вы ими?
И если да, то возникала ли когда-то необходимость в чем-то более серьезном, чем
profile.exe (VTune, к примеру)?

У меня вот просто, такая необходимость как раз возникла - очень уж задача ресурсоемкая...
Надо бы оптимизировать по-хорошему)) да и дырки повылавливать))

Вот и решила спросить... Статистику собрать, что ли)))

Broken Sword
21.02.2005, 00:51
помню, как-то ходил по "книжке" (что на греческой) в посках профайлера... веселье было то еще :)
серьезнее vTune ты для интеловских процев не найдешь. А что за задача конкретно стоит, которая не по силам vTune?

среди других - CodeAnalyst для AMD, но vTune его уделает все равно

Tigra
21.02.2005, 01:00
Broken Sword, да, я как раз именно VTune и собираюсь юзать)
Да и Касперски читала преизрядно)))

Просто честно говоря, это для меня будет в новинку - до сих пор не было такой серьезной необходимости...
profile.exe юзала - скорее чисто из спортивного интереса)

Broken Sword
21.02.2005, 01:05
собираешь серию "кодокопатель" :) ?
vTune не бойся - там все упрощено до предела: указал функцию, задал параметры прогона и смотришь результаты в картинках

pal
21.02.2005, 02:12
kcachegrind.sourceforge.net

Tigra
21.02.2005, 10:31
спасибо-спасибо :)
Посмотрю)
Есть еще Bounds Checker - тоже сегодня вечерком гляну что там...

Broken Sword
21.02.2005, 10:37
Bounds Checker все больше отладчик

Tigra
21.02.2005, 10:52
Broken Sword, да, знаю...
это тоже надо)
по-хорошему там ковырять и ковырять))
Загрузка ЦП на 98-99% не есть хорошо:)
хотя вообще-то там действительно ЕСТЬ чем его загрузить))
утечки памяти - вот это уже похуже...
Вобщем - приду домой - буду ковыряться))

ЗЫ - пока что на Интел никак зарегистрироваться не могу, чтобы триал VTune скачать)) пароль не принимает)))

Broken Sword
21.02.2005, 11:26
прямой линк на пятую версию - ftp://download.intel.com/software/products/downloads/vtune50wd_010108.exe

на ftp у них валяется еще шестая - ftp://download.intel.com в папках /software/products/vtune/downloads

Tigra
21.02.2005, 12:36
Broken Sword, сенкью))
(нашла у товарища на диске :))
Но с паролем все равно интересно получилось.. точнее не получилось))
а такие полеты фантазии были)

Broken Sword
22.02.2005, 12:42
Tigra, а какая у товарища версия? :)

Tigra
22.02.2005, 12:54
6.0

Broken Sword
22.02.2005, 13:02
моя любимая версия ). можно где-то кинуть на ftp тенетовский?

shidox
22.02.2005, 22:28
Классно я раньше блин только пользовался таймерами, не знал что есть такие проги ..... :oops:

Inferno
24.02.2005, 19:40
По моему самая большая проблема с утечкой памяти. Все остальное касающееся быстродействия особо не напрягает.

Tigra
24.02.2005, 20:32
Inferno, когда задачу, которая по-хорошему должна выполняться на каком-нибудь кластере или на худой конец, многопроцессорнике... в системе реального времени (во размечталась, ага %))) надо впихнуть на обычную "офисную" машинку - вот тогда быстродействие напрягает....

Inferno
24.02.2005, 21:14
Inferno, когда задачу, которая по-хорошему должна выполняться на каком-нибудь кластере или на худой конец, многопроцессорнике... в системе реального времени (во размечталась, ага %))) надо впихнуть на обычную "офисную" машинку - вот тогда быстродействие напрягает....

Для меня это действительно не проблема. Я помню интернет по 20-60 байт в секунду и программирование под синклер. Поэтому я расходую ресурсы очень и очень экономно.

T_X
01.03.2005, 11:21
Inferno, когда задачу, которая по-хорошему должна выполняться на каком-нибудь кластере или на худой конец, многопроцессорнике... в системе реального времени (во размечталась, ага %))) надо впихнуть на обычную "офисную" машинку - вот тогда быстродействие напрягает.
Ты бы еще Альпар под это дело приспособил ;)

Tigra
01.03.2005, 11:31
T_X, мм.. que es Альпар? ))
меня терзают смутные сомнения))