8得票1回答
Java G1GC永远不会回收Old Gen。

我在运行surefire测试时遇到了GC超限的问题。然而,在分析内存统计和快照后,我意识到几乎有800 MB的字符串重复浪费。 深入研究VM参数和其他运行时参数后,我发现使用的GC是PS(并行清道夫-来自JVM的默认GC)。 我修改了surefire argLine以使用 -XX:+Us...

8得票3回答
JDK 1.6.x G1("垃圾优先")的使用经验

我想了解最新JDK中使用G1垃圾收集器的经验如何?虽然代码没有更改并且在早期的JDK中表现正常,但我在程序中看到NullPointerException被抛出。

8得票3回答
使用G1GC垃圾收集器与Spark 2.3

我正在尝试为Spark作业使用G1GC垃圾收集器,但是我遇到了一个问题。 Error: Invalid argument to --conf: -XX:+UseG1GC 我尝试使用这些选项,但无法使其正常工作 spark-submit --master spark://192.168....

7得票2回答
G1GC高GC计数和CPU占用过高,频繁的GC导致性能下降。

最近我将我的Java应用从CMS + ParNew切换到了G1GC。 当我进行切换时,我观察到CPU使用率上升了,GC计数和暂停时间也增加了。 在切换之前,我的JVM标志是 java -Xmx22467m -Xms22467m -XX:NewSize=11233m -XX:+UseConc...

7得票1回答
使用G1垃圾回收器,当实例数量较多时,分配性能是否会下降?

在将一些应用程序从CMS迁移到G1时,我发现其中一个应用程序的启动时间延长了4倍。由于GC循环导致的应用程序停止时间不是原因。比较应用程序行为后,我发现这个应用程序在启动后携带着2.5亿个活动对象(在12G堆中)。进一步调查显示,该应用程序在前500万个分配期间速度正常,但随着活动对象池越来越...

7得票1回答
几天之后,GC暂停时间变得非常长。

我正在运行一个构建系统。我们过去使用CMS收集器,但是我们开始遭受非常长的full GC周期的困扰,吞吐量(不进行GC的时间)约为90%。因此,我现在决定切换到G1,并假设即使我有更长的总GC时间,暂停时间也会更短,从而确保更高的可用性。所以这个想法似乎比我预期的要好,我几乎3天没有看到任何f...

7得票1回答
如何解释 G1 GC 日志以及在 OutOfMemoryError 之前的相关内容?

我想知道有没有人能够解释一下G1 GC日志如何导致OutOfMemoryError? 我知道堆转储是找出实际使用堆的最佳方法,但是由于其中包含不能离开客户端站点的受保护信息,因此我无法获得它。我所拥有的只有应用程序日志(其中包括OOME的堆栈)和G1 GC日志。 完整的G1 GC日志包含很...

7得票1回答
Java 8中G1垃圾收集器是否存在不必要的Full GC?

我们注意到使用G1垃圾收集器时偶尔会出现并发标记溢出的情况。一旦出现并发标记溢出重置,这种溢出将在下一个并发标记阶段继续发生。最终,由于并发标记看起来已不再起作用,将导致完全GC。 我们有四台运行相同 Apache Storm 应用程序并具有相同数据流量的计算机。只有其中一台机器每周会遇到此...

7得票2回答
如何调整G1GC以减小内存占用?

我一直在我的项目中尝试使用Java 8(Oracle JVM)的G1GC。我的GC标志如下: -Xms64m -Xmx1024m -XX:+UseG1GC -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:/tmp/gc.log -XX:+...

7得票2回答
为什么堆被划分为Eden、Survivor和Old Generation空间?

请问您关于JVM垃圾回收过程的问题能否回答一下? 为什么堆被分成Eden、Survivor空间和老年代? 当进行年轻代清理时,对象通过引用从根开始访问以查找不可达对象。可达对象标记为“存活”,而不可达对象未被标记并将被消除。 因此,所有对象都被考虑在内,包括在老年代分配的对象也会被访问和...