binder_sample:
监控每个进程中主线程中的binder_transaction中的耗时情况. 当超过阈值时, 则输出相应的目标调用信息
1901 1901 I binder_sample: [com.android.internal.telephony.ITelephonyRegistry,10,11,com.android.phone,2]
主线程: 1901
执行ITelephonyRegistry接口
对应的方法 transaction code 为10
所花费的时间为11ms
该block所在的包是com.android.phone
sample比例为2
dvm_lock_sample
当某个线程等待lock的block住的时间超过阈值,则输出当前的持锁状态信息
1389 7526 I dvm_lock_sample: [system_server,1,Binder:1389_8,59,BatteryStatsService.java,521,void com.android.server.am.BatteryStatsService.noteStopWakelock(int, int, java.lang.String, java.lang.String, int),BatteryExternalStatsWorker.java,508,void com.android.server.am.BatteryExternalStatsWorker.updateExternalStatsLocked(java.lang.String, int, boolean, boolean, boolean),lock <0x0383ae62> (a com.android.internal.os.BatteryStatsImpl) held by thread 1590 (batterystats-worker),11]
am_lifecycle_sample:
当app在主线程中的生命周期回调方法执行超过阈值,则输出信息
8203 8203 am_lifecycle_sample: [0, com.android.systemui, 114, 3837]
pid: 8203 com.android.systemui 在messageCode=114方法中 耗时 3.837s
(其他messageCode 见ActivityThread.H类)
binder thread:
当system server 等进程的线程池使用完, 无空闲线程时, 则binder 通信处于饥饿状态, 饥饿状态超过一定的阈值, 则输出信息
3438 3560 E IPCThreadState: binder thread pool (15 threads) starved for 20427 ms
线程池满的状态超过20s