ANR traces文檔解析

一瘸味、前言

此文主要記錄發(fā)生ANR時生成的traces.txt文檔,便于記憶分析彻坛。

ANR中的traces.txt文檔是利用了Linux信號機制,APP監(jiān)聽到主線程卡頓的時候踏枣,進程便會發(fā)送SIGQUIT的信號昌屉,然后作為相對應(yīng)的操作,生成日志茵瀑。所以通過以下命令间驮,向進程發(fā)送信號,也會有同樣的效果马昨。

adb shell kill -3 [pid]

二竞帽、traces.txt

以下是簡略的traces.txt文件:

----- pid 1528 at 2019-07-22 15:12:00 -----
Cmd line: com.idata.mdm
Build fingerprint: 'alps/full_bd6737t_35g_a_m0/bd6737t_35g_a_m0:6.0/MRA58K/1528710497:user/dev-keys'
ABI: 'arm'
Build type: optimized
Zygote loaded classes=4112 post zygote classes=133
Intern table: 59969 strong; 17 weak
JNI: CheckJNI is off; globals=311 (plus 360 weak)

.......

Total time spent in GC: 3.346s
// GC的吞吐量
Mean GC size throughput: 50MB/s  
Mean GC object throughput: 674461 objects/s
Total number of allocations 2303118
Total bytes allocated 177MB
Total bytes freed 168MB
Free memory 303KB
Free memory until GC 303KB
Free memory until OOME 118MB
Total memory 9MB
Max memory 128MB
Zygote space size 2MB
Total mutator paused time: 143.861ms
Total time waiting for GC to complete: 693.458us
// GC發(fā)生的次數(shù)
Total GC count: 190
// GC消耗的時間
Total GC time: 3.346s
// 阻塞GC發(fā)生的次數(shù) 阻塞GC執(zhí)行之時會暫停其他的線程
Total blocking GC count: 0
// 阻塞GC消耗的時間
Total blocking GC time: 0
Histogram of GC count per 10000 ms: 0:36478,1:126,3:4,4:10,5:1,6:1
Histogram of blocking GC count per 10000 ms: 0:36620

// main 代表線程名稱
// prio = 優(yōu)先級  
// Native = 代表當前線程的狀態(tài),Native代表執(zhí)行JNI代碼
"main" prio=5 tid=1 Native
//group是線程組名稱 sCount是線程被掛起的次數(shù) dsCount是線程調(diào)試狀態(tài)下掛起的次數(shù)
//obj是這個線程的Java對象的地址 self表是這個線程Native的地址鸿捧。
  | group="main" sCount=1 dsCount=0 obj=0x758f72e8 self=0xb7ce4b78
// sysTid 是此線程在內(nèi)核中對應(yīng)的線程ID 
// nice 代表著struct_task任務(wù)被調(diào)度的優(yōu)先級
// cgrp是調(diào)度組 sched分別是線程的調(diào)度策略和優(yōu)先級 handle是線程的處理函數(shù)地址屹篓。
  | sysTid=1528 nice=0 cgrp=default sched=0/0 handle=0xb6f80de4
//state = native 線程狀態(tài) schedstat值來自于/proc/[pid]/task/[tid]/schedstat,分別是cpu上執(zhí)行的時間匙奴、線程的等待時間和線程執(zhí)行的時間片
// utm是線程用戶態(tài)下執(zhí)行時間 stm是內(nèi)核態(tài)下執(zhí)行時間(單位是jiffies)  HZ可推出執(zhí)行時間 stm = 747*1000/100
  | state=S schedstat=( 31041259455 5111094667 27821 ) utm=2357 stm=747 core=0 HZ=100
  | stack=0xbe3a6000-0xbe3a8000 stackSize=8MB
  | held mutexes=
  at android.os.MessageQueue.nativePollOnce(Native method)
  at android.os.MessageQueue.next(MessageQueue.java:328)
  at android.os.Looper.loop(Looper.java:164)
  at android.app.ActivityThread.main(ActivityThread.java:5765)
  at java.lang.reflect.Method.invoke!(Native method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)

三堆巧、線程模型及線程狀態(tài)

對于上述線程狀態(tài),相對于java線程狀態(tài)泼菌,Linux細化了很多狀態(tài)谍肤,這樣更便于分析當前的狀態(tài)。

java中的線程和操作系統(tǒng)內(nèi)核中的線程并不是等價關(guān)系灶轰。他們之間存在著映射關(guān)系谣沸,對Android來說,java中的線程和內(nèi)核的線程是一對一關(guān)系笋颤。


線程狀態(tài)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末乳附,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子伴澄,更是在濱河造成了極大的恐慌赋除,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件非凌,死亡現(xiàn)場離奇詭異举农,居然都是意外死亡,警方通過查閱死者的電腦和手機敞嗡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門颁糟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來航背,“玉大人,你說我怎么就攤上這事棱貌【撩模” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵婚脱,是天一觀的道長今魔。 經(jīng)常有香客問我,道長障贸,這世上最難降的妖魔是什么错森? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮篮洁,結(jié)果婚禮上涩维,老公的妹妹穿的比我還像新娘。我一直安慰自己嘀粱,他們只是感情好激挪,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著锋叨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪宛篇。 梳的紋絲不亂的頭發(fā)上娃磺,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機與錄音叫倍,去河邊找鬼偷卧。 笑死,一個胖子當著我的面吹牛吆倦,可吹牛的內(nèi)容都是我干的听诸。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蚕泽,長吁一口氣:“原來是場噩夢啊……” “哼晌梨!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起须妻,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤仔蝌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后荒吏,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體敛惊,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年绰更,在試婚紗的時候發(fā)現(xiàn)自己被綠了瞧挤。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锡宋。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖特恬,靈堂內(nèi)的尸體忽然破棺而出执俩,到底是詐尸還是另有隱情,我是刑警寧澤鸵鸥,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布奠滑,位于F島的核電站,受9級特大地震影響妒穴,放射性物質(zhì)發(fā)生泄漏宋税。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一讼油、第九天 我趴在偏房一處隱蔽的房頂上張望杰赛。 院中可真熱鬧,春花似錦矮台、人聲如沸乏屯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辰晕。三九已至,卻和暖如春确虱,著一層夾襖步出監(jiān)牢的瞬間含友,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工校辩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留窘问,地道東北人。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓宜咒,卻偏偏與公主長得像惠赫,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子故黑,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1.一個進程對應(yīng)一個應(yīng)用程序2.多進程有什么作用倍阐?單進程的計算機只能做一件事計算機的CPU是能在某個時間點上做一件...
    dgg99閱讀 146評論 0 1
  • Java學習路線 簡單學了遍Java概疆,發(fā)現(xiàn)Java其實還是要學習很多東西的,有些也比較難以理解峰搪,簡單整理了下岔冀,為第...
    小菜小半碟閱讀 202評論 0 1
  • Android系統(tǒng)每次發(fā)生ANR后,都會在/data/anr/目錄下面輸出一個traces.txt文件,這個文件記...
    HuangTao_Zoey閱讀 30,309評論 2 49
  • 文 ‖ 愛碼字的小仙女兒 先分享一首木心的《從前慢》嫉柴。 記得早先少年時,大家誠誠懇懇奉呛,說一句是一句...
    Ai咘咘咘閱讀 750評論 0 2
  • 看到好多人的名字后都有一個紅色的嘆號计螺,點開后才知道是日更達人的圖標。 似乎這個圖標是一種身份的象征瞧壮,看看自己名字后...
    冷榆閱讀 478評論 9 12