首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAVA GC主要GC与次要GC

JAVA GC主要GC与次要GC
EN

Stack Overflow用户
提问于 2012-11-30 09:25:06
回答 2查看 3.2K关注 0票数 3

在我们的延迟敏感应用程序中,我们有缓存数据(驻留在TG中)和在YG中消失的短暂对象。我已经看到,在小GC时间和主要GC时间有显着的差异。我怀疑这与TG的尺寸相对较大有关。有人能解释GC时间和TG大小有什么关系吗?较小的GC是相当频繁和快速。

EN

回答 2

Stack Overflow用户

发布于 2012-11-30 09:38:48

在YG中保存较小集合的对象将被移动到TG/旧代,以腾出YG中的空间。YG的大小保持较小,以确保较小的集合不会花费太多时间,并且可以更频繁地运行。在这些小GC对象中,仍然具有引用的对象被移动到TG。

所以TG的大小更大,因为通常较大的对象,它们能经受很少的YG清理,会移动到这个段。此外,TG中的清理并不经常运行,因此可以分配更大的内存。

因此,小GC清理YG中的对象,而主GC清除YG和TG。

票数 2
EN

Stack Overflow用户

发布于 2012-11-30 09:35:28

主要的一点是GC时间不是由TG大小决定的,而是由其中的对象数量决定的。性能敏感的应用程序不应使用堆进行缓存。有许多现有的缓存库支持堆外缓存。

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

https://stackoverflow.com/questions/13642241

复制
相关文章

相似问题

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