Главная страница
    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.04 c
15-1173877098
ArchValentin
2007-03-14 15:58
2007.04.15
Delphi & WindowsVista


15-1174563175
Post_
2007-03-22 14:32
2007.04.15
Логика построения БД.


15-1174580946
oldman
2007-03-22 19:29
2007.04.15
Я всегда пользовался NERO (и подобными продуктами)


15-1174605082
Макс Черных
2007-03-23 02:11
2007.04.15
Забавный баян про поэтов :)


2-1174678650
Селезин
2007-03-23 22:37
2007.04.15
Разделитель целой и дробной части числа





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский