首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是什么导致java小gc?

是什么导致java小gc?
EN

Stack Overflow用户
提问于 2012-02-16 23:31:08
回答 2查看 2.2K关注 0票数 1

我说的是UseParNewGC。我对java gc小集合的理解是这样的。当jvm检测到eden已满时(或者它无法满足分配请求)

threads

  • Computes
  1. 停止所有应用程序--伊甸园中的活动对象和一个幸存者空间--并将它们移动到另一个
  2. ,如果没有足够的空间进行移动,或者如果幸存者中的对象是旧的,它会将其升级为旧代。在
  3. 恢复应用线程时,
  4. 标记伊甸园和清理后的幸存者。

完全正确吗?是否有一种情况,即即使伊甸园没有满,也会触发小gc?

EN

回答 2

Stack Overflow用户

发布于 2012-02-17 06:27:51

我觉得你做得对。在某些情况下,除了完整的eden空间之外,还会触发一个主要的GC,例如调用System.gc()或RMI。在这种情况下,还将运行一个较小的GC。

票数 1
EN

Stack Overflow用户

发布于 2012-05-08 02:16:29

检测到eden已经满(或者它不能满足分配请求)时,是的。但是它会动态地对生成进行评估,以满足收集器的某些目标。主要是暂停时间和部分CPU时间花在GC上。

因此,这些目标间接地决定了小集合发生的频率。主要的集合还可能在运行之前触发一个小集合,以减少来自短暂的年轻对象对旧对象的引用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9320739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档