gpt4 book ai didi

Android dumpstate分析

转载 作者:行者123 更新时间:2023-11-30 03:27:23 24 4
gpt4 key购买 nike

我试图在我的应用程序中调试一个问题。唯一可能的问题是我的线程可能卡在某个地方(但它应该正在等待)..当仔细查看 duumpstate 日志时,我注意到以下日志

命令行:com.test.myapp

DALVIK 线程:(互斥体:tll=0 tsl=0 tscl=0 ghl=0)...

"pool-2-thread-1" prio=10 tid=20 WAIT
| group="main" sCount=1 dsCount=0 obj=0x426986e0 self=0x5ae85520
| sysTid=3211 nice=-8 sched=0/0 cgrp=apps handle=1520669672
| state=S schedstat=( 9170292 19258957 35 ) utm=0 stm=0 core=0
at java.lang.Object.wait(Native Method)
- waiting on <0x4268ed88> (a java.lang.VMThread) held by tid=20 (pool-2-thread-1)
at java.lang.Thread.parkFor(Thread.java:1231)
at sun.misc.Unsafe.park(Unsafe.java:323)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:159)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2019)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1052)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:780)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1013)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1073)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)

以上几行指向我怀疑的线程。DALVIK THREADS 在转储状态日志中意味着什么?是当前活着的线程还是活着的线程+已经活着的线程?state=S schedstat=( 9170292 19258957 35 ) utm=0 stm=0 core=0 是什么意思?是挂起状态吗? 等待 <0x4268ed88>(一个 java.lang.VMThread)--> 这是什么意思?它是在等待并活着吗?

最佳答案

根据日志,我能想到的可能触发 ANR 的唯一原因是:

据我所知,通常在 Java 中每个线程都与 2 个组件相关联。一个是程序计数器,另一个是垃圾收集器。所以每个线程都会有一个 gc 监视器贯穿始终。

- 等待 <0x4268ed88>(一个 java.lang.VMThread) 由 tid=20 (poo

VMThreads 理想地用于处理监控 gc 的这一方面,几乎是并行的。所以我能想到的是,对于你的场景,你的应用程序的某些组件正在尝试获取锁但无法获取,因为 VMThread 持有锁,尚未释放(可能是由于一些主要的 GC 操作),因此等待 vmthread释放锁。

您可能想要检查记录了 gc Activity 的主日志转储,这可能会让您更好地了解 gc 为什么如此占用该线程 CPU 时间,然后应用程序分析可能会有所帮助。只需检查。

关于Android dumpstate分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18031098/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com