Вниз
Скачать: 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 вся ветка

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



Память: 0.48 MB
Время: 0.049 c
15-1174490853
oldman
2007-03-21 18:27
2007.04.15
Почти пятничные задачки для второго класса...


2-1174562221
tery
2007-03-22 14:17
2007.04.15
Удаления записи в столбце


4-1164319174
Goric
2006-11-24 00:59
2007.04.15
CreateService


15-1174535794
Slider007
2007-03-22 06:56
2007.04.15
С днем рождения ! 22 марта


2-1174700696
VitAngel
2007-03-24 04:44
2007.04.15
Проблема с установкой компоненты DSPack




   Наверх