- 移動App性能評測與優(yōu)化
- TMQ專項測試團(tuán)隊
- 578字
- 2019-01-03 21:41:03
1.2.3 示例
1.1節(jié)已經(jīng)介紹了出現(xiàn)內(nèi)存泄漏時的問題及分析方法,在這里我們再以一個真實的例子介紹常見的幾種內(nèi)存問題和分析方法。
這是發(fā)生在手機管家4.x的某個版本上的案例,新版中加入了一些功能,開發(fā)人員估計新功能可能會分配幾萬字節(jié)到幾十萬字節(jié)的內(nèi)存,因此我們來進(jìn)行內(nèi)存方面的測試驗證。當(dāng)新功能的代碼合入后,我們發(fā)現(xiàn)應(yīng)用啟動后的內(nèi)存增長超過了2MB,這可大大超出了所有人的預(yù)期,一定是有什么地方出了嚴(yán)重的問題。
由于新加入了好幾個功能,因此要逐個去排查。如果某個新功能的代碼都在同一個package下,那么就可以使用MAT的過濾功能來驗證這部分代碼是否使用了內(nèi)存,如圖1-7所示。

圖1-7 使用MAT的過濾功能
經(jīng)過一番篩選排查,發(fā)現(xiàn)內(nèi)存中多出了一些新對象,多消耗了約300KB內(nèi)存,目前這并不能解釋內(nèi)存增長了2MB的原因。但仔細(xì)檢查多出來的對象并清理掉不用的部分也是有幫助的。
經(jīng)過檢查,這部分內(nèi)存是其他新功能使用的。對此我們需要進(jìn)一步確認(rèn),這些對象是否是有用的,還是臨時創(chuàng)建的。對于臨時創(chuàng)建不再使用的對象可以主動銷毀,而對于保存著信息將要用到的對象也可以進(jìn)行進(jìn)行壓縮裁剪,以進(jìn)一步減少占用的內(nèi)存。
在以上排查中,我們確實發(fā)現(xiàn)了一些問題,但將一些不用的對象清理后再執(zhí)行測試,總體內(nèi)存并沒有明顯減少。現(xiàn)在看來,Dalvik Heap里分配的內(nèi)存并沒有增加許多,說明問題是不能只在Dalivk Heap里就能解決的,也許是別的部分出現(xiàn)了問題?接下面我們就繼續(xù)深挖下去。
- 豎屏:短視頻營銷品效合一硬核方法論
- 淘寶網(wǎng)開店大全集(超值版)
- 社群營銷
- INSTANT E-commerce with OpenCart:Build a Shop
- 移動互聯(lián)下的超市升級
- 跨境電商:理論、操作與實務(wù)(微課版·第2版)
- 玩轉(zhuǎn)微信:商業(yè)分析+運營推廣+營銷技巧+實戰(zhàn)案例
- 電商創(chuàng)業(yè)--創(chuàng)業(yè)思維+實戰(zhàn)方法+案例解析
- 電商密碼
- 淘寶網(wǎng)開店與推廣
- E-mail營銷:網(wǎng)商成功之道
- O2O+精細(xì)化管理
- 區(qū)塊鏈與大數(shù)據(jù):打造智能經(jīng)濟(jì)
- 電商直播:視頻新玩法就這么簡單
- 拍拍網(wǎng)開店、經(jīng)營、管理一冊通