首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GC在java中角色的软引用

GC在java中角色的软引用
EN

Stack Overflow用户
提问于 2018-05-11 08:38:57
回答 1查看 4.7K关注 0票数 2

最近,我遇到了这篇文章,GC对Jenkins进行了调优,它讨论了这个参数:-XX:SoftRefLRUPolicyMSPerMB

https://jenkins.io/blog/2016/11/21/gc-tuning/

我理解它可以防止OOM错误,因为当它到达阈值时,它会清除软引用对象。

1)这个阈值(在-XX:SoftRefLRUPolicyMSPerMB中默认为1000 is )是什么意思?这个值表示什么?

2)我的詹金斯似乎有80%的软化感(用HProf观察)

3)正如上面文章所建议的,如果我将这个-XX:SoftRefLRUPolicyMSPerMB标志降到10 As,会有什么后果呢?

注意:我们使用G1GC

谢谢,

哈里

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-11 08:48:18

1) 来自甲骨文

从1.3.1开始,软可达对象在上一次被引用之后将保持一定的存活时间。默认值是堆中每in空闲生存期的一秒。可以使用-XX:SoftRefLRUPolicyMSPerMB标志调整此值,该标志接受表示毫秒的整数值。例如,若要将值从1秒更改为2.5秒,请使用以下标志: -XX:SoftRefLRUPolicyMSPerMB=2500

3)我的意思是,在你所链接的那篇文章中,它有明确的规定。您可能会通过牺牲一些性能来释放堆空间。我们还能告诉你什么?

如果Jenkins消耗过多的旧一代内存,那么通过将-XX:SoftRefLRUPolicyMSPerMB从默认的(1000)减少到更小的(比如10-200),可以使软引用更容易刷新。问题是,SoftReferences通常用于相对昂贵的加载对象,例如延迟加载的构建记录和管道FlowNode数据。

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

https://stackoverflow.com/questions/50288346

复制
相关文章

相似问题

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