JDK 1.6.x G1("垃圾优先")的使用经验

8

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


请记住,这是一个实验性功能,因此可能会出现问题。 - Mark
4
可以提供一份代码示例吗?有可能您已经暴露了新收集器中的时间/并发问题。 - Bob Cross
我收到了随机的OutOfMemoryError异常,主要是在数组分配上。使用普通GC时,没有出现任何问题。 - akarnokd
在尝试新的垃圾收集器之前,我会尝试-XX:MaxPermSize=512m选项或其他一些东西。 - djangofan
我尝试使用G1运行Netbeans。但是经常会出现几个错误,所以我切换回了普通的GC。 - java.is.for.desktop
请查看:https://dev59.com/ZWsz5IYBdhLWcg3wHUIU#34254605 - Ravindra babu
3个回答

3
一个垃圾收集器只会影响你的应用程序的性能,而不是其正确性。我只是为了好玩在Eclipse中使用它,并且似乎很稳定。我建议您在其他地方寻找异常的来源。

10
另一方面,垃圾回收器中的一个漏洞可能会影响其正确性。关于“实验性”的某些东西告诉我,对这种情况提出质疑并不完全不合理。 :) - Sam Harwell
2
我同意这是实验性的,我至少不会在生产中使用它,特别是不会在u14中使用。 - Robert Munteanu

2

我一直在使用jEdit:

-Xmx192M -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC

在过去几天的Windows系统上,我没有遇到任何问题或异常行为。

我还尝试使用G1 GC运行Intellij,但效果不佳。它仅持续了几个小时,然后崩溃成一堆混乱,可能有点过于乐观了。


1

我尝试过并没有出现任何异常。但是我们的服务器性能下降了约30%。


1
很遗憾你看到了如此显著的性能下降,但重要的是要记住G1收集器的一个重要目标是最小化暂停时间。当堆大小达到几GB或更高时,使用其他收集器运行GC时可能会出现多分钟的暂停。因此,即使G1导致响应时间略长,只要它们更一致且从不表现出最坏情况,对于某些应用程序来说,这将是一个巨大的改进。 - Matt Passell
1
请在此处发布所有您的 VM 选项,以便我们可以与您的“30%掉落分析”进行比较。 - djangofan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接