日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > Android內存泄露分析簡要思路

Android內存泄露分析簡要思路

來源:程序員人生   發布時間:2015-04-15 08:38:55 閱讀次數:5634次


工作中遇到挺多需要分析內存泄漏問題的情況,現在大致扼要寫下思路,等以后時間相對照較充裕再進行補充。


1.明白內存泄漏的判斷根據?

個人總結為:延續增加,只增不減!

理解1下這8個字,配合幾個命令和工具來肯定1下你的利用是不是存在內存泄漏問題,這是很關鍵的,如果1開始就判斷毛病了,那末沒有繼續往下進行的理由。

命令以下: 

adb shell

dumpsys meminfo 利用包名 [固然,比較粗略地話,可以用adb shell procrank]

這時候候你可以看到1個內存使用情況表



而我們首先關注的是TOTAL這個值,比方你會履行某個腳本,或Monkey在不斷操作你的利用,你可以隔半個小時視察1次TOTAL的情況,如果延續增加,那末10有89是有內存泄漏的問題了,但是也其實不是絕對,這時候候你就要配合上DDMS工具來做分析了。(DDMS里面有1項Heap,里面可以Cause GC,如果你發現你履行了GC以后,照舊內存沒有甚么太大的減少,那末恭喜你,這部份內存泄漏了。)


2.根據第1步所論述的1個情況,大概可以判斷出是不是有內存泄漏,那末接著需要做甚么呢?

如果內存泄漏,那末我們該做些甚么呢?

思路:一定我們想要找到泄漏點,那末如何找到?


(1). 你需要抓取hprof文件,這個文件可以顯現出1些內存的使用情況,不過切記,你別清除進程再來抓這個文件,然后配合著MAT把這個hprof文件分析了

(MAT分析hprof文件的這方面知識網上太齊全了,讀者們可以自己去學習1下哈,這里就不累墜)


(2).如果MAT分析出來的東東,你實在看不出甚么貓膩,那末再次恭喜你,你中大招了。

這時候候你要繼續視察dumpsys meminfo 包名, 輸出的結果信息,關注點放在 UnKnown那1行 和 Native Heap 那1行,關注Heap Alloc 或 Pss Total, 

如果你的總TOTAL1直再增加,但是是由于這兩行的增加,那末這個問題你不需要再繼續在MAT上花時間了,由于這類內存泄漏問題,出在Native層(C)

那末你需要去找你程序中使用到JNI的地方,so庫或其他1些特殊調用上,分析它們是不是可能造成內存泄漏問題。


(3)固然興許你照舊沒有頭緒,那末沒關系,另外一個命令就是為了你而存在的,(首先某個利用的PID號, 用dumpsys meminfo 包名,那邊已可以查到)

比方我上面那個mms, PID號為2786, 接著adb shell showmap -a PID號 (adb shell showmap -a 2786)

然后根據結果[....]這的信息,在去google上面找關鍵字, 比方:[ anon ] bash的堆


(4)當你終究還是不知道是由哪邊的.so庫引發的話,你可以查看下Native Heap的內存分配情況,這時候候你照舊需要借助DDMS,

需要先履行以下命令:

adb shell setprop libc.debug.malloc 1

adb shell stop

adb shell start


然后你還需要改1下eclipse中的配置參數值【由于如果你不配置的話,你的DDMS打開默許是看不到Native Heap那個Tab項的】

在ddms.cfg文件(實在找不到的話,就用Everything搜索下吧)最后增加1行native=true并save。ddms.cfg位于c:Usersxxx.android目錄下。

在Device當選擇好你要的利用的包名項,然后按下Snapshot按鈕, 就能夠視察到Native Heap的使用情況了,然后反復履行腳本,再視察視察,你會找到你需要的東西的。


(5)內存泄漏的問題可能很復雜,但是有的時候有了這些技能,相對更重要。所以第(5)小點,額外再提供1些其他的命令技能,幫助查找另外的情況出現內存泄漏的問題。

1.  adb shell dumpsys activity    查詢activity棧的情況(曾遇到過,就是activity1直堆積,致使的內存溢出OOM)

        2.  adb shell dumpsys cpuinfo

        3.  adb shell dumpsys battery

 

如果你在這方面有自己其他的1些方法,那末也無妨留言跟大家分享下!


轉載請注明:http://blog.csdn.net/ljphhj/article/details/44966023

轉載于 胖虎 CSDN



生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 在线亚洲一区 | 成人网址在线观看 | 91精品中文字幕一区二区三区 | 精品视频首页 | 91久久久久久久久 | 欧美日韩国产精品成人 | 成人网在线观看 | 国产一区中文字幕 | av中文在线资源 | 亚洲二区免费 | 成人a级| 久久久精品国产 | 国产精品久久久av | 一区在线视频 | 九一在线看 | 久久综合av| 精品国产一区二区三区麻豆小说 | 日韩欧美自拍 | 超碰97人人干 | 91精品久久久久久久久青青 | 99热在线观看 | 中文一区在线 | av免费播放| 全部免费毛片在线播放网站 | 日韩亚州 | 在线观看成人网 | 黄色在线观看视频网站 | 亚洲黄视频 | 国产欧美一区二区三区在线看 | 国产成人福利 | 日本性网站 | 国产精品久久久 | 在线播放国产一区二区三区 | 日日夜夜精品网站 | 日本视频在线播放 | 日韩欧美国产视频 | 欧美人妖在线 | 亚洲 欧美 日韩在线 | 久久人人网| 国产疯狂做受xxxx高潮 | 国产精品18久久久 |