代码之家  ›  专栏  ›  技术社区  ›  Fortyrunner

有人发现垃圾收集调优很有用吗?

  •  21
  • Fortyrunner  · 技术社区  · 17 年前

    真正地 使用一些更高级的功能。

    这些调优策略是否具有跨VM版本更改的弹性,还是需要不断地重新评估?

    我使用的一个调优是-server标志。

    6 回复  |  直到 17 年前
        1
  •  20
  •   Community Mohan Dere    9 年前

    在接下来的几个月里,我分阶段定制了GC设置。一般来说,最大的可用旋钮似乎是调整增量gc的频率和幅度-最大的改进是用较小和更频繁的周期gc替换较大的周期gc。但我们确实看到了性能的提高。

    • 在这方面已经做了很多工作 默认值总是比我所做的任何调整都好。
    • 至少对我来说,在什么情况下 gc调优实际上是值得的 这是非常极端的 他们,所以我不得不这么做 实验性的和递增的。

    Here's 上一篇文章的好参考。stackoverflow讨论。

        2
  •  10
  •   TofuBeer    17 年前

    在您尝试调整垃圾之前 催收员100%确保您有 继续。一旦你开始调整,你就可以 确定要用探查器验证 它产生了积极的影响。

    您还应该对运行的每个版本的VM重新进行更改(不同的VM将有不同的调优策略)。

        3
  •  8
  •   oxbow_lakes    17 年前

    我不得不说,我自己并不需要太多地使用调优。但我与那些编写延迟非常关键的代码的人密切合作:他们充分利用了这种调优——指定使用哪种GC算法、最大暂停时间、存活率等等。

    因此,我想答案是:

        4
  •  3
  •   Peter Lawrey    17 年前

    使用探查器是改善GC行为的最有用的方法(通过减少创建的对象数量)

        5
  •  3
  •   Bob Cross n8wrl    17 年前

    我有过,但不是最近。我正在开发的应用程序是实时渲染由单个运动JPEG图像构成的视频流。当时(大约JDK 1.2和1.3) -Xincgc 设置会将客户机垃圾收集器从更大范围的清理切换到定期清理少量垃圾的模式。因此,帧延迟的分布要低得多,给人的印象是更平滑的视频(而不是1-2-3暂停,1-2-3暂停)。

    -新科 实际上会降低性能。

    在当今世界,我要说的是,标准优化怀疑论应该始终适用:概要。你确定瓶颈真的是垃圾收集器吗。。。?

        6
  •  2
  •   Alex Miller    17 年前

    简而言之,是的,它对于调优任何严肃的Java应用程序都非常有用。我们经常发现,在生产场景中,稳定的应用程序和完全不可预测的应用程序之间存在差异。这当然不是我做的第一件事,但一旦你有一个应用程序在工作,并且可以对它应用真正的负载,这是在这一点上首先要调查的事情之一。