gpt4 book ai didi

java - 客户端最好的垃圾收集设置是什么?

转载 作者:搜寻专家 更新时间:2023-10-31 08:13:02 25 4
gpt4 key购买 nike

最近的 JVM 有很多用于垃圾收集的 XX 参数(例如参见 here),但是可以使客户端 Swing 应用程序真正执行得更好的选项是什么?

我应该指出,在客户端 Java 应用程序中真正让我烦恼的事情之一是 stop-the-world 垃圾收集的大量延迟。在 Intelli-J IDEA 中,我看到它运行了三分钟或更长时间。

编辑:感谢所有回复。只是为了报告,我使用 here 中建议的设置为 IDEA 安装了 CMS 垃圾收集器(这是大多数阅读此问题的人都熟悉的应用程序类型的一个很好的通用引用)。 .我还设置了 -XX:+StringCache 以查看它是否会减少内存需求。

一般而言,观察结果表明,常规运行性能不会降低到您可以注意到的程度。使用字符串缓存选项内存减少巨大,但是 CMS 方法并不彻底,最终需要停止世界垃圾收集周期(回到三分钟等待)以清除内存(一次运行 400MB)。

但是,考虑到减少的内存占用,我也许可以只放置较小的最大内存量,这将使停止世界集合的大小保持较小。

IDEA 8.1.4 自带JDK 1.6.0_12,所以我还没有测试G1。另外,我的机器只有 2 个内核,所以 G1 方法不会真正最大化。是时候向老板讨要一台更好的机器了;)。

最佳答案

这个问题没有单一的答案,它在很大程度上取决于您的应用程序在做什么以及它如何管理其对象。也许看看How does garbage collection workParallel and concurrent garbage collectors了解各种选项。

然后,检查 Java SE 6 HotSpot[tm] Virtual Machine Garbage Collection Tuning扩展了在 Tuning Garbage Collection with the 5.0 Java Virtual Machine 中引入的 Java SE 6 的 GC 调优概念和技术的文档文档。

如果您想缩短垃圾收集暂停时间,并发收集器可能是正确的方向,因为它同时执行大部分工作(即,当应用程序仍在运行时)。但是找到最佳设置需要分析(考虑测量 GC 吞吐量、最大和平均暂停时间、完整 GC 的频率及其持续时间)。

(编辑:阅读了 OP 的评论后,我认为阅读性能大师 Kirk Pepperdine 的 My advice on JVM heap tuning, keep your fingers off the knobs! 是个好主意。)

关于java - 客户端最好的垃圾收集设置是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1804186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com