Oracle JRockit VM Java堆:2个不同的内存空间
-Java堆(YoungGen和OldGen)
-本机内存空间(类池,C堆,线程…)
PermGen空间在哪里?
与IBM VM类似,JRockit VM没有PermGen空间。 PermGen空间仅适用于HotSpot VM。 JRockit VM使用本机堆用于类元数据相关数据。 另外,正如您可能从我的其他文章中看到的那样,Oracle Sun也开始删除HotSpot VM的PermGen空间。
为什么JRockit VM Java进程比HotSpot VM使用更多的内存?
JRockit VM倾向于使用更多的本机内存来换取更好的性能。 JRockit没有解释模式(仅编译),因此,由于其额外的本机内存需求,进程大小倾向于使用比等效Sun JVM大小大数百MB的大小。 除非您使用具有大量Java堆要求的32位JRockit,否则这应该不是什么大问题。 在这种情况下,对于JRockit VM,由于本机堆耗尽而导致OutOfMemoryError的风险更高(例如,对于32位VM,Java堆越大,留给本机堆的内存越小)。
Oracle对JRockit的计划是什么?
当前的Oracle JVM策略是将HotSpot和JRockit产品线合并到一个JVM项目中,该项目将包括每个VM的最佳功能。 这也将简化JVM调优,因为目前无法理解这两个VM之间的差异可能会导致调优建议和性能问题。
请随时在JRockit VM上发表任何评论或问题。
Java堆空间– IBM VM
这篇简短的文章将为您提供有关IBM VM的不同Java内存空间的高级概述。
考虑到HotSpot与IBM VM之间在实现和命名约定方面的差异,这种理解非常重要。
IBM VM:2个不同的内存空间
IBM VM内存分为2个内存空间:
– Java堆(疗养院和保育空间)
–原生堆(C-Heap)
PermGen空间在哪里?
到目前为止,这是我第一次从支持Java VM的Java EE支持人员那里得到最典型的问题。 答案:IBM VM没有PermGen空间。 PermGen空间仅适用于HotSpot VM。 IBM VM正在使用本机堆用于类元数据相关数据。 另外,正如您可能从我的其他文章中看到的那样,Oracle / Sun也开始删除HotSpot VM的PermGen空间。
下一篇文章将为您提供有关如何为IBM VM启用和分析详细GC的教程。 请随时在IBM VM上发表任何评论或问题。
参考: Java EE支持模式和Java教程博客中的JCG合作伙伴 Pierre-Hugues Charbonneauat的Java Heap Space – JRockit VM和Java Heap Space – IBM VM 。
翻译自: https://www.javacodegeeks.com/2012/04/java-heap-space-jrockit-and-ibm-vm.html