外观
如何理解案例:Binder 耗时与服务端 CPU 时间?
标准回答
先确定9ms统计的是服务端CPU运行,还是整个处理切片;两者不能混用。把事务拆成等待服务线程、服务端运行、服务端阻塞、回复和客户端恢复几段,确定160ms主要落在哪。
若服务线程在等锁,找锁持有者;若池中线程都被其他长调用占住,分析请求来源与下游依赖;若回复已发出而主线程仍未运行,继续查客户端调度。也要核对关联的是同一个事务而非同名方法。
修复可能是缩短锁、减少IPC往返、拆分同步依赖或隔离服务任务。只增加线程池或改oneway都不能保证业务结果更早可用。
追问与回答
服务端9ms已经很快,能归因应用吗
不能。服务端排队与锁等待仍可能占大量时间。必须看完整经过时间与依赖,不按CPU时间判责任。
内容来源
- Android 与 AI 工程 Wiki · 原条目
q090