OOM異常處理

2021-09-13 00:25:04 字數 388 閱讀 9023

二、虛擬機器棧和本地方法棧溢位

三、方法區和執行時常量池溢位

四、直接記憶體溢位

在執行的時候設定jvm引數,使其dump出記憶體異常資訊, -xx:+heapdumponoutofmemoryerror,當出現oom異常的時候,我們就可以看到一場jvm列印的異常資訊

通過記憶體映像分析工具(eclipse memory analyzer)對dump出來的記憶體轉儲快照進行分析

記憶體洩漏(memory leak)

記憶體溢位(memory overflow)

確定是哪種情況之後

堆是用來儲存物件的,如果建立了大量的物件且這些物件得不到及時的**就會造成記憶體佔滿,丟擲oom

多執行緒造成的oom

如果建立大量的常量且放入常量池

處理Bitmap出現oom的異常

大小 直接使用imageview顯示bitmap會占用較多資源,特別是較大的時候,可能導致崩潰。使用bitmapfactory.options設定insamplesize,這樣做可以減少對系統資源的要求。屬性值insamplesize表示縮圖大小為原始大小的幾分之一,即如果這個值為2,則取出的縮圖的...

Bitmap的使用 防止OOM異常

public class mainactivity extends activity override protected void onactivityresult int requestcode,int resultcode,intent data options.injustdecodebou...

bitmap的處理,盡量避免OOM

bitmap是乙個吃記憶體的大傢伙,如果使用不當,那麼程式就會oom常伴了。因此,這篇文章主要介紹幾個方法來控制好bitmap對記憶體的占用。第一種方法 按比例縮小bitmap private bitmap getbitmap string srcpath else if w h h hh if s...