Как я могу получить время выполнения моего приложения? - PullRequest
4 голосов
/ 23 декабря 2011

Как узнать время выполнения моего приложения с момента его запуска?

1 Ответ

17 голосов
/ 23 декабря 2011

Попробуйте функцию GetProcessTimes

{$APPTYPE CONSOLE}

{$R *.res}

uses
  Windows,
  SysUtils;

function FileTime2DateTime(FileTime: TFileTime): TDateTime;    //Convert then FileTime to TDatetime format
var
  LocalTime: TFileTime;
  DOSTime  : Integer;
begin
  FileTimeToLocalFileTime(FileTime, LocalTime);
  FileTimeToDosDateTime(LocalTime, LongRec(DOSTime).Hi, LongRec(DOSTime).Lo);
  Result := FileDateToDateTime(DOSTime);
end;

Var
  lpCreationTime, lpExitTime, lpKernelTime, lpUserTime: TFileTime;

begin
  try
    GetProcessTimes(GetCurrentProcess,lpCreationTime, lpExitTime, lpKernelTime, lpUserTime);
    Sleep(1000); //do something

    Writeln(Format('Running Time %s',[FormatDateTime('hh:nn:ss.zzz',Now-FileTime2DateTime(lpCreationTime))]));
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
  Readln;
end.
...