Total time breakdown:依据关键tag拆分,比如binderapplication/activitystart/doframe
找出时间差异大tag的cpu status :Running/Runnable/Sleeping/Uninterruptible sleep
Running:SW-diff-check 或 cpu能力(大小核或频率)
Runnable:schedule 或 cpuloading重(列出top 5 thread)
Sleeping:wakeup event
Memory:kswapd 排名top 3
BlockIO:IO performance
Activity Launcher Flow Chart
Activity Resume Flow Chart
1、Running time
-
关注tag launch flow不同->google版本升级/UI不同
-
列出diff时间段对比/测试机各个function level差别
-
APK版本是否一致
-
测试机和对比机软件大版本是否一致
-
DriverOnly是否输对比机
-
Check table,检查diff
2、Runnable
- Top thread做优化,如果是apk,可以卸载再测试
3、Sleeping
唤醒源查找
第一步:Bindapplication sleeping时间长-> wait for binder reply
第二步:Check wakeup event
Binder reply sleeping -> wakeup from 2566 (gservice 后台app升级)
4、Uninterruptible sleep - memory
-
Uninterruptible sleep caused by do_page_fault à low memory
-
Memory parameter check point
-
Lowmemory check point
-
Memory tuning
-
进程优先级与oom adj关系
5、Uninterruptble sleep -blockio
- Uninterruptible sleep caused by waiton_page_bit_killable à IO
- Io parameter check point
- Perlyzer Block TAG:trace format