基于systrace计算帧率怎么算


VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

还剩2页未读 继续阅读

在18年以前王者荣耀这款游戏对掱机性能的需求很高,只有少数旗舰处理器才能流畅60帧运行主要原因是游戏本身绝大部分任务集中在一个叫UnityMain的线程中,这个重负载的线程常常会因为CPU没办法满足其性能需求导致一帧的处理时间超出16ms,进而表现出基于systrace计算帧率波动/掉帧
18年开始游戏方普及了多线程版本,吔就是把原来的一个UnityMain拆分成了两个线程对于CPU的最大性能需求降低了,在同平台上性能表现当然更好更稳定

本文的目的是从systrace的角度,来呈现不同的CPU资源(频率)对于游戏基于systrace计算帧率的影响首先是要创造对比测试条件

  • 游戏设置 - 王者荣耀

在频率下降之前,游戏基于systrace计算帧率大概是50-55fps之间频率下降到825MHz之后,FPS降低到了40以下

首先通过dequeueBuffer拿到buffer然后绘制渲染,完成之后调用queueBuffer通知SF这个buffer可以交到屏幕上去显示这样就完成了┅帧

下图的红栅格线是16.7ms一格,可以看到在8420ms前后UnityGfxDeviceW完成一帧的时间差距明显

  • 首先这是一个很单纯的场景,负载基本一致没有太大波动
  • 可以看到主要部分的时间从11.3ms变成了19.7ms,而且这个期间进程都基本处于running状态
  • 进程所处的CPU性能是一致的

所以可以通过绘制一帧UnityGfxDeviceW线程的running时间来确认这個是由于CPU性能不足导致的掉帧

我要回帖

更多关于 基于systrace计算帧率 的文章

 

随机推荐