Java 无法及时收集垃圾

标签 java performance garbage-collection

我有这样的问题,jvm 无法及时执行 gc,应用程序卡住。 “解决方案”是使用 jconsole 连接到应用程序并建议 jvm 进行垃圾收集。我不必说这是非常糟糕的应用程序行为。 jvm 是否有一些选项可以建议它更快/更频繁地执行 gc?也许这个问题还有其他一些真正的解决方案?

问题似乎不是内存不足,而是 gc 无法在新数据发送到应用程序之前及时进行收集。之所以如此,是因为 gc 似乎开始收集数据的时间很晚。如果 jconsole 的 System.gc() 按钮足够早地建议,那么问题就不会发生。

年轻代由并行收集器“PS Scavenge”收集。 老年代由并行标记和清除收集器“PS MarkSweep”收集。

最佳答案

您应该检查内存泄漏。 我很确定您不会得到 OutOfMemoryException,除非没有要释放的内存并且没有更多可用内存。

关于Java 无法及时收集垃圾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18717737/

相关文章:

java - 使用 Swing 时 Eden 空间使用量不断增加

java - 内存不足错误 : Java heap memory (GC heap)

java - 调用 Mat 时 Open2.4.5 Android 崩溃

java - 当某项为空时,哪种设置方式更快?

git - 整个团队收到 'too many unreachable loose objects' 消息

javascript - 我需要加快速度以通过代码战斗测试(javascript)

sql - Firebird 中选择查询的性能问题

java - Mongodb 在使用 spring 数据 jpa 插入时强制索引存在

控件单击时的 JAVA GWT 单元格表操作

java - Hibernate 序列化异常