Как на Pascal сделать процедуру выполняющую подсчет времени выполнения программы? Нужна для сравнения скорости выполнеия сортировок.
У меня есть на Delphi. Можно ли ее переделать?
var
OperBegin, OperEnd: TTimeStamp;
Total: LongWord;
begin
OperBegin := DateTimeToTimeStamp(Now); {запоминается момент начала
операции}
{Здесь размещается код операции}
OperEnd := DateTimeToTimeStamp(Now); {запоминается момент окончания
операции}
Total := OperEnd.Time - OperBegin.Time;
end;
Вот, посмотри http://forum.pascal.net.ru/index.php?s=&showtopic=14902&view=findpost&p=86265 . Для Делфи тоже самое. Если надо точнее, то QueryPerformanceCounter и QueryPerformanceFrequency, о них можно почитать http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/timers.asp
Спасибо. Но у меня возникла небольшая проблема, при использовании uses windows; вылетает ошибка file windows.tpu не найден, если можете, скиньте, и путь где он должен лежать
Какой компилятор у тебя?
BP 7.0
http://forum.pascal.net.ru/index.php?showtopic=1741&st=40&p=34169entry34169
Вместо
uses windows;
uses winprocs;
Спасибо. Воспользовался Meml, вроде как заработало, потому что в массив ввел всего 50 элементов (на больше меня не хватило) , а с функцией random знаком плохо, завтра разбеоусь, и проверю еще раз. Еще раз спасибо всем.
с winprocs - аналогично
Можно также работать с досовской процедурой GetTime(Var Hour,Minute,Second,Sec100:word), но будет медленнее + мороки больше.
Спасибо, volvo. Запустил, один раз заработало - выывела результат на 20 элементах, потом и на 30 показывает 0, думаю мало элементов, как массиву типа pchar присвоить значения с помощью random?
Запустил отладку вручную, gettime работает. Следовательно, мало элементов.
randomize;
writeln(random(chr(random(25)+97));
Еще добавлю - способ с досовским таймером будет влиять на увеличения засекаемого времени, ведь после самого взятия время мы тратим некоторые доли секунд на преобразование в LongInt, что дает погрешность.
writeln(chr(random(25)+97));
Всем огромное спасибо и признательность за помощь. Использовал Gettime, при сортировке 10000 элементов получил время в 5 мс, задачу сдал.