【问题标题】:JVM performance tuning: young copy vs old generation gcJVM 性能调优:年轻副本与老年代 gc
【发布时间】:2011-09-09 18:52:20
【问题描述】:

嗨:我有一个多线程 Java 应用程序。有很多临时对象。
-XX:MaxTenuringThreshold=1,我们在启动JVM时把上面的参数。这意味着所有对象将在 gc 期间存活一次,然后将其提升到老年代。例如,我们可以把这个-XX:MaxTenuringThreshold=10 放在上面,这样对象就会在 10 次 gc 后提升到旧的 JVM 老年代。但这会在young gc期间导致不必要的复制操作(因为对象被复制'从'eden'到'from',从'from'到'to','from','to'是两个幸存者缓冲区)?

这些问题也可能意味着如果a)年轻代中有多次复制,老年代gc较少,b)老年代垃圾收集时间长但年轻代复制很少,哪一个更好?

【问题讨论】:

    标签: java performance garbage-collection jvm permanent-generation


    【解决方案1】:

    哪一个是“更好的性能”很大程度上取决于您的应用程序及其运行条件。您最大的希望是尝试各种垃圾收集选项,然后进行运行时和内存分析,以在内存使用和速度之间取得最佳平衡。

    遗憾的是,垃圾收集设置没有灵丹妙药。

    【讨论】:

      猜你喜欢
      • 2020-05-16
      • 2021-07-08
      • 2014-01-06
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多