2
如果启动并使用重型java 8 rcp桌面应用程序而未指定jvm参数MaxMetaspaceSize和metaspacesize,会发生什么情况?如果不在java 8 rcp应用程序中指定maxmetaspace参数,会发生什么情况?
堆内存消耗的内存几乎就像非堆(metaspace)消耗一样正常吗?
最后一个问题:可以不指定的元空间大小参数导致应用程序崩溃?
如果启动并使用重型java 8 rcp桌面应用程序而未指定jvm参数MaxMetaspaceSize和metaspacesize,会发生什么情况?如果不在java 8 rcp应用程序中指定maxmetaspace参数,会发生什么情况?
堆内存消耗的内存几乎就像非堆(metaspace)消耗一样正常吗?
最后一个问题:可以不指定的元空间大小参数导致应用程序崩溃?
MaxMetaspaceSize
除非指定,否则无限制,因为您拥有的记忆体数量很多。您在某些时候看到的元空间与堆大小相同是可能的。但是,堆和元空间都是垃圾收集的;所以这些值可以快速改变。
没有指定它,有效地意味着增长尽可能多(我认为甚至包括交换)。我不认为应用程序可能会崩溃,,除非带有OutOfMemory,当您填写MetaSpace时;我个人非常怀疑。
感谢您的宝贵答案。根据诊断结果(性能和内存消耗量图......),我注意到GC不会收集GC,而不像定期收集的堆内存(在jvm应用程序配置中没有指定元空间大小参数)。在某些崩溃期间,不会生成pid文件,它看起来像是一个严重的崩溃(我有12 RAM的内存),并且该应用程序不会在具有相同jvm配置的32 RAM内存的另一台计算机上崩溃(xmx,xms和无元空间参数) – Anas
这似乎是一个不会死亡的城市神话。 “permgen”已被垃圾收集。总是。主要问题是其固定大小。这就是为什么它看起来很奇怪,看到许多人用最大的元空间大小设置替换过时的最大permgen大小设置,从而杀死了元组空间的主要优点... – Holger
@Holger太棒了。我一直认为它没有收集...... thx – Eugene