gpu呈现模式分析柱状图无故爆表的原因

android开发估计都会用gpu呈现模式分析来看下app运行时候的表现,不过最近遇到一个奇怪的现象,配置很好的android机器,例如三星Galaxy和pixel2,都是四五千的机器,在一个app的页面gpu呈现模式分析柱状图却会稳定的超过绿线,熟悉android的应该知道这是帧率不足的表现,应该优化。不过同样的页面在一个低端的机器例如魅蓝却不会出现这种状况,这个很是郁闷。在RecyclerView滑动的时候高端机器和低端机器才会符合预想的结果,pixel2的柱状图顶部离绿线非常远。

具体分析这个页面为啥会一直在绘制,因为不绘制的话图是不会走的,发现是EditText获取到了焦点进而光标一直闪动,这个是完全正常的行为。我又在其他app,例如短信,有EditText的页面发现了与自己app完全一样的表现,大概可以确定和app无关。高端机器都是android 8.0的版本,这个大概率是系统的原因。

在万能的google下,终于找到了解释:

https://www.raizlabs.com/dev/2017/06/the-curious-case-of-systrace-reporting-jank-on-an-edittext/

android8.0后为了省电的考虑,kernel中加入了一种机制,就是project butter

Project Butter was an undertaking by the Android team that started in Android 4.1 Jelly Bean in an effort to improve the touch latency and animation performance on Android devices. One of the ways this was achieved was by doing some clever CPU scaling which would increase the clock speed upon user input. 

这种机制也就是可以想象的限制cpu频率啦,在用户和终端交互的情况下,cpu会高频率运行,在非交互一段时间后cpu会降频。user input对手机端来说基本就是触摸屏操作。很简单的实验,在app页面不停的点击一个没有处理click的View,gpu呈现模式柱状图会瞬间落下成为正常状态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值