外观
如何理解Runnable 延迟的成因?
标准回答
Runnable表示线程已经具备运行条件,但没有立即执行。查看唤醒时间、真正上CPU时间、所在核心及同核心竞争线程,确认是否大量工作抢占或关键线程只能使用繁忙的小核。
继续查优先级、调度策略、进程所处的task profile、cpuset或quota限制、CPU在线状态,以及厂商调度和功耗策略。总CPU负载不高也可能有局部排队;频率低主要影响获得CPU后的执行速度,不能直接等同于调度等待。
优化应指向证据,例如减少后台并发、修正错误分组、消除不必要唤醒。没有权限或平台证据时,不建议直接把线程设成最高优先级。
追问与回答
怎样算唤醒延迟
从线程进入可运行状态到对应的首次实际运行计算,处理重复唤醒和生命周期;Trace中结合sched_waking和sched_switch,不能随便拿两个相邻事件相减。
参考资料
内容来源
- Android 与 AI 工程 Wiki · 原条目
q028