Tag: heap memory

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的相关主题中也讨论了这个问题。