首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 調用 WinAPI:QueryPerformanceCounter 高精度計時器應用

     編輯:Delphi

微秒級效能測量:測試滑鼠雙擊速度

QueryPerformanceCounter 配合 QueryPerformanceFrequency 提供硬體級的高解析度計時器,精度可達微秒。本範例以「測量兩次滑鼠點擊間隔」為趣味示範,展示如何計算毫秒差值。

核心邏輯

  1. 第一次點擊:QueryPerformanceCounter(n1) 記錄起始計數。
  2. 第二次點擊:QueryPerformanceCounter(n2) 取得結束計數。
  3. 差值 n = n2 - n1 為原始計數間隔。
  4. 呼叫 QueryPerformanceFrequency(f) 取得每秒計數頻率。
  5. 換算毫秒:ms = n * 1000 div f。

完整程式碼

var
  n1, n2, n, f: Int64;
  b: Boolean;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  n := 0;
  b := not b;
  if b then
    QueryPerformanceCounter(n1)
  else
  begin
    QueryPerformanceCounter(n2);
    n := n2 - n1;
  end;

  if n <> 0 then
  begin
    QueryPerformanceFrequency(f);
    n := n * 1000 div f;
    Caption := IntToStr(n) + ' ms';
  end
  else
    Caption := '等待第二下...';
end;

適用場景

  • 程式碼效能分析 (Profiling)
  • 遊戲/多媒體幀率控制
  • 硬體響應時間測量

作者最快記錄 151 ms,你能打破嗎?

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved