Вниз
Скачать: CL | DM;

Как измерить время выполнения операторов.   Найти похожие ветки 

 
DmitrichJ   (2006-12-15 18:36) [0]

Подскажите пожалуйста как можно измерить время выполнения каких-то действий. Например выполнения SQL запросв и помещение данных в таблицу, ведь если использовать Timer, то он просто-напросто останавливается. Спасибо.


 
Eraser ©   (2006-12-15 18:42) [1]

> [0] DmitrichJ   (15.12.06 18:36)


var
 t1: TDateTime;
...
 t1 := Now;
 // Выполниение опр. действий.
...
 t1 := Now - t1; // В t1 "время выполнения каких-то действий"


 
DmitrichJ   (2006-12-15 18:43) [2]

Поспешил с вопросом. вот наилучшее решение:
Вообще то GetTickCount имеет погрешность от 55 ms до 10 ms. А вот чтоб с точностью до 0.0083 милисекунды, то делай так. Создай ворму с кнопкой Button1 и Label1.

procedure TForm1.Button1Click(Sender: TObject);
Var
 c,t1,t2:TlargeInteger;
 i:integer;
begin
 QueryPerformanceFrequency(c); //Считываем Частоту
 QueryPerformanceCounter(t1);  //Считываем таймер 1

 for i:=1 to 10 do canvas.lineto(random(300),random(300));
 // тут грузим комп каким нибудь заданием. В твоем случае сортировка
 // Я тут просто калякаю линии

 QueryPerformanceCounter(t2); //Считываем таймер 2
 label1.Caption:=format("Время сортировки : %g", [(t2-t1)/c]);
end


 
Desdechado ©   (2006-12-15 21:06) [3]

Гораздо правильнее брать среднее между множественными выполнениями одного и того же. Особенно если выполняется что-то очень короткое и зависящее от внешних факторов (для SQL - кэшированность данных на сервере, например).
Загоняем в цикл на 1000 итераций и результат делим на 1000.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.034 c
11-1143112987
Евгений Ч
2006-03-23 14:23
2007.01.07
Проблема KOL и FPC


5-1146224510
misyachniy
2006-04-28 15:41
2007.01.07
Ошибка при объявлении property .


15-1166128677
Real
2006-12-14 23:37
2007.01.07
Аналоговые часы на десктопе


9-1141300690
Galiaf
2006-03-02 14:58
2007.01.07
Что там по трению? :)


15-1166392688
Kerk
2006-12-18 00:58
2007.01.07
Google News наконец на русском




   Наверх