ART笔记 —— dvm_lock_sample

看ART代码过程中,看到LogContentionEvent函数,记起logcat events中有大量的dvm_lock_sample信息。

 dvm_lock_sample: [com.banyac.midrive.map,1,main,98,ReportUtil.java,119,-,189,19]
 进程名,主线程?线程名,锁等待时间,下个持有者文件名,行号,上个持有者文件名,行号,等待百分比
  1. 打印此LOG时,线程即将持有锁。
  2. 上一个持有者文件名为“-”时,表示与下个持有者在同一个文件中
  3. 发生锁等待时这个LOG有概率打印,等待百分比越大,概率越大。具体请看代码。

art/runtime/monitor.cc

void Monitor::Lock(Thread* self) {
  MutexLock mu(self, monitor_lock_);
  while (true) {
    if (owner_ == nullptr) {  // Unowned.
      owner_ = self;
      CHECK_EQ(lock_count_, 
01-04 04:56:36.834  1940  4979 I dvm_lock_sample: [system_server,1,binder:1940_F,880,OplusProxyWakeLock.java,887,void com.android.server.power.OplusProxyWakeLock.dropWakeLock(android.os.IBinder),,0,null,100] 01-04 04:56:36.880  1940  6473 I dvm_lock_sample: [system_server,1,binder:1940_1A,883,OplusProxyWakeLock.java,887,void com.android.server.power.OplusProxyWakeLock.dropWakeLock(android.os.IBinder),,0,null,100] 01-04 04:56:36.926  1940  5012 I dvm_lock_sample: [system_server,1,binder:1940_11,883,OplusProxyWakeLock.java,887,void com.android.server.power.OplusProxyWakeLock.dropWakeLock(android.os.IBinder),,0,null,100] 01-04 04:56:36.971  1940  7184 I dvm_lock_sample: [system_server,1,binder:1940_1F,3954,OplusProxyWakeLock.java,887,void com.android.server.power.OplusProxyWakeLock.dropWakeLock(android.os.IBinder),,0,null,100] 01-04 04:56:37.016  1940  7179 I dvm_lock_sample: [system_server,1,binder:1940_1D,882,OplusProxyWakeLock.java,887,void com.android.server.power.OplusProxyWakeLock.dropWakeLock(android.os.IBinder),,0,null,100] 01-04 04:56:37.061  1940  4716 I dvm_lock_sample: [system_server,1,binder:1940_8,881,OplusProxyWakeLock.java,887,void com.android.server.power.OplusProxyWakeLock.dropWakeLock(android.os.IBinder),,0,null,100] 01-04 04:56:37.106  1940  7177 I dvm_lock_sample: [system_server,1,binder:1940_1B,880,OplusProxyWakeLock.java,887,void com.android.server.power.OplusProxyWakeLock.dropWakeLock(android.os.IBinder),,0,null,100] 01-04 04:56:37.152  1940  2233 I dvm_lock_sample: [system_server,1,binder:1940_5,879,OplusProxyWakeLock.java,887,void com.android.server.power.OplusProxyWakeLock.dropWakeLock(android.os.IBinder),,0,null,100] 01-04 04:56:37.198  1940  7191 I dvm_lock_sample: [system_server,1,binder:1940_20,3085,OplusProxyWakeLock.java,887,void com.android.server.power.OplusProxyWakeLock.dropWakeLock(android.os.IBinder),,0,null,100] 01-04 04:56:37.243  1940  7178 I dvm_lock_sample: [system_server,1,binder:1940_1C,826,OplusProxyWakeLock.java,887,void com.android.server.power.OplusProxyWakeLock.dropWakeLock(android.os.IBinder),,0,null,100] 01-04 04:56:37.286  1940  4963 I dvm_lock_sample: [system_server,1,binder:1940_B,1600,OplusProxyWakeLock.java,887,void com.android.server.power.OplusProxyWakeLock.dropWakeLock(android.os.IBinder),,0,null,100] 01-04 04:56:37.332  1940  4715 I dvm_lock_sample: [system_server,1,binder:1940_7,787,PowerManagerService.java,4964,void com.android.server.power.PowerManagerService.startUidChangesInternal(),,0,null,100] 01-04 04:56:37.332  1940  5485 I dvm_lock_sample: [system_server,1,binder:1940_12,2339,OplusProxyWakeLock.java,887,void com.android.server.power.OplusProxyWakeLock.dropWakeLock(android.os.IBinder),,0,null,100] 01-04 04:56:37.375  1940  6340 I dvm_lock_sample: [system_server,1,binder:1940_17,3908,OplusProxyWakeLock.java,887,void com.android.server.power.OplusProxyWakeLock.dropWakeLock(android.os.IBinder),,0,null,100] 01-04 04:56:37.420  1940  4717 I dvm_lock_sample: [system_server,1,binder:1940_9,1601,OplusProxyWakeLock.java,887,void com.android.server.power.OplusProxyWakeLock.dropWakeLock(android.os.IBinder),,0,null,100] 01-04 04:56:37.465  1940  2231 I dvm_lock_sample: [system_server,1,binder:1940_3,2289,OplusProxyWakeLock.java,887,void com.android.server.power.OplusProxyWakeLock.dropWakeLock(android.os.IBinder),,0,null,100] 01-04 04:56:37.508  1940  2232 I dvm_lock_sample: [system_server,1,binder:1940_4,1600,OplusProxyWakeLock.java,887,void com.android.server.power.OplusProxyWakeLock.dropWakeLock(android.os.IBinder),,0,null,100] 01-04 04:56:37.553  1940  4979 I dvm_lock_sample: [system_server,1,binder:1940_F,673,OplusProxyWakeLock.java,887,void com.android.server.power.OplusProxyWakeLock.dropWakeLock(android.os.IBinder),,0,null,100] 01-04 04:56:37.599  1940  6473 I dvm_lock_sample: [system_server,1,binder:1940_1A,672,OplusProxyWakeLock.java,887,void com.android.server.power.OplusProxyWakeLock.dropWakeLock(android.os.IBinder),,0,null,100] 01-04 04:56:37.646  1940  5490 I dvm_lock_sample: [system_server,1,binder:1940_15,2196,PowerManagerService.java,2042,void com.android.server.power.PowerManagerService.releaseWakeLockInternal(android.os.IBinder, int),,0,null,100] 01-04 04:56:37.689  1940  6381 I dvm_lock_sample: [system_server,1,binder:1940_19,3067,OplusProxyWakeLock.java,887,void com.android.server.power.OplusProxyWakeLock.dropWakeLock(android.os.IBinder),,0,null,100] 01-04 04:56:37.734  1940  7179 I dvm_lock_sample: [system_server,1,binder:1940_1D,672,OplusProxyWakeLock.java,887,void com.android.server.power.OplusProxyWakeLock.dropWakeLock(android.os.IBinder),,0,null,100] 01-04 04:56:37.779  1940  6344 I dvm_lock_sample: [system_server,1,binder:1940_18,3056,OplusProxyWakeLock.java,887,void com.android.server.power.OplusProxyWakeLock.dropWakeLock(android.os.IBinder),,0,null,100] 01-04 04:56:37.821  1940  7177 I dvm_lock_sample: [system_server,1,binder:1940_1B,669,OplusProxyWakeLock.java,887,void com.android.server.power.OplusProxyWakeLock.dropWakeLock(android.os.IBinder),,0,null,100] 01-04 04:56:37.867  1940  1962 I dvm_lock_sample: [system_server,1,binder:1940_1,1502,OplusProxyWakeLock.java,887,void com.android.server.power.OplusProxyWakeLock.dropWakeLock(android.os.IBinder),,0,null,100] 01-04 04:56:37.909  1940  1963 I dvm_lock_sample: [system_server,1,binder:1940_2,2275,OplusProxyWakeLock.java,887,void com.android.server.power.OplusProxyWakeLock.dropWakeLock(android.os.IBinder),,0,null,100] 系统进程1940下的每个binder线程都各自释放一个唤醒锁,这能 说明什么
最新发布
12-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值