![]() |
![]() ![]() ![]() ![]() |
|
Высокоточный таймер 2Delphi , Компоненты и Классы , TTimerВысокоточный таймер 2
Оформил: DeeCo
{
You want to measure the elapsed time in a repeat, while or a for -Loop
to do some optimation ?
Sie mochten eine Routine mit einer repeat, while oder for i :=...hinsichtlich der
durchlaufenen Zeit messen, um z.B.Optimierungsaktivitaten durchzufuhren.
}
// Global Variables, Globale Variablen:
t1, t2, Res: TLargeInteger;
bOk: BOOL;
implementation
uses Windows, dialogs;
procedure StartTimer;
begin
bOK := QueryPerformanceFrequency(Res);
if bOK then
QueryPerformanceCounter(t1);
end;
procedure StopTimer;
begin
if bOK then
QueryPerformanceCounter(t2);
end;
procedure LoopRoutine;
var
iCounter: integer;
begin
StartTimer;
// Put here some kind of loop: For, While or Repeat
for i := 0 to iCounter do...
{ WHILE....
repeat...until}
{ After the Loop/
Nach Abschluss der Schleifenroutine:}
if bOK then
QueryPerformanceCounter(t2);
end;
procedure StartSchleife;
begin
LoopRoutine;
if bOK then
{$IFDEF VER80}
// Show the elapsed time:
MessageDlg('Der Schleifendurchlauf dauerte: ' + Format('%g Sekunden.',
[(t2.QuadPart - t1.Quadpart) / Res.QuadPart]));
$Else {$IFDEF VER120}
MessageDlg('Der Schleifendurchlauf dauerte: ' + Format('%g Sekunden.',
[(t2 - t1) / Res]));
{$ENDIF}
end;
Вот перевод текста на русский язык: Код Delphi, реализующий высокопrecision таймер с помощью функции QueryPerformanceCounter, измеряющей прошедшее время с высокой точностью. Таймер может использоваться для измерения времени выполнения рутины в цикле (например, For, While или Repeat) и отображения результата. Вот разбивка кода: Глобальные переменные
Имплементация Код разделен на три процедуры:
Замечания
В целом, этот код предоставляет высокопrecision таймер, который может использоваться для измерения времени выполнения рутины в цикле. Он полезен для оптимизации критически важного кода. В статье рассматривается высокоточный таймер на языке Delphi, который позволяет измерять время выполнения циклов и оптимизировать программу. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||