Where are Metaspace and Runtime Constant pools in JVM's memory?

I'm confused with Metaspace in Java. Where is it? Some articles treating PermGen(Metaspace) as part of the heap, some of them as heap-off part of memory:

Method Area (part of Metaspace) is the part of heap here: http://javapapers.com/core-java/java-jvm-run-time-data-areas/

and here's not: http://blog.jamesdbloom.com/JVMInternals.html

I've got the same problem with runtime constant pools. Some articles trating it like part of heap, some of them like part of Method Area.

It depends on JVM implementation, or just changes during Java releases (and articles are old)? If it's about JVM implementation, how does it work in HotSpot?

Thanks!


Where these memory regions are is largely notional as they use virtual memory. Perm Gen and MetaSpace don't use up heap space and don't accounted as part of the maximum heap size ie -Xmx

They are managed memory regions like the heap but I don't consider them part of the heap, but rather a separate region.

链接地址: http://www.djcxy.com/p/82848.html

上一篇: 我们声明静态时分配的内存在哪里?

下一篇: JVM内存中的Metaspace和Runtime常量池在哪里?