記憶體分析與記憶體流失檢測,記憶體流失檢測

來源:互聯網
上載者:User

記憶體分析與記憶體流失檢測,記憶體流失檢測
Android


查看所有進程記憶體佔用情況


(1)串連裝置,開啟USE偵錯模式

(2)開啟命令列,執行命令:adb shell procrank


欄位說明:

PID:進程id

VSS(Virtual Set Size): 虛擬耗用記憶體(包含共用庫佔用的記憶體)

RSS(Resident Set Size):實際使用實體記憶體(包含共用庫佔用的記憶體)

PSS(Proportional Set Size): 實際使用的實體記憶體(比例分配共用庫佔用的記憶體)

USS(Unique Set Size): 進程獨自佔用的實體記憶體(不包含共用庫佔用的記憶體)

cmdline:進程名稱


查看Heap資訊


1.開啟Eclipse的DDMS視窗,選擇需要查看的應用

2.點擊Update Heap


3.點擊Cause GC按鈕,觸發Java的記憶體回收機制,點擊後會在Heap視窗顯示該進程的堆資訊,並定時重新整理。


欄位說明:

Heap Size:堆記憶體總大小

Allocated:已使用的堆記憶體大小

Free:閒置堆記憶體大小

Used:已使用堆記憶體大小百分比

Objects:對象個數


相關文章:Android最佳效能實踐(二)——分析記憶體的使用方式


記憶體流失偵查工具(VLD)


工具

1:https://vld.codeplex.com/releases

2:http://pan.baidu.com/s/1gd7vQnD


安裝完成後,使用visual studio建立的項目,預設會包含vld的標頭檔目錄。


而且bin目錄下的運行庫已經自動添加到Path變數中。



我們需要做的只是在源碼中#include <vld.h>,一般在項目入口檔案中包含。


這裡,我手動製造了記憶體流失。在map.cpp的第10行和第12行。


程式支行結束後,檢測到動態分配的記憶體沒有delete或free,在輸出—調試視窗中會輸出其記憶體流失相關的資訊。


這裡提示在main.cpp第10行發生了記憶體流失,泄漏了8個位元組,點擊可直接定位到記憶體流失的那行代碼。Block後面的數字表面第幾處記憶體流失。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.