【问题标题】:What is meant by Full Garbage Collection in dynamic memory deallocation?动态内存释放中的 Full Garbage Collection 是什么意思?
【发布时间】:2014-05-22 04:38:20
【问题描述】:

我实际上正在研究不同 GC 的内部结构,这些 GC 服务于 JVM,即 G1 、 CMS 、 ParallelOld

只是想明白:

GC 在执行完全垃圾回收时采取了哪些不同的操作?

它会强制释放内存吗?

在哪些情况下对应用有利?

【问题讨论】:

  • “强制”释放内存是什么意思?
  • 一个简单的谷歌搜索给了我这个链接javarevisited.blogspot.com/2011/04/…。它很基本,但提供商品
  • @vikeng21 - 该链接被我们的 Intranet 阻止。以后试试看
  • @user3580294 - 我对此感到困惑。
  • 我明白了……我希望“强行”并不意味着我认为的那样。现在,我将其解释为“释放未使用的内存”,这对我来说似乎是不可接受的行为

标签: java garbage-collection jvm dynamic-memory-allocation


【解决方案1】:

术语“完整”是“主要”的同义词,与“次要”垃圾回收周期相对。这些术语与分代垃圾收集方案有关,其中使用一种简单而快速的算法来分配和释放新的和短期的对象,而更复杂的算法用于旧对象。简单的算法以空间换时间,因为它需要两个大小相等的内存块,其中一个总是空的。旧对象的算法进行了相反的权衡。

大多数时候只执行 Minor GC 运行,释放足够的内存以继续运行,并且仅偶尔需要运行 Major (Full) GC 来从老年代恢复空间。由于 full GC 是一个 CPU 密集型、stop-the-world 事件,频繁的 full GC 对应用程序性能来说是一个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-30
    • 2010-11-06
    • 1970-01-01
    • 2019-08-14
    • 2015-12-05
    • 2013-07-09
    • 2018-10-22
    • 1970-01-01
    相关资源
    最近更新 更多