你的debug包在Android 14变卡了吗?|得物技术
一、背景 我的App怎么这么卡,谁在代码里下毒了! 有一天突然发现debug包运行变的特别卡顿,经过下面的简单测试发现debug包在Android 14上出了问题。 二、问题排查纪录 常规手段排查 使用了systrace以及内部的debug包 trace工具dutrace进行排查。 结论:CPU空闲,主线程无明显阻塞,看上去就是纯方法执行耗时。 发现怀疑点 第一步排查过程中没有特别大的收获,但是我用dutrace工具排查时发现了一个异常现象。这里简单介绍一下dutrace的实现原理: dutrace是利用inline hook在artmethod的执行前后加上atrace的点再通过perfetto ui工具展示。有以下优点: 1. 支持线下分析函数执行流程,函数耗时。 2. 在分析函数调用流程下: a. 可以查看整个过程的函数调用(包括framework函数); b. 能够指定监控的函数和线程有效过滤无用trace; c. 动态配置不需要重新打包。 3. 可使用现成的UI分析工具,有系统关键线程的函数调用,例如渲染耗时、线程锁,GC 耗时等,还有 I/O 操作、CPU 负载等事件。 ...



