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

Вниз

Время работы программы   Найти похожие ветки 

 
Troan_81   (2007-03-20 20:59) [0]

Всем привет!

Мастера подскажите пожалуйста, как можно определить сколько времени было затрачено на выполнение какой-либо операции?
Например:
Старт: 21:00:00
Стоп : 22:00:00
Итого: 1 час


 
Virgo_Style ©   (2007-03-20 21:06) [1]

StartTime:=Now;
...
FinishTime:=Now;


 
Troan_81   (2007-03-20 21:13) [2]

Уважаемый Virgo_Style, спасибо за ответ!
Для меня оно очень большое значение имеет. Спасибо!
Первый оператор понятно - запоминает, точнее получает текущее время.
Второй тоже - как бы обновляет.
Но хотелось бы немного "живого"
Я немного не могу понять в следующем коде, совсем запутался:

var
 OperBegin, OperEnd: TTimeStamp;
 Total: LongWord;

begin
 OperBegin := DateTimeToTimeStamp(Now); {запоминается момент начала операции}

 {Здесь размещается оператор, который выполняется в цикле}

 OperEnd := DateTimeToTimeStamp(Now); {запоминается момент окончания операции}
 Total := OperEnd.Time - OperBegin.Time;
end;

Для этого использую компонент Statusbar1. В первую ячейку время старта, а во вторую результат. Что-то не получается сформатировать строчку. Помогите пожалуйста!



 
Troan_81   (2007-03-20 22:07) [3]

Никто не знает, или никто не хочет мне помочь?


 
RASkov   (2007-03-20 22:27) [4]

> [3] Troan_81   (20.03.07 22:07)


 StatusBar.Panels[0].Text := TimeToStr(Time);
 OperBegin := DateTimeToTimeStamp(Now);

  {Здесь размещается оператор, который выполняется в цикле}

 OperEnd := DateTimeToTimeStamp(Now);
 StatusBar.Panels[1].Text := Format("%d мсек.", [OperEnd.Time-OperBegin.Time]);


 
Германн ©   (2007-03-21 01:12) [5]

Вот будет здорово, если цикл начнется в 23:59, а закончится в 00:01 :)


 
Asail   (2007-03-21 12:22) [6]


> Вот будет здорово, если цикл начнется в 23:59, а закончится
> в 00:01 :)


var
  OperBegin : TDateTime;
begin
  OperBegin := Now;
  . . .
 StatusBar.Panels[1].Text := FormatDateTime("hh:ss:zzz", [Abs(Now-OperBegin)]);


Если так - то здорово уже не будет :-)

P.s. А если FormatDateTime("dd/mm/yyyy hh:ss:zzz", то проблем не будет даже если цикл бежит дни, месяцы, а то, и годы  :-)))


 
homm ©   (2007-03-21 13:09) [7]

> Мастера подскажите пожалуйста, как можно определить сколько
> времени было затрачено на выполнение какой-либо операции?



var t: DWORD;
begin
T := GetTickCount();
// какая-либо операция
T := GetTickCount()-T;


Теперь Т - количество милисекунд, потраченых на выполнение, Т/1000 - количетво секунд, Т/(60*1000) - количество минут, и т.д.


 
RASkov   (2007-03-21 13:09) [8]

> то проблем не будет даже если цикл бежит дни, месяцы, а
> то, и годы  :-)))

Столько винда не проживет :) с такими циклами.
:)


 
Asail   (2007-03-21 15:18) [9]


> Столько винда не проживет :) с такими циклами.

Ну, почему - есть сервисы, которые бегут пока их не остановят. Иногда бывает нужно подсчитать время жизни такого сервиса.
Да и любое другое приложение может иметь такие циклы.
repeat
  try
     HandleMessage;
  except
     HandleException(Self);
  end;
until Terminated;

ничего не напоминает?


 
RASkov   (2007-03-21 15:53) [10]

> [9] Asail   (21.03.07 15:18)

Я о стабильности работы ОС. Вообщем моя шутка, так понял, не прошла :(


 
Asail   (2007-03-21 15:55) [11]


> Вообщем моя шутка, так понял, не прошла :(


Пардон



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

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

Наверх




Память: 0.49 MB
Время: 0.044 c
2-1174495935
T.V
2007-03-21 19:52
2007.04.15
Вопрос по var-параметрам и указателям


2-1174896530
Dmitry_177
2007-03-26 12:08
2007.04.15
Унаследование структуры


2-1174954591
Wood
2007-03-27 04:16
2007.04.15
TRichEdit, свойства текста..


1-1171994788
Andrey.Ru
2007-02-20 21:06
2007.04.15
Как получить первые 4 бита из байта...


2-1174759711
Леонид
2007-03-24 21:08
2007.04.15
Однотипные процедуры