作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
例如,如果我有 traces.txt 文件
,并且线程的状态如下:
"callActivityManagerForStrictModeDropbox" prio=5 tid=71 Suspended
| group="main" sCount=1 dsCount=0 obj=0x13394a00 self=0x42746c00
| sysTid=1659 nice=10 cgrp=bg_non_interactive sched=0/0 handle=0x7b491e80
| state=S schedstat=( 264773038 522311652 63568 ) utm=0 stm=26 core=1 HZ=100
| stack=0x7d40c000-0x7d40e000 stackSize=1036KB
从上面的数据中,有什么方法可以知道线程保持挂起状态的持续时间是多少?
最佳答案
没有状态更改时间戳。您无法判断线程处于其当前状态多长时间。
可以比较两个连续堆栈跟踪之间的 schedstat 和 utm/stm 以查看线程是否同时执行,但这对 ANR 没有真正帮助。
在 Dalvik 中,ANR 输出中处于 SUSPENDED 状态的线程在 ANR 处理程序唤醒之前本来处于 RUNNING 状态——它被暂停是为了收集 ANR 报告的堆栈跟踪。你的痕迹似乎来自 ART,我无法与之交谈,但如果它以类似的方式表现,我不会感到惊讶,在这种情况下你的问题很容易回答(“不是很长”)。
关于android - 如何从 traces.txt 中知道线程处于当前状态的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32485921/
我是一名优秀的程序员,十分优秀!