问题
Android 上 app 启动过程中 上百个线程创建,导致 thread list lock 可能出现竞争 block 严重。 子线程持lock,导致主线程阻塞等问题。
有人说做不了,其实是可以做的。
方案
app启动时间阶段 ,启动ebpf 获得,监听 ux线程 是waiter 的场景 ,如果耗时多 获得对应uaddr lock地址 和对应的 lock 的owner tid, futex对应的锁。 如果超过阈值 比如 30ms, 就boost owner tid 这个子线程。达到降低 ux线程等锁的时长概率。
夜雨聆风