外观
如何理解方法耗时与 CPU 运行时间?
标准回答
不是。同步切片的持续时间是经过时间,里面可能包含锁、Binder、I/O等待以及Runnable排队。CPU time只统计线程实际运行的时间;还要区分用户态、内核态和该区间内其他线程的工作。
例如练习中一段100ms切片,主线程Running只有18ms、Runnable22ms、其余60ms等待,优化这段代码的计算量可能无法解决主要问题。应先明确等待的对象以及谁能解除等待,或为什么可运行后迟迟没获得CPU。
Simpleperf的CPU采样更适合查运行时热点,Perfetto的调度和依赖更适合解释“为什么没运行”。二者可结合,不能互相替代。
追问与回答
CPU占用低为什么还会卡
应用可能在等待系统服务、锁、磁盘或GPU,也可能只受单核瓶颈影响;整机平均利用率不能描述关键线程的处境。
参考资料
内容来源
- Android 与 AI 工程 Wiki · 原条目
q027