美文网首页java jvm
jvm 《三A》刷新软引用对象的原因是什么?

jvm 《三A》刷新软引用对象的原因是什么?

作者: a_Ygygs_Dxdsr_X | 来源:发表于2019-02-18 15:46 被阅读0次

从1.3.1开始,可轻松访问的对象在最后一次引用后将保持活动一段时间。默认值是堆中每个可用兆字节的生命周期的一秒。可以使用-XX:SoftRefLRUPolicyMSPerMB标志调整此值 ,该标志接受表示毫秒的整数值。例如,要将值从一秒更改为2.5秒,请使用此标志:

-XX:SoftRefLRUPolicyMSPerMB = 2500

Java HotSpot Server VM使用最大可能的堆大小(使用-Xmx选项设置 )来计算剩余的可用空间。

Java Hotspot Client VM使用当前堆大小来计算可用空间。

这意味着服务器VM的一般趋势是增加堆而不是刷新软引用, -Xmx因此对软引用何时进行垃圾回收具有显着影响。

另一方面,客户端VM将更倾向于刷新软引用而不是增加堆。

上述行为适用于1.3.1到Java SE6版本的Java HotSpot VM。但是,此行为不是VM规范的一部分,并且在将来的版本中可能会发生更改。同样,-XX:SoftRefLRUPolicyMSPerMB不保证在任何给定版本中都存在该 标志。

在1.3.1版之前,Java HotSpot VM在发现它们时清除了软引用。

当我定期打开-verbose:gc时,我得到了很多完整的GC,我已经调整了堆,它没有任何区别,发生了什么?

如果您正在使用RMI,那么您可能会遇到分布式GC。此外,一些应用程序正在添加显式GC认为它将使其应用程序更快。幸运的是,您可以使用1.3及更高版本中的命令行选项禁用此功能。试着 -XX:+DisableExplicitGC 随着  -verbose:gc,看看是否有所帮助。

---------------------

作者:a_Ygygs_Dxdsr_XdMss

来源:CSDN

原文:https://blog.csdn.net/weixin_42749765/article/details/87450776

版权声明:本文为博主原创文章,转载请附上博文链接!

相关文章

  • jvm 《三A》刷新软引用对象的原因是什么?

    从1.3.1开始,可轻松访问的对象在最后一次引用后将保持活动一段时间。默认值是堆中每个可用兆字节的生命周期的一秒。...

  • 引用的四种分类

    强引用(Strong Reference):JVM宁愿抛出OOM,也不会让GC回收的对象 软引用(Soft Ref...

  • 对象的引用

    一、概述 Java对象的引用:强引用,软引用,弱引用和虚引用。众所周知,Java中是JVM负责内存的分配和回收,这...

  • 对象引用

    引用类型GC回收时间用途生存时间强引用不会回收对象的一般状态JVM停止时弱引用GC时对象混存内存不足时终止软引用内...

  • 【Java JVM】Java 内存溢出 栈溢出的原因与排查方法

    1、 内存溢出的原因是什么? 内存溢出是由于没被引用的对象(垃圾)过多造成JVM没有及时回收,造成的内存溢出。如果...

  • 弱引用,虚引用,强引用

    强引用:直接的对象引用;软引用:当一个对象只有软引用存在时,系统内存不足时此对象会被gc回收;弱引用:当一个对象只...

  • 四种引用类型的学习记录

    四种引用的对比 类型回收机制用途生存时间强引用从不回收对象的状态JVM停止运行时软引用内存不足时回收缓存内存不足时...

  • Java 中的弱引用,虚引用,软引用

    软引用 软引用是一种比强引用生命周期稍弱的一种引用类型。在JVM内存充足的情况下,软引用并不会被垃圾回收器回收,只...

  • 强引用、软引用、弱引用、幻象引用的理解

    问题: 强引用、软引用、弱引用、幻象引用有什么区别?具体使用场景是什么? 知识点: 对象可达性对象可达性对于我们理...

  • Java中的四种引用

    Java中的四种引用 强引用 软引用 软引用有什么特点呢? 当内存不足,会触发JVM的GC,如果GC后,内存还是不...

网友评论

    本文标题:jvm 《三A》刷新软引用对象的原因是什么?

    本文链接:https://www.haomeiwen.com/subject/rknaeqtx.html