Java 有JDK1.6.xG1(“垃圾优先”的经验)

Java 有JDK1.6.xG1(“垃圾优先”的经验),java,nullpointerexception,garbage-collection,jdk1.6,g1gc,Java,Nullpointerexception,Garbage Collection,Jdk1.6,G1gc,我想知道在最新的JDK中使用G1垃圾收集器有哪些经验?我看到在我的程序中抛出了NullPointerException,尽管代码在早期的JDK中没有更改,行为也不正确。我一直在使用以下方法运行jEdit: -Xmx192M -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC 在windows上的最后几天。没有经历过任何错误或行为不端的经历 我还尝试使用G1 GC运行Intellij,但效果不太好。它持续了几个小时,然后撞成了一堆乱七八糟的东西,也许有点乐

我想知道在最新的JDK中使用G1垃圾收集器有哪些经验?我看到在我的程序中抛出了
NullPointerException
,尽管代码在早期的JDK中没有更改,行为也不正确。

我一直在使用以下方法运行jEdit:

-Xmx192M -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC
在windows上的最后几天。没有经历过任何错误或行为不端的经历


我还尝试使用G1 GC运行Intellij,但效果不太好。它持续了几个小时,然后撞成了一堆乱七八糟的东西,也许有点乐观。

我尝试过,但没有遇到例外。但我们服务器的性能下降了约30%。

垃圾收集器只会影响应用程序的性能,而不会影响其正确性。我一直在Eclipse中使用它,只是为了好玩,而且看起来很稳定


我会在别处寻找异常的来源。

请记住,这是一个实验性的特性,所以问题是可以预料的。您能提供一个代码示例吗?您可能已经暴露了新收集器的时间/并发性问题。我收到的随机OutOfMemoryError异常主要是在数组分配上。使用普通GC时,不会出现任何问题。在使用新的垃圾收集器之前,我会尝试使用-XX:MaxPermSize=512m选项或其他一些方法。我尝试使用G1运行Netbeans。一些错误不时发生。另一方面,垃圾收集器中的错误会影响其正确性。关于“实验性”的一些东西告诉我,质疑这种情况并非完全不合理我同意这是实验性的,我不会在生产中使用它,至少不会在u14中使用。看到如此显著的性能下降,这令人失望,但重要的是要记住,G1收集器的一个重要目标是最小化暂停。对于几GB或更高的堆,当GC和其他收集器一起运行时,您可以得到多分钟的暂停。因此,即使G1会导致更长的响应时间,只要它们更加一致并且从不表现出最坏的情况,这对于某些应用来说将是一个巨大的改进。您应该在这里为我们发布所有VM选项,以便我们可以与您的“30%下降分析”进行比较。