java - 让兴奋的垃圾收集器平静下来

标签 java garbage-collection

我有一个使用-Xmx2g 运行得非常愉快的程序。使用 -Xmx1g,它会逐渐停止。它永远不会出现内存不足的异常——或者,至少,我从来没有耐心等待足够长的时间。

这表明总占用空间确实适合 1g,但 GC 对可能耗尽空间有些担忧。

内存占用是一些大的、稳定的、具有大量临时流量的项目的组合。

是否有任何或多或少模糊的 GC 选项与这种情况相关?

最佳答案

您可以在 JVM 上使用 http://java.sun.com/docs/hotspot/gc5.0/gc_tuning_5.html 设置一堆垃圾回收选项。 .当一个应用程序由于 GC 而停止时,您通常会看到很多主要的收集,这可能会在收集时停止一切。您可以调整 minor 和 major 收集参数,看看是否可以进行更频繁的次要收集。

我建议使用 VisualVM(随 JDK6 提供,我相信更新 7+)等工具查看堆中的内容,并分析对象图。另请查看用于分析 hprof 文件的工具 (How do I analyze a .hprof file?)。

关于java - 让兴奋的垃圾收集器平静下来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2277633/

相关文章:

java - 我如何映射到具有同一实体的两个字段的对象?

java - 设置 BigDecimal 的特定精度

java - 使用 Maven 或 JBoss 工具在 Eclipse 上添加 JBoss AS 7 模块

android - 生成失败原因:java.lang.OutOfMemoryError:超出了GC开销限制

ruby - 使用 Ruby C Extension 进行垃圾收集

java - 二叉树 : In-order Iterator: Java

java - 使用 GWT `tbroyer` maven 插件时运行 GWT JUnit 测试的正确方法是什么?

java - 非解释语言可以有垃圾收集器吗?

ruby-on-rails - 如何确保 ruby​​ 中的大文件(blob)从内存中释放?

c# - GC.KeepAlive 与使用