2013-08-03 73 views
0

這些數字意味着什麼? (補時logcat的調試器)「......的字節分配內存不足」是什麼意思? (Android)

08-03 14:29:11.538: I/dalvikvm-heap(6514): Forcing collection of SoftReferences for 14337016-byte allocation 
08-03 14:29:11.568: D/dalvikvm(6514): GC_BEFORE_OOM freed 10K, 6% free 115756K/121948K, paused 29ms, total 30ms 
08-03 14:29:11.568: E/dalvikvm-heap(6514): Out of memory on a 14337016-byte allocation. 
  • 是什麼121948K和115756K是什麼意思?
  • 爲什麼14337016字節?它是〜14MB。不可能!我試圖加載一個14kB大小的位圖。
+0

烏爾應用程序試圖OS.and OS拒絕請求更多的內存被發現分配..所以這個異常提出.. !! – TheFlash

+0

你確定圖像是14KB?另外,您應該認識到Android通常不會爲您的圖像選擇最佳格式。我可能會誤解,但通常會選擇32bpp格式。此外,如果您在本機圖像中使用彩色調色板(例如.bmp或.gif),我相信Android會拋棄它並轉換爲ARGB或RGB像素。 – Samuel

回答

2

系統試圖釋放未使用的內存,以便能夠找到一些更多的資源爲你的應用

GC_BEFORE_OOM恰好你的應用程序的運行了它的堆空間

GC_BEFORE_OOM

更可以發現here

編號: gc自由10K,6%是免費的,這是太少,所以它繼續進一步釋放,直到gc達到oom。 115756K/121948K是你的應用程序的堆統計

enter image description here

有關內存

更多的信息可以通過觀看這個vid

+1

這不一定是內存泄漏,他只是試圖分配更多的內存比他的應用程序允許 – Samuel

+1

@Samuel你是對的,從我的回答刪除'內存泄漏'的話 –

+0

@Samuel但它是在泄漏內存的邊緣,因爲gc不會使你的應用程序免於內存泄漏,並且由於'GC_BEFORE_OOM'正在接管gc,那麼這意味着內存分配會發生一些可疑的事情 –

相關問題