Главная страница
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.082 c
2-1174564081
alles
2007-03-22 14:48
2007.04.15
Как рисовать по хандлу из DLL?


2-1174762187
Malik
2007-03-24 21:49
2007.04.15
Помогите плизз!!! Масштабирование перед печатью.


15-1174387055
Gragdanin
2007-03-20 13:37
2007.04.15
Минусовки песен


2-1174605776
dreamse
2007-03-23 02:22
2007.04.15
Преобразовать руские буквы для поиска в google


15-1174638171
Тема
2007-03-23 11:22
2007.04.15
Как мне запихать бинарный образ в exe?