реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Как измерять время выполнения алгоритма?, на целевой платформе и PC
beaRTS
сообщение Dec 20 2012, 07:12
Сообщение #16


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111



Цитата(eugen_pcad_ru @ Dec 18 2012, 11:26) *
Сам не меряю. ИМХО в такой постановке задачи можно вести речь только о средней скорости выполнения. Средняя скорость и есть однозначный результат.

Мне тоже так казалось в соответствии со статистическими знаниями.. но не тут то было! Покапавшись в инете вот что вскрылось:
"В многозадачной системе Windows, никакая программа не владеет всеми ресурсами системы единолично и вынуждена делить их с остальными задачами. А это значит, что скорость выполнения профилируемой программы не постоянна и находится в тесной зависимости от "окружающей среды". На практике разброс результатов измерений может достигать 10%—15%, а то и больше, особенно, если параллельно с профилировкой исполняются интенсивно нагружающие систему задачи.

Тем не менее, особой проблемы в этом нет, — достаточно лишь в каждом сеансе профилировки делать несколько контрольных прогонов и затем… нет, не усреднять, а выбирать замер с наименьшим временем выполнения. Дело в том, что измерения производительности — это не совсем обычные инструментальные измерения и типовые правила метрологии здесь неуместны. Процессор никогда не ошибается и каждый полученный результат точен. Другое дело, что он в той или иной степени искажен побочными эффектами, но! Никакие побочные эффекты никогда не приводят к тому, что программа начинает исполняться быстрее, нежели она исполняется в действительности, а потому, прогон с минимальным временем исполнения и представляет собой измерение в минимальной степени испорченное побочными эффектами.

Кстати, во многих руководствах утверждается, что перед профилировкой целесообразно выходить из сети ("что бы машина не принимала пакеты"), завершать все-все приложения, кроме самого профилировщика и вообще лучше даже "на всякий случай" перегрузиться. Все это чистейшей воды бред! Автор частенько отлаживал программы параллельно с работой в Word, приемом корреспонденции, загрузкой нескольких файлов из Интернета и при этом точность профилировки всегда оставалась удовлетворительной! Конечно, без особой нужды не стоит так рисковать, и параллельно работающие приложения перед началом профилировки, действительно, лучше завершить, но не следует доводить ситуацию до абсурда, и пытаться обеспечить полную "стерильность" своей машине. "

Сообщение отредактировал beaRTS - Dec 20 2012, 07:13


--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Dec 20 2012, 07:32
Сообщение #17





Guests






> прогон с минимальным временем исполнения и представляет собой измерение в минимальной степени испорченное побочными

Это не всегда так, более того - на современных компах это далеко не так.
Наиболее точным является первое измерение, т.к. производятся различные подготовки. Последующие измерения при одних и тех же входных условиях могут дать значительно меньший результат, т.к. начинает работать кэш и уточняются предсказания.
Однако если данные меняются при каждом тесте, то все начинается с нуля.
Go to the top of the page
 
+Quote Post
beaRTS
сообщение Dec 20 2012, 07:39
Сообщение #18


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111



Цитата(TSerg @ Dec 20 2012, 10:32) *
Это не всегда так

да да . вы правы. я тут дальше накопал примерно такие рекомендации:
"При профилировании многократно выполняющихся функций, результаты первых двух–трех прогонов стоит вообще откинуть, и категорически не следует их арифметически усреднять.

Напротив, при профилировании функций, исполняющихся в реальной программе всего один раз, следует обращать внимание лишь на время первого прогона и отбрасывать все остальные"


--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Dec 20 2012, 07:46
Сообщение #19





Guests






Кроме того, при тестировании вычислительных процедур часто вообще надо знать распределение времени исполнения от значения входных величин и даже минимаксные оценки, поскольку и если могут возникать короткие ветви вычисления при некоторых значениях аргументов.
Go to the top of the page
 
+Quote Post
beaRTS
сообщение Dec 20 2012, 07:55
Сообщение #20


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111



Ндаа. =) как это все неоднозначно.
Спасибо! подчерпнул для себя что-то новое. Но пока не готов трудо-дни тратить на углубление в профилировании.

Пока на данном этапе развития буду если что в железе ножкой порта дрыгать да смотреть осциллографом.

Сообщение отредактировал beaRTS - Dec 20 2012, 08:05


--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Dec 20 2012, 08:44
Сообщение #21





Guests






Пример трассировки на РС одной вычислительной функции в ticks
Нормальный приоритет:
N: 100
Tmax: 47267
Tmin: 22509
Tmean: 27899
Tstd: 3913

RealTime приоритет:
N: 100
Tmax: 31293
Tmin: 22754
Tmean: 27241
Tstd: 1700
Go to the top of the page
 
+Quote Post
beaRTS
сообщение Dec 20 2012, 09:28
Сообщение #22


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 27-12-11
Из: Челябинск
Пользователь №: 69 111



Цитата(TSerg @ Dec 20 2012, 12:44) *
Пример трассировки на РС одной вычислительной функции в ticks
<..>

наверно, так и стоит делать, собирая всю статистику целиком. я Вас понял, применю при случае. спс


--------------------
"Об уме человека вернее судить по его вопросам, нежели по его ответам" (с)
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th June 2025 - 06:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01412 секунд с 7
ELECTRONIX ©2004-2016