在Javascript中计算小于1毫秒的FPS

前端之家收集整理的这篇文章主要介绍了在Javascript中计算小于1毫秒的FPS前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

是否可以测量所有浏览器支持的时间间隔小于1毫秒,我只知道Chrome中的一种方式.

chrome方法:window.performance.now()

目前我在毫秒时间空间内进行FPS测量,但如果经过不到1ms则得到无穷大,因为这两个数字四舍五入到最接近的毫秒,所以它们是相同的值.

有没有人知道跨浏览器函数计算javascript中不到1毫秒的时间间隔?

最佳答案
这里是如何在没有精确定时器的情况下获得准确的测量结果,只要您经常进行定时,我希望他们在您的情况下这样做.

平均/汇总事件持续时间的不精确测量值.我的一个项目的片段:

        var start = Date.now();
        ... (stuff to be timed)
        var now = Date.now();

        if (DEBUG.enabled) {
            var profile_this_iter = now - start;
            profile += (profile_this_iter - profile) * 0.02;
        }

每个新值都会使您的读数比较接近0.02倍.显然你会想要调整一下.如果您读取持续时间为1ms的一半时间和0ms的一半时间(使用1ms分辨率计时器),这将允许您读取徘徊在0.5ms左右的平均值.

这显然不能替代适当的高分辨率计时器.但我使用这个简单的算法给我的javascript项目一个非蹩脚的FPS阅读.您将获得一个阻尼因子,您可以调整,具体取决于您是否需要更准确或更快速地响应更改.考虑到这一点的简单性,您很难找到更优雅的算法来为您提供良好的表示,而无需任何改进的输入数据.增强它的方法之一是根据采样频率(如果发生变化)调整逼近因子(0.02常数),这样可以使得较慢的测量速率比固定值更快地收敛.

@H_404_26@

猜你在找的JavaScript相关文章