![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как определить время выполнения подпрограммы? [D7, WinXP]
Vulko © (2004-09-12 16:43:00)Как определить время выполнения подпрограммы?
Vulko (2004-09-13 18:29:00) [1]Семен Сорокин, благодарствую.
evvcom, ну при чём тут это? Знаю я эти демосы... не надо мне смотреть. Мне просто нужно сделать простешую лабу.
Rem (2004-09-13 13:46:00) [2][8]
Только каждый раз используя одинаковый начальный массив данных.
Иначе последующим запускам нечего сортировать будет - все уже отсортировано.
"Все уже украдено до нас" (С) Операция Ы :)
Erik1 (2004-09-13 13:37:00) [3]Иногда нельзя, все от данных зависит и огранизации хранения. Сделай проще запускай 1000 раз сортировку, тогда точно mc хватит.
Vasya.ru (2004-09-13 13:33:00) [4]разные виды сортировки выполняются, и сделать вывод - какой метод сортировки лучший
А у кнута, Ахо, Вирта из книжек списать нельзя?
evvcom (2004-09-13 12:05:00) [5]В Delphi в Demo есть пример во Threads как раз различные сортировки. Запускаешь, и даже на глаз видно, который из них быстрее работает. Можно добавить свой метод сортировки и тестировать.
Rem (2004-09-13 10:12:00) [6]>>сколько по времени разные виды сортировки выполняются
>>Имхо тут миллисекунд не достаточно...
Все от размера массивов, которые сортируются, зависит:
Если массивы по 2 элемента - то и микросекунд не хватит.
А если по 20 млрд. элементов да еще и на диске - то можно и ходиками время замерять.
Семен Сорокин (2004-09-12 20:03:00) [7]Vulko © (12.09.04 20:01) [3]
см.[2]
QueryPerformanceCounter
Vulko (2004-09-12 20:01:00) [8]Семен Сорокин, у меня подпрограмма простейшая (сортировка массива), и нужно как более точно посчитать время работы...
Мне нужно сравнить сколько по времени разные виды сортировки выполняются, и сделать вывод - какой метод сортировки лучший.
Имхо тут миллисекунд не достаточно... Хотя может я и не прав.
kaZaNoVa (2004-09-12 19:21:00) [9]Var
k,n,h,p:int64;
***********
procedure taimer(a:boolean);
Begin
if a then begin
p:=gettickcount; QueryPerformanceFrequency(h); QueryPerformanceCounter(k);
end else begin
QueryPerformanceCounter(n);
MessageBox(0,'Ready',Pchar(Inttostr(gettickcount-p)+' ms ('+(Inttostr(round(1000000*(n-k)/h)))+') microsec'),0);
end;end;
Семен Сорокин (2004-09-12 18:14:00) [10]GetTickCount в начале работы подпрограммы и в конце, разница - время работы в миллисекундах