
回复
已在 Harmony Next 和 OpenHarmony 5.0+ 上测试通过
本功能使用 @ohos.graphics.displaySync 接口实现,并采用"帧间隔法"计算 fps(当然可以使用其他计算 fps 的方法):
这是一种基于时间戳差值(Time Delta)来计算 FPS 的方法,也称为"帧时间法"或"帧间隔法"。
具体计算过程如下:
获取相邻两帧的时间戳差值(Frame Time/Delta Time)
收集一定数量的帧时间样本(使用数组存储最近60帧的数据)
计算平均帧时间
let avg_frame_time = sum / this.frame_times.length;
使用公式 FPS = 1000/平均帧时间(毫秒) 计算最终的 FPS
let fps = 1000.0 / avg_frame_time;
这种方法的特点是:
实时性好,能够反映当前实际的帧率状况
通过收集多帧样本并平均,可以平滑瞬时波动
计算简单,开销小
适合用于性能监控和调试
低帧率
高帧率
系统设置帧率