Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用-XX:+;印刷品?_Java_Memory_Logging_Garbage Collection_Jvm - Fatal编程技术网

Java 使用-XX:+;印刷品?

Java 使用-XX:+;印刷品?,java,memory,logging,garbage-collection,jvm,Java,Memory,Logging,Garbage Collection,Jvm,Java,如新一代,可进一步划分,如伊甸园空间。使用-XX:+PrintHeapAtGCJVM选项,每个堆区域的三个内存地址以[A,B,C)的形式打印在GC日志中,其中A,B和C是内存地址,例如: eden space 838912K, 100% used [0x000000073ae00000, 0x000000076e140000, 0x000000076e140000) 这些内存地址的含义是什么? 我已经在网上搜索过,但找不到关于这部分GC日志的任何解释。A(底部)-保留内存区域的较低地

Java,如新一代,可进一步划分,如伊甸园空间。使用
-XX:+PrintHeapAtGC
JVM选项,每个堆区域的三个内存地址以
[A,B,C)
的形式打印在GC日志中,其中
A
B
C
是内存地址,例如:

eden space 838912K, 100% used [0x000000073ae00000, 0x000000076e140000, 0x000000076e140000)
这些内存地址的含义是什么?

我已经在网上搜索过,但找不到关于这部分GC日志的任何解释。

A(底部)
-保留内存区域的较低地址;
B(顶部)
-指向分配区域顶部的当前指针;
C(end)
-保留内存区域的上限

以下是对源代码的相关参考


wrt
B(顶部)
,我认为这是有意义的,因为堆区域在GC过程中被“向左”压缩,对吗?@coxjam所有新的空间都是连续的,这意味着分配是“从左到右”完成的通过一个简单的指针增量。
top
就是这个指针。它下面的所有内容都是使用区域,上面的区域是自由区域。
// Size computations: sizes in bytes.
size_t capacity() const        { return byte_size(bottom(), end()); }
size_t used() const            { return byte_size(bottom(), top()); }
size_t free() const            { return byte_size(top(),    end()); }
void ContiguousSpace::print_on(outputStream* st) const {
  print_short_on(st);
  st->print_cr(" [" INTPTR_FORMAT ", " INTPTR_FORMAT ", " INTPTR_FORMAT ")",
                bottom(), top(), end());
}