我的jdk版本是「1.8.0_40」
我的代碼是。爲什麼是這種情況gc
public class Test {
private static int _1M = 1024 * 1024;
public static void main(String[] a) {
byte[] b, b1, b2, b3;
b = new byte[2 * _1M];
b1 = new byte[2 * _1M];
b2 = new byte[2 * _1M];
b3 = new byte[4 * _1M];
}
}
我的運行參數是
-verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8
我跑我的代碼,我得到這個GC結果,
Heap
PSYoungGen total 9216K, used 7987K [0x00000007bf600000, 0x00000007c0000000, 0x00000007c0000000)
eden space 8192K, 97% used [0x00000007bf600000,0x00000007bfdccd60,0x00000007bfe00000)
from space 1024K, 0% used [0x00000007bff00000,0x00000007bff00000,0x00000007c0000000)
to space 1024K, 0% used [0x00000007bfe00000,0x00000007bfe00000,0x00000007bff00000)
ParOldGen total 10240K, used 4096K [0x00000007bec00000, 0x00000007bf600000, 0x00000007bf600000)
object space 10240K, 40% used [0x00000007bec00000,0x00000007bf000010,0x00000007bf600000)
Metaspace used 3084K, capacity 4494K, committed 4864K, reserved 1056768K
class space used 339K, capacity 386K, committed 512K, reserved 1048576K
你可以看到GC結果,總內存爲12M,但我代碼只有10M.and這個代碼不運行gc。 這是爲什麼
「爲什麼這個」相當流行......你能更具體地回答你的問題嗎? – alfasin