在delphi Firemonkey中计算FPS



我正在为使用两个定时器

Timer1.Interval = 1;
Timer2.Interval = 1000;
var
FPS: Integer = 0;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Inc(FPS);
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
  Caption := IntToStr(FPS) + 'FPS';
  FPS := 0;
end;

我得到65 FPS。

这有多准确?计算FPS(每秒帧数)最正确/准确的方法是什么?

此处不计算FPS。此代码统计每秒1毫秒Windows计时器的事件。请注意,1毫秒对于Window计时器来说太短,因为典型的Windows响应时间(不知道确切的英文单词)为10-20毫秒(65个事件=~15毫秒)。因此,在Windows中,您可以精确地测量时间间隔,但要保证事件触发的确切时间要困难得多。

要计算FPS,您必须在精确测量的时间内计算所需的事件(阅读QueryPerformanceCounter函数等)。

最新更新