上海市宝山区水产西路17号 zgenren@j909.vip

公司新闻

帧率统计为何要先合计帧数和时间:十二帧的时间加权统计·练习24

2026-11-01

看一段游戏画面是否流畅,要先明确统计对象。每一帧各自对应的瞬时帧率直接平均,通常不等于整段播放的总帧数除总耗时;耗时长的帧不能在时间统计中被忽略。

本篇使用一组可以手算或逐行复查的虚构游戏记录。先读清操作顺序与边界,再看完整过程;它不是某一款现有游戏的隐藏公式,也不要求读者安装工具。

规则与输入

给定十二帧的整数毫秒耗时,整体帧率定义为帧数乘一千再除总毫秒。另算每帧一千除该帧耗时的算术平均,两种值都用精确分数表示。没有丢帧、并行显示或等待时间未记入的情况。

十二帧耗时(毫秒):[59, 17, 18, 15, 23, 9, 15, 19, 21, 22, 13, 9]

逐步计算与结果

第1帧用时59毫秒,累计59毫秒,共1帧;累计整体帧率1000/59,瞬时帧率算术平均1000/59。两者分别使用时间权重与等帧权重。

第2帧用时17毫秒,累计76毫秒,共2帧;累计整体帧率500/19,瞬时帧率算术平均38000/1003。两者分别使用时间权重与等帧权重。

第3帧用时18毫秒,累计94毫秒,共3帧;累计整体帧率1500/47,瞬时帧率算术平均1185500/27081。两者分别使用时间权重与等帧权重。

第4帧用时15毫秒,累计109毫秒,共4帧;累计整体帧率4000/109,瞬时帧率算术平均446825/9027。两者分别使用时间权重与等帧权重。

第5帧用时23毫秒,累计132毫秒,共5帧;累计整体帧率1250/33,瞬时帧率算术平均10026980/207621。两者分别使用时间权重与等帧权重。

第6帧用时9毫秒,累计141毫秒,共6帧;累计整体帧率2000/47,瞬时帧率算术平均12200650/207621。两者分别使用时间权重与等帧权重。

第7帧用时15毫秒,累计156毫秒,共7帧;累计整体帧率1750/39,瞬时帧率算术平均9671700/161483。两者分别使用时间权重与等帧权重。

第8帧用时19毫秒,累计175毫秒,共8帧;累计整体帧率320/7,瞬时帧率算术平均51707825/876622。两者分别使用时间权重与等帧权重。

第9帧用时21毫秒,累计196毫秒,共9帧;累计整体帧率2250/49,瞬时帧率算术平均4781768300/82840779。两者分别使用时间权重与等帧权重。

第10帧用时22毫秒,累计218毫秒,共10帧;累计整体帧率5000/109,瞬时帧率算术平均5720171680/101249841。两者分别使用时间权重与等帧权重。

第11帧用时13毫秒,累计231毫秒,共11帧;累计整体帧率1000/21,瞬时帧率算术平均844872159400/14478727263。两者分别使用时间权重与等帧权重。

第12帧用时9毫秒,累计240毫秒,共12帧;累计整体帧率50,瞬时帧率算术平均743341447300/11846231397。两者分别使用时间权重与等帧权重。

总时间240毫秒,实际整段帧率50,不能用另一列的算术平均值替代。

怎样独立复核

累计时间必须等于所有帧耗时之和。整体帧率也等于各瞬时帧率按该帧耗时加权的平均;把每个权重与瞬时值相乘后,恰好都贡献一千除总时间。

平均帧率不能单独描述卡顿。同样总耗时可以分配得均匀,也可以集中在少数很慢的帧上。这里比较的是统计口径,不推断某台设备的性能原因,也不把精确分数当作显示器实际能显示的小数精度。

练习时可以只改变一个输入,再预测哪一步会最先改变。保留中间记录,检查空状态、相等数值和刚好落在边界的情况。最终结果碰巧相同,并不能证明两个过程等价;反过来,采用不同规则得出不同结果,也不应立即视作程序故障。