cpu、fps 都已介紹過了,自然避免不了要介紹一波記憶體。
記憶體分為兩大類:ram 和 rom。
本篇所說的效能檢測-記憶體,主要說的就是 ram。
在你對某件事無從下手的時候,不妨去看看大佬們的寫法。
這個類我們或許都沒聽說過,不過從大佬們的原始碼中,不難發現,檢測記憶體的方法主要依賴於此類。
既然主要依賴此類,我們不妨看看此類主要功能?
/**
* process. the returned info is broken down by dalvik, native, and other. all results are in kb.
* 翻譯:這個類用於檢索關於這個程序的記憶體對映的各種統計資訊。返回的資訊包括 dalvik、native 和 other。所有結果都以kb為單位。
*/public
static
class
memoryinfo
implements
parcelable
從官方文件的解釋中我們可以看出,要檢測 ram 可以從這個類出發。
要想要使用 memoryinfo 來檢測 ram,我們首先要能夠獲取到 memoryinfo。
我們可以很輕鬆的發現 debug 類中有獲取 memoryinfo 的方法:
從上圖中可以看出,此方法對 android q 不太友好,因此我們只能在 sdk<=28 的時候使用此方法。
val memorydata: float
get()
else
}val totalpss = meminfo?
.totalpss ?:0if
(totalpss >=0)
}catch
(e: exception)
return mem
}
上文若存在問題,歡迎指出!
效能優化 記憶體優化建議(RAM)
原因 service的執行需要浪費記憶體,而且系統傾向保留這個service從而保留serivce的程序。解決方法 最後使用intentservice代替普通的service,當service不使用了就殺死。情景 當載入乙個bitmap的時候,將bitmap的大小設定為當前螢幕畫素的大小就可以了。原...
提公升Xcode編譯效能,RAM磁碟編譯
deriveddata xcode會在檔案系統中集中的快取臨時資訊。每次對xcode ios專案進行clean build或者在ios虛擬機器上launch,xcode都會在derivedata資料夾中進行讀寫操作。換句話說,就是將derived data的讀寫從硬碟移動到記憶體中。deriveda...
提公升Xcode編譯效能,RAM磁碟編譯
deriveddata xcode會在檔案系統中集中的快取臨時資訊。每次對xcode ios專案進行clean build或者在ios虛擬機器上launch,xcode都會在derivedata資料夾中進行讀寫操作。換句話說,就是將derived data的讀寫從硬碟移動到記憶體中。deriveda...