Skip to content
阅读进度

如何理解方法耗时与 CPU 运行时间? ​

返回 性能与稳定性 目录

标准回答 ​

不是。同步切片的持续时间是经过时间,里面可能包含锁、Binder、I/O等待以及Runnable排队。CPU time只统计线程实际运行的时间;还要区分用户态、内核态和该区间内其他线程的工作。

例如练习中一段100ms切片,主线程Running只有18ms、Runnable22ms、其余60ms等待,优化这段代码的计算量可能无法解决主要问题。应先明确等待的对象以及谁能解除等待,或为什么可运行后迟迟没获得CPU。

Simpleperf的CPU采样更适合查运行时热点,Perfetto的调度和依赖更适合解释“为什么没运行”。二者可结合,不能互相替代。

追问与回答 ​

CPU占用低为什么还会卡 ​

应用可能在等待系统服务、锁、磁盘或GPU,也可能只受单核瓶颈影响;整机平均利用率不能描述关键线程的处境。

参考资料 ​

内容来源 ​

用完整回答理解机制,用真实证据解释项目。