Tag: g1gc

Java 7(JDK 7)垃圾收集和文档上的G1

Java 7已经出现了一段时间了,但是在垃圾收集器 ,特别是新的G1收集器的configuration方面我找不到任何好的资源。 我的问题: G1是Java 7中的默认收集器,如果不是,我该如何激活G1? g1在Java7中有什么可选的设置? Java 7中的其他收集器(如cms或并行收集器)是否有任何更改? 我在哪里可以find关于在Java 7垃圾收集良好的文档?

生产中的Java G1垃圾收集

由于Java 7将会默认使用新的G1垃圾回收function,因此Java能够处理大一个数量级的堆而不会造成“破坏性”的GC暂停时间? 有没有人在生产中实际使用G1,你有什么经验? 公平地说,我看到真正长时间的GC暂停是非常大的,比工作站要多得多。 澄清我的问题; G1会打开数百GB的网关吗? TB?

java.lang.OutOfMemoryError:超出GC开销限制

我得到这个错误的程序创build几个(数十万)HashMap对象与几个(15-20)文本项每个。 在提交到数据库之前,这些string都被收集起来(没有分成更小的数量)。 据Sun介绍,错误发生在“如果在垃圾收集中花费了太多时间:如果超过总时间的98%用于垃圾收集,并且小于2%的堆被恢复,则将抛出OutOfMemoryError。 ”。 显然,可以使用命令行将parameter passing给JVM 增加堆大小,通过“-Xmx1024m”(或更多)或 完全禁用错误检查,通过“-XX:-UseGCOverheadLimit”。 第一种方法工作正常,第二种结束在另一个java.lang.OutOfMemoryError,这次是关于堆。 所以,问题:是否有任何程序的替代scheme,对于特定的用例(即几个小的HashMap对象)? 例如,如果我使用HashMap clear()方法,问题就消失了,但是存储在HashMap中的数据也是如此! 🙂 在StackOverflow的相关主题中也讨论了这个问题。