Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Измерение времени между засечками в программе...


Автор: Pakshin A. S. 6.11.2006, 22:35
Помню, что сталкивался с этой проблемой и может даже задавал вопрос, но по поиску я что-то дельного не нашел...

Итак, в каком-то месте программы мы делаем засечку времени. В другом месте программы почти рядом мы также делаем засечку времени. Нужно узнать: сколько прошло времени от первой засечки до второй. ПРобовал работать через обычные наши временные классы, но они не дают нужной очности измерений, атк как вторая засечка может стоять в одной милисекунде от первой. Как реализовать нужное?

Пример пожно рассмотреть на примитиве:
...
засечка1
s:=0;
for i:=1 to 100 do
  s:=s+i;
засечка2
вывод промежутка времени между первой и второй засечкой в милисекундах
...

Автор: anwe 6.11.2006, 22:42
Можно использовать отсчет системного таймера (по прерыванию таймера). Эти данные находятся по адресу 0:046С.

Автор: Romikgy 6.11.2006, 22:52
GetTickCount имхо
можно точнее но там сложнее

Добавлено @ 22:53 
Цитата(Pakshin A. S. @  6.11.2006,  21:35 Найти цитируемый пост)
засечкой в милисекундах

не заметил сразу , значит подойдет геттиккоунт

Автор: Alexeis 6.11.2006, 22:55
QueryPerformanceCounter
QueryPerformanceFrequency

И еще есть целый модуль Петровича в закрепленной теме
"Арсенал форумистов"
http://forum.vingrad.ru/index.php?showtopic=21411

Автор: Pakshin A. S. 6.11.2006, 22:55
 smile Оно...  smile   smile 

Автор: Alexeis 6.11.2006, 23:02
Цитата(Romikgy @  6.11.2006,  22:52 Найти цитируемый пост)
значит подойдет геттиккоунт 

Не он дает с точностью 10мс, QueryPerformanceCounter меньше 1 мс.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)