a91输入卡顿

“我的后羿怎么动不了!”在玩《王者荣耀》的时候最怕遇到团战时得跟幻灯片一样。对于应用也是这样我们经常会听到用户抱怨:“这个应用启动怎么那么慢?”“滑动的时候怎么那么”。 对用户来说内存占用高、耗费电量、耗费流量可能不容易被发现,但是用户对顿特别敏感很容易直观感受到。另一方面对于开发者来说,顿问题又非常难以排查定位产生的原因错综复杂,跟CPU、内存、磁盘I/O都可能有关跟用户当时的系统環境也有很大关系。 那到底该如何定义顿呢在本地有哪些工具可以帮助我们更好地发现和排查问题呢?这些工具之间的差异又是什么呢今天我来帮你解决这些困惑。 ## 基础知识 在具体讲顿工具前你需要了解一些基础知识,它们主要都和CPU相关造成顿的原因可能有千百种,不过最终都会反映到**CPU时间**上我们可以把CPU时间分为两种:用户时间和系统时间。用户时间就是执行用户态应用程序代码所消耗的时间;系统时间就是执行内核态系统调用所消耗的时间包括I/O、锁、中断以及其他系统调用的时间。 **1\. CPU性能** 我们先来简单讲讲CPU的性能考虑到功耗、体积这些因素,移动设备和PC的CPU会有不少的差异但近年来,手机CPU的性能也在向PC快速靠拢华为Mate 20的“麒麟980”和iPhone XS的“A12”已经率先使用领先PC的7納米工艺。 评价一个CPU的性能需要看主频、核心数、缓存等参数,具体表现出来的是计算能力和指令执行能力也就是每秒执行的浮点计算数和每秒执行的指令数。 由此可见Traceview属于instrument类型,它可以用来查看整个过程有哪些函数调用但是工具本身带来的性能开销过大,有时无法反映真实的情况比如一个函数本身的耗时是1秒,开启Traceview后可能会变成5秒而且这些函数的耗时变化并不是成比例放大。 在Android /uber/nanoscope)就能达到这个效果它的实现原理是直接修改Android虚拟机源码,在`ArtMethod`执行入口和执行结束位置增加埋点代码将所有的信息先写到内存,等到trace结束后才统一生荿结果文件 在使用过程可以明显感觉到应用不会因为开启Nanoscope而感到顿,但是trace结束生成结果文件这一步需要的时间比较长**另一方面它可以支持分析任意一个应用,可用于做竞品分析** 但是它也有不少限制: * 需要自己刷ROM,并且当前只支持Nexus 6P或者采用其提供的x86架构的模拟器。 *

我要回帖

更多关于 电脑运行卡顿怎么处理 的文章

 

随机推荐