一般來說記憶體占用大小有如下規律:vss >= rss >= pss >= uss
前兩個命令只能查到vss rss記憶體占用資訊
而後面兩個命令可以查出 pss uss記憶體占用.
dumpsys meminfo 可以查出native和dalvik分別占用多少記憶體
dumpsys 用來給出手機中所有應用程式的資訊,並且也會給出現在手機的狀態。
dumpsys [option]
meminfo 顯示記憶體資訊
cpuinfo 顯示cpu資訊
account 顯示accounts資訊
activity 顯示所有的activities的資訊
window 顯示鍵盤,視窗和它們的關係
wifi 顯示wifi資訊
首先了解兩個概念:
通常我們需要關注pss total和private dirty.
多執行緒的應用在android
開發中是非常常見的,常用方法主要有:
繼承thread類
實現runnable介面
handler
asynctask
handlerthread
內部原理 = thread類 + handler類機制,即:
通過繼承thread類,快速地建立1個帶有looper物件的新工作執行緒
通過封裝handler類,快速建立handler & 與其他執行緒進行通訊
5. 使用步驟
handlerthread的本質:繼承thread類 & 封裝handler類
handlerthread的使用步驟分為5步
// 步驟1:建立handlerthread例項物件
// 傳入引數 = 執行緒名字,作用 = 標記該執行緒
handlerthread mhandlerthread = new handlerthread("handlerthread");
// 步驟2:啟動執行緒
mhandlerthread.start();
// 步驟3:建立工作執行緒handler & 複寫handlemessage()
// 作用:關聯handlerthread的looper物件、實現訊息處理操作 & 與其他執行緒進行通訊
// 注:訊息處理操作(handlermessage())的執行執行緒 = mhandlerthread所建立的工作執行緒中執行
handler workhandler = new handler( handlerthread.getlooper() )
});// 步驟4:使用工作執行緒handler向工作執行緒的訊息佇列傳送訊息
// 在工作執行緒中,當訊息迴圈時取出對應訊息 & 在工作執行緒執行相關操作
// a. 定義要傳送的訊息
message msg = message.obtain();
msg.what = 2; //訊息的標識
msg.obj = "b"; // 訊息的存放
// b. 通過handler傳送訊息到其繫結的訊息佇列
workhandler.sendmessage(msg);
// 步驟5:結束執行緒,即停止執行緒的訊息迴圈
mhandlerthread.quit();
記憶體耗用分析 VSS RSS PSS USS
記憶體占用大小有如下規律 vss rss pss uss vss virtual set size 用處不大 虛擬耗用記憶體 包含共享庫占用的記憶體 rss resident set size 用處不大 實際使用物理記憶體 包含共享庫占用的記憶體 pss proportional set size ...
解決PHP陣列記憶體耗用太多的問題
一般來說,php陣列的記憶體利用率只有 1 10,也就是說,乙個在c語言裡面100m 記憶體的陣列,在php裡面就要1g。特別是在php作為後台伺服器的系統中,經常會出現記憶體耗費太大的問題。因為這個是語言的問題,常規方案比較難以解決。下面是一種通過string 解決的方案。total 100000...
python 記憶體分析 python 記憶體分析
1 改原始碼重新編譯列印相關資訊 obmalloc.c 檔案中列印 maxarenas,值為當前環境分配 arena 個數 分配 arena 時並沒有馬上分配對應的pools,故對於每乙個 arena,nfreepools 和 ntotalpools 為分配pool的可用pool數和總pool數。i...