Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.12;
Скачать: CL | DM;

Вниз

время, затрачиваемое на выполнение процедуры или ф-ии   Найти похожие ветки 

 
zxcv   (2006-02-22 14:58) [0]

подскажите как узнать время, затрачиваемое
на выполнение процедуры или ф-ии


 
McSimm ©   (2006-02-22 15:01) [1]

запомнить время до выполнения
вычесть из времени после выполнения


 
zxcv   (2006-02-22 15:03) [2]

логично,
а как текущее время получить?


 
Alkid ©   (2006-02-22 15:07) [3]

Функция Now.
Но она может иметь слишком низкое разрешение для твоих нужд,
Смотри функции
QueryPerformanceCounter
QueryPerformanceFrequence


 
vidiv ©   (2006-02-22 15:15) [4]

GetTickCount()


 
vidiv ©   (2006-02-22 15:23) [5]

uses ..., Windows,...
...
var time:dword;
...
time := GetTickCount();
... YouFunction(...);
time := GetTickCount() - time;

после этого в time у тебя время выполнения функции в 1/1000 частях секунды.

Есть один ньюанс: После, примерно, 49 дней и 17 часов непрерывной работы компьютера счетчик, используемый функцией GetTickCount сбрасывается на ноль. Что может повлечь за собой неадэкватный результат. Поэтому данный способ годится только для отладки :) Если функция достаточно быстра, т.е. однозначно выполняется быстрее чем 49 дней, то можно использовать следующую поправку.

uses ..., Windows,...
...
var time:dword;
...
time := GetTickCount();
... YouFunction(...);
time := GetTickCount() - time;
if time<0 then time := 4294967295 + time;

где 4294967295 = (2^32-1) = максимальное значение счетчика.

Мой пост - это не истина в последней инстанции, а лишь мое осознание действительности! Так что прошу не судить строго!


 
vidiv ©   (2006-02-22 15:30) [6]


> а лишь мое осознание действительности

Вот нашел ошибку, уже после нажатия кнопки "Отправить"

dword не может принимать отрицательные значения, поэтому можно сделать следующую поправку:

uses ..., Windows,...
...
var time1, time2:dword;
...
time1 := GetTickCount();
... YouFunction(...);
time2 := GetTickCount();
if time1>time2 then
   time1 := 4294967295 - time1 + time2
else
   time1 := time2 - time1;

результат в time1



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

Текущий архив: 2006.03.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.041 c
2-1140064646
maxer
2006-02-16 07:37
2006.03.12
использование xml


3-1135230595
vista
2005-12-22 08:49
2006.03.12
Удаленный доступ к серверу Oracle


3-1137594058
jack128
2006-01-18 17:20
2006.03.12
особенности работы left join


6-1133169129
312Kbps
2005-11-28 12:12
2006.03.12
TWebBrowser загрузить HTML код !


3-1137785105
turonix
2006-01-20 22:25
2006.03.12
Как определить входит ли поле в состав вторичного ключа средствам