返回介绍

计算 FPS

发布于 2025-02-18 12:46:47 字数 1161 浏览 0 评论 0 收藏 0

首先第一步我们需要知道 FPS,这是性能体现的一个重要指标。我们不论在 C#、TypeScript 或 JavaScript 中都可以实现 FPS 的统计。首先我们需要知道两帧之间的执行间隔时间。

我们要进行循环渲染,在 Html5 中使用 requestAnimationFrame,在 XAML 中使用 Composition.Rendering,它们会自动管理循环时间。一般而言,最佳间隔时间在 1000(每秒毫秒数) / 60(显示器最大刷新率) 毫秒内,也就是 ≈ 16.666667 毫秒。

这里有一个 David 和我一起做的 基准测试专题

综上所诉,在 C#中,添加一个新的 XAML TextBlock 元素,将其命名为"fps",用于显示当前 FPS 值:

DateTime previousDate;

void CompositionTarget_Rendering(object sender, object e)
{
  // Fps
  var now = DateTime.Now;
  var currentFps = 1000.0 / (now - previousDate).TotalMilliseconds;
  previousDate = now;

  fps.Text = string.Format("{0:0.00} fps", currentFps);

  // Rendering loop
  device.Clear(0, 0, 0, 255);

  foreach (var mesh in meshes)
  {
    mesh.Rotation = new Vector3(mesh.Rotation.X, mesh.Rotation.Y + 0.01f, mesh.Rotation.Z);
    device.Render(mera, mesh);
  }

  device.Present();
}

我在我的联想 Carbon X1 Touch(分辨率为 1600x900)电脑上运行前面的 C#版示例,每秒 5 FPS。我的联想电脑 CPU 为 Intel Core I7-3667U(4 个逻辑处理器)以及一个 HD4000 核心显卡。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文