323得票16回答
Java.lang.OutOfMemoryError: GC overhead limit exceeded (错误:超过GC开销限制)

我在一个创建数百万个HashMap对象的程序中遇到了错误,每个对象包含15-20个文本条目。这些字符串必须全部收集(不分成较小的部分)后才能提交到数据库。根据Sun的说法,如果垃圾回收花费的时间太长,即如果总时间的98%以上用于垃圾回收,且只恢复了不到2%的堆,则会抛出OutOfMemoryE...

92得票16回答
Java G1垃圾回收在生产中的应用

由于Java 7默认使用新的G1垃圾回收器,Java是否能够处理比以前更大的堆内存而不会出现“灾难性”的GC暂停时间?是否有人在生产环境中实际实施了G1,那么你的经验如何? 公平地说,我只在非常大的堆上看到过真正长的GC暂停时间,比工作站多得多。为了澄清我的问题:G1是否会打开通向数百GB或...

82得票8回答
Java 7(JDK 7)垃圾回收和G1文档

Java 7 已经发布了一段时间,但我找不到关于配置 垃圾回收器 的好资源,特别是新的 G1 回收器。 我的问题: G1 是 Java 7 中的默认收集器吗?如果不是,我该如何激活 G1? Java 7 中 g1 有哪些可选设置? 在 Java 7 中是否对其他收集器(如 cms 或 p...

48得票3回答
Garbage-First垃圾收集器是如何工作的?

有人可以解释一下 G1 垃圾收集器是如何工作的吗?我还没有找到任何全面易懂的描述。 谢谢

46得票1回答
为什么在 Java 9 G1 工作约 6 小时后,即使实际负载没有增加,性能也会下降?

我将一个实例(2 vCPU、2GB RAM,负载约为4k req/sec)从最新的Java 8切换到Java 9。一开始一切都很好,CPU使用率与之前相同。然而,大约6小时后,CPU消耗增加了4%(从21%增加到25%),原因不明。我没有流量激增,没有增加内存消耗,没有度量变化(我对代码中的每...

34得票1回答
JVM G1GC的混合垃圾回收器未能收集到太多的旧区域

我的服务器运行在CentOS 6.7上,使用1.8.0_92版本的Java,并设置GC参数为'-Xms16g -Xmx16g -XX:+UseG1GC'。所以默认的InitiatingHeapOccupancyPercent是45,G1HeapWastePercent是5,G1MixedGCL...

30得票5回答
G1垃圾收集器:永久代会不断填充直到进行完整GC。

我们有一个较大的应用程序在JBoss 7应用服务器上运行。过去,我们使用ParallelGC,但在一些堆很大(5 GB或更多)且通常接近填满的服务器上,我们经常会遇到非常长的GC暂停问题。 最近,我们改进了应用程序的内存使用情况,在一些运行应用程序的服务器上增加了更多的RAM,但我们也开始切...

29得票6回答
G1GC仍然没有正式的生产就绪吗?

我想知道JDK 7版本中"垃圾优先"(G1)收集器的官方状态如何。我希望可以使用G1作为低暂停的GC替代CMS,但前提是我真正相信它的健壮性。 JDK 7发布之前,G1被宣传为一个闪亮的新GC,将取代CMS收集器并成为JDK 7的默认GC。然而,现在随着Oracle JDK 7u1的发布,G...

28得票4回答
UseConcMarkSweepGC与UseParallelGC的区别

我目前遇到非常长的垃圾回收时间问题,请看以下情况。我的当前设置是使用 -Xms1g 和 -Xmx3g。我的应用程序正在使用 Java 1.4.2。我没有设置任何垃圾回收标志。看起来,3GB 的内存不足以处理我需要回收的大量对象。 问题: 我应该更改垃圾回收算法吗?我应该使用什么?使用 -X...

19得票3回答
有人能解释一下G1垃圾回收器的输出吗?

我正在使用以下选项运行带有 G1 垃圾收集器的 Java 程序:-XX:-UseBiasedLocking -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -verbose:gc -XX:+PrintGCTimeStamps -XX:+...