Высокоточный таймер 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 прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |