- 移動App性能評測與優(yōu)化
- TMQ專項測試團隊
- 537字
- 2019-01-03 21:41:03
1.3 新問題的進一步挖掘
上一節(jié)介紹了內(nèi)存測試的基本流程,講述了如何發(fā)現(xiàn)并處理簡單的內(nèi)存問題。對于Dalvik Heap部分總結(jié)出了一些常見的問題模式,以及如何使用工具識別和處理這些常見的內(nèi)存問題。
當簡單問題不再是問題的時候,我們就會開始遇上一些奇怪問題了,類似于下面這些:
“我們這個版本引入了一個挺簡單的庫,內(nèi)存就漲了2MB。”
“這些代碼只是初始化了幾個對象,還沒有開始用呢。”
“我只是改了一行代碼,沒有創(chuàng)建新對象。”
“我一行代碼都沒改,怎么會漲呢?”
這次出現(xiàn)的問題就是這樣一類問題,新版本的Dalvik Heap Pss內(nèi)存出現(xiàn)了2MB左右的增長,但Dalvik Heap Alloc只增長了273KB,而從Dalvik Heap Free也能看出大部分增長的內(nèi)存是處于空閑狀態(tài)的。
對問題經(jīng)過一段時間的觀察,我們有以下幾點發(fā)現(xiàn):
·經(jīng)過較長時間待機后也沒有被釋放回系統(tǒng)。
·有幾處代碼會導(dǎo)致內(nèi)存增長,只要將這些代碼屏蔽掉,內(nèi)存使用情況就下降到正常水平。
·這些代碼分配的內(nèi)存并不多,甚至有些地方是不需要分配內(nèi)存的。
·有些代碼并不是這個版本新加入的,已經(jīng)存在較長時間了。
·使用裁剪功能的方法編譯并分析內(nèi)存后,基本可以確定是新加入代碼消耗了內(nèi)存,但并沒有內(nèi)存泄漏,代碼經(jīng)過審查也沒有發(fā)現(xiàn)問題。
這個結(jié)果讓我們陷入了困惑,常用的方法找不出問題,說明有更深層次的原因。接下來要從更底層的DVM虛擬機尋找問題。
- 企業(yè)微信實戰(zhàn)解密:營銷、運營與微信電商O2O
- 出口跨境電商:速賣通SEO精準引流與數(shù)據(jù)化運營
- Magento 2 Development Quick Start Guide
- O2O營銷與運營完全攻略(案例實戰(zhàn)版)
- 社群營銷
- 互聯(lián)網(wǎng)營銷實戰(zhàn)寶典
- 電子商務(wù)經(jīng)典案例分析
- O2O融合:打造全渠道營銷和極致體驗
- 網(wǎng)店客服
- 短視頻運營與案例分析(微課版)
- 淘寶網(wǎng)開店與推廣
- 微商手記:39位成功微商的經(jīng)驗談
- 如何成為一個運營大牛
- 互聯(lián)網(wǎng)+跨界顛覆
- 電子商務(wù)專業(yè)辦學特色的探索與實踐