我已经知道每次垃圾收集后的行。我也知道垃圾收集器世代。我误解了一件事:
56.897: [GC 56.897: [DefNew: 4919K->512K(4928K), 0.0117236 secs] 8670K->4850K(15872K), 0.0118473 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
66.191: [GC 66.191: [DefNew: 4928K->206K(4928K), 0.0094325 secs] 9266K->5046K(15872K), 0.0095556 secs] [Times: user=0.01 sys=0.00, real=0.01 secs]
...
Heap
def new generation total 4928K, used 439K [0x24380000, 0x248d0000, 0x298d0000)
eden space 4416K, 3% used [0x24380000, 0x243abe18, 0x247d0000)
from space 512K, 51% used [0x247d0000, 0x24811ec0, 0x24850000)
to space 512K, 0% used [0x24850000, 0x24850000, 0x248d0000)
tenured generation total 10944K, used 4840K [0x298d0000, 0x2a380000, 0x34380000)
the space 10944K, 44% used [0x298d0000, 0x29d8a1e8, 0x29d8a200, 0x2a380000)
compacting perm gen total 12288K, used 3677K [0x34380000, 0x34f80000, 0x38380000)
the space 12288K, 29% used [0x34380000, 0x34717578, 0x34717600, 0x34f80000)
ro space 10240K, 42% used [0x38380000, 0x387c1d60, 0x387c1e00, 0x38d80000)
rw space 12288K, 54% used [0x38d80000, 0x39402928, 0x39402a00, 0x39980000)
好的,让这个页脚在程序的关机时刻表示GC堆状态。然后我就能理解total
和used
的含义。
然后转到[0x298d0000, 0x2a380000, 0x34380000)
,打开方括号并关闭。可能是指物理内存地址,但为什么3代表空间而4代表空间。
tenured generation total 10944K, used 4840K [0x298d0000, 0x2a380000, 0x34380000)
the space 10944K, 44% used [0x298d0000, 0x29d8a1e8, 0x29d8a200, 0x2a380000)
将此信息提供给用户的目的是什么?我很乐意获得描述垃圾收集器输出的文档的链接。