【问题标题】:Efficient GC collection with large heap of 30 - 100GB30 - 100GB 大堆的高效 GC 收集
【发布时间】:2011-07-29 17:28:32
【问题描述】:

Java 7 现在可以有效地处理 30 到 100GB 的大型堆,而不会出现明显的 GC 暂停吗?

【问题讨论】:

  • Java 7 是一种语言。处理一个巨大的堆是实现的一个属性。参考实现不能做到这一点并不意味着所有其他实现都不可能。
  • @delnan:Java7 是一门语言 Hotspot 的新实现,抛开过度的迂腐不谈。这个问题完全有效。
  • @skaffman 我认为 delnan 的意思是 Hotspot 并不是唯一的虚拟机。例如,IBM J9 是另一种实现。 Hotspot 和 IBM J9 有非常不同的 GC 实现和策略。因此,一个人可以做到的事情,另一个人可能无法做到。
  • 不幸的是,购买 Azul 并没有帮助。 Azuls 巧妙的无暂停垃圾收集器需要操作系统支持,除非人们向供应商施加压力,否则不会发生这种情况。在许多人知道这一点之前,这反过来也不会发生。 :-(
  • 是的,我知道,购买 Azul 意味着购买他们完整的技术堆栈。从修改后的 Linux 内核,到他们的虚拟化层,再到他们的 JVM。 Azul Systems 的软件在平台上确实是独一无二的。但正如你所难过的那样,不幸的是,没有多少人知道它。

标签: java garbage-collection heap-memory java-7


【解决方案1】:

有可用的调优选项和并发 GC,但在 tenured generation 的 GC 期间仍然会有一些暂停。

Angelika Langer 在此演示文稿中详细解释了这一点:

http://vimeo.com/28761227

【讨论】:

    【解决方案2】:

    另一种选择是使用 Terracotta BigMemory。如果您将对象存储在堆中的大缓存中,这很有用。这不是开源的,但在我看来,价格合理。 BigMemory 基本上在堆外分配对象内存,因此堆大小可以保持在最小或中等大小。

    【讨论】:

      猜你喜欢
      • 2017-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-28
      • 1970-01-01
      • 1970-01-01
      • 2016-02-11
      相关资源
      最近更新 更多