Java 在这个片段中,'GC\u BEFORE\u OOM'是什么?

Java 在这个片段中,'GC\u BEFORE\u OOM'是什么?,java,android,garbage-collection,Java,Android,Garbage Collection,这里的GC\u是什么?我认为这与Java中的垃圾收集有关,但我不知道这里发生了什么 09-08 15:42:18.568 29597-29597/jp.co.example D/dalvikvm﹕ GC_BEFORE_OOM freed 353K, 22% free 57872K/73443K, paused 35ms, total 36ms 09-08 15:42:18.568 29597-29597/jp.co.example E/dalvikvm-heap﹕ Out of memory

这里的
GC\u是什么?我认为这与Java中的垃圾收集有关,但我不知道这里发生了什么

09-08 15:42:18.568  29597-29597/jp.co.example D/dalvikvm﹕ GC_BEFORE_OOM freed 353K, 22% free 57872K/73443K, paused 35ms, total 36ms
09-08 15:42:18.568  29597-29597/jp.co.example E/dalvikvm-heap﹕ Out of memory on a 640016-byte allocation.
09-08 15:42:18.568  29597-29597/jp.co.example I/dalvikvm﹕ "main" prio=5 tid=1 RUNNABLE
09-08 15:42:18.569  29597-29597/jp.co.example I/dalvikvm﹕ | group="main" sCount=0 dsCount=0 obj=0x40aa3460 self=0xc598e0
09-08 15:42:18.569  29597-29597/jp.co.example I/dalvikvm﹕ | sysTid=29597 nice=0 sched=0/0 cgrp=default handle=1074087304
09-08 15:42:18.569  29597-29597/jp.co.example I/dalvikvm﹕ | schedstat=( 6092879000 2120586000 7353 ) utm=517 stm=92 core=0
09-08 15:42:18.569  29597-29597/jp.co.example I/dalvikvm﹕ at android.graphics.Bitmap.nativeCreate(Native Method)
09-08 15:42:18.570  29597-29597/jp.co.example I/dalvikvm﹕ at android.graphics.Bitmap.createBitmap(Bitmap.java:605)
09-08 15:42:18.570  29597-29597/jp.co.example I/dalvikvm﹕ at android.graphics.Bitmap.createBitmap(Bitmap.java:551)
09-08 15:42:18.570  29597-29597/jp.co.example I/dalvikvm﹕ at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:437)
09-08 15:42:18.570  29597-29597/jp.co.example I/dalvikvm﹕ at android.graphics.BitmapFactory.finishDecode(BitmapFactory.java:545)
09-08 15:42:18.570  29597-29597/jp.co.example I/dalvikvm﹕ at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:520)
09-08 15:42:18.571  29597-29597/jp.co.example I/dalvikvm﹕ at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:363)
09-08 15:42:18.571  29597-29597/jp.co.example I/dalvikvm﹕ at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:773)
我所研究的 在这个片段中,
setBackgroundResource()
被多次调用,因此可以说,在这里加载图像显然会导致OutOfMemoryError。似乎还有其他人面临同样的问题

因此,我阅读了官方Android开发者的以下帖子:

我也尝试过这些,但帖子没有提到Android中的垃圾收集或
GC\u-BEFORE\u-OOM

这些方法试图为构造的位图分配内存,因此很容易导致OutOfMemory异常

所以,我的问题是。。。
  • 上面的
    GC\u是什么
  • 这背后发生了什么

有人能帮忙吗?

OutOfMemoryError
之前进行垃圾收集

在抛出
OOM
之前,VM将尝试进行垃圾收集并保持运行。如果集合没有释放足够的内存,则会出现
OutOfMemoryError
(如上所述)