1

我们正在使用 JDK 8,并且我们的一些流程正在为 OOM 提供“压缩的类空间”。我们正在记录 GC,我们的 jvm statistics.log 文件当前提供以下类型的日志条目

2017-06-30 03:57:07,944 信息-堆-[使用:1678.7,免费:986.7,总计:2665.5,最大:2665.5];烫发 - [使用:不适用,免费:不适用,最大:不适用];类 - [加载:1832624,卸载:637,左:1831987 ];线程 - [计数:92]

我们想知道添加标志“-XX:+TraceClassUnloading -XX:+TraceClassLoading”是否会让我们知道应该为“压缩类空间”(-XX: CompressedClassSpaceSize)设置什么值?如果是,我们如何从 Trace 日志中确定大小?

4

1 回答 1

2

您可以使用-XX:-UseCompressedClassPointers禁用压缩类空间,这应该允许 JVM 将尽可能多的类加载到内存中,而不是有限的压缩类虚拟内存区域。缺点是对象头中的类指针较大。

但是正如@Holger 在评论中提到的那样,您应该确保您的应用程序不会随着时间的推移泄漏类,否则内存消耗将不断增长。

于 2017-07-14T16:00:22.330 回答