Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.04.15;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.038 c
15-1174296854
Jolik
2007-03-19 12:34
2007.04.15
Delphi for PHP


15-1174368163
Calibr
2007-03-20 08:22
2007.04.15
JavaScript


2-1174742156
MASTAFA
2007-03-24 16:15
2007.04.15
Помогите с Паскалем. Нужно построить правильный 5-угольник.


15-1174581028
Empleado
2007-03-22 19:30
2007.04.15
Помнится, тут уже было несколько соревнований...


15-1174476078
qaeng
2007-03-21 14:21
2007.04.15
gmtime64 / time64





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский