Форум: "Начинающим";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];
ВнизКак измерить время выполнения операторов. Найти похожие ветки
← →
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 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.01 c