VMRuntime.getRuntime().setMinimumHeapSize(4 * 1024 * 1024); android 堆內存

今天早上剛看代碼就遇到這個東西,VMRuntime.getRuntime().setMinimumHeapSize(4 * 1024 * 1024);剛開始一片迷茫,經過學習與研究發現,其實這個是強制定義自己軟件的堆內存大小,我們使用Dalvik提供的 dalvik.system.VMRuntime類來設置最小堆內存爲例:

       private final static int CWJ_HEAP_SIZE = 6* 1024* 1024 ;

       VMRuntime.getRuntime().setMinimumHeapSize(CWJ_HEAP_SIZE); //設置最小heap內存爲6MB大小。當然對於內存吃緊來說還可以通過手動干涉GC去處理



優化Dalvik虛擬機的堆內存分配

       對於Android平臺來說,其託管層使用的Dalvik Java VM從目前的表現來看還有很多地方可以優化處理,比如我們在開發一些大型遊戲或耗資源的應用中可能考慮手動干涉GC處理,使用 dalvik.system.VMRuntime類提供的setTargetHeapUtilization方法可以增強程序堆內存的處理效率。當然具體原理我們可以參考開源工程,這裏我們僅說下使用方法: private final static float TARGET_HEAP_UTILIZATION = 0.75f;在程序onCreate時就可以調用VMRuntime.getRuntime().setTargetHeapUtilization(TARGET_HEAP_UTILIZATION); 即可。

       Android堆內存也可自己定義大小

       對於一些Android項目,影響性能瓶頸的主要是Android自己內存管理機制問題,目前手機廠商對RAM都比較吝嗇,對於軟件的流暢性來說RAM對性能的影響十分敏感,除了 優化Dalvik虛擬機的堆內存分配外,我們還可以強制定義自己軟件的堆內存大小,


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章