我跑了一個測試程序使用下面jvm
參數XMX和GC日誌數據不匹配
java -XX:+PrintGCDetails -Xloggc:gc.log Test -Xmx=1k -Xms=1k
,並得到了下面的異常
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
(添加列表,在一個無限循環的字符串)在gc日誌我看到下面的集合作爲最後一項
11.242: [Full GC (Allocation Failure) [PSYoungGen: 0K->0K(92160K)] [ParOldGen: 274084K->274072K(371712K)] 274084K->274072K(**463872K**), [Metaspace: 2522K->2522K(1056768K)], 3.0296130 secs] [Times: user=3.28 sys=0.00, real=3.02 secs]
如果min和max是1k堆怎麼來m可用的emory顯示爲463872K
?
加在oracle網站
https://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html
我看到一張紙條,
注:-Xmx
不限制的內存,該JVM可以使用的總量。
這是什麼意思?
請重新格式化您的帖子,它很難閱讀 –