【问题标题】:Conc Mark and Sweep Garbage Collector difference between java 1.6 and 1.7Java 1.6 和 1.7 之间的 Conc Mark 和 Sweep Garbage Collector 区别
【发布时间】:2014-01-17 05:12:39
【问题描述】:

我在 CMS GC 中使用 jdk 1.6,当我尝试迁移到 JDK 1.7 时,堆使用量增加并且进程变慢。

这些版本中的 GC 行为是否存在重大差异?如果 JDK 1.7 变慢了怎么解决?

【问题讨论】:

    标签: java garbage-collection java-7 jdk1.6 concurrent-mark-sweep


    【解决方案1】:

    在 jdk 1.7 以下是与 cms 相关的 2 个主要变化。

    并发标记扫描收集器 (CMS) 的默认开箱即用堆大小和形状参数已被修改。新设置利用了自 JDK 6 发布以来引入的更快平台。与 HotSpot 中的其他收集器一样,CMS 现在将使用平台上可用的物理内存来调整其堆的大小,同时尝试调整该堆以保持与次要收集相关的暂停时间“合理”。堆的特定形状也可能以其他方式依赖于平台。用户可以通过显式调整堆的大小或调整堆的大小(也称为“堆调整”)来覆盖所有或部分这些默认设置,以满足他们的特定需求。

    JDK 6 发行说明包括 CMS 的性能增强。为了提供一种机制来继续使用 JDK 5 提供的行为,提供了 CMSUseOldDefaults 标志。该标志将许多设置恢复为默认状态。在过去的几年里,这个标志的使用很少,大多数客户更喜欢改进的 CMS 性能。现在 jdk7 中删除了 CMSUseOldDefaults 标志。

    来源:JDK 7 中的 Java 虚拟机增强功能

    【讨论】:

      猜你喜欢
      • 2013-02-18
      • 1970-01-01
      • 2012-02-03
      • 2019-07-31
      • 2011-12-24
      • 1970-01-01
      • 2021-07-01
      • 2010-12-24
      • 1970-01-01
      相关资源
      最近更新 更多