首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用JVM GC args -XX:SurvivorRatio = 8不起作用

首先,了解JVM GC Args是理解JVM垃圾回收机制的重要参数。根据您提供的JVM GC Args -XX:SurvivorRatio = 8,可以看出这个参数是用于设置新生代与老年代的比例,即新生代占整个堆内存的8/10。

然而,根据JVM的垃圾回收机制,新生代回收会频繁进行,而老年代回收相对较慢,因此,设置新生代与老年代的比例是非常重要的,可以影响JVM的垃圾回收效率和内存使用效率。

如果您在设置JVM GC Args -XX:SurvivorRatio = 8后仍然无法起作用,可能有以下原因:

  1. JVM的垃圾回收算法是基于分代回收的,因此需要设置正确的分代参数。
  2. 您的程序中可能存在内存泄漏,导致内存使用不均衡,从而影响垃圾回收的效果。
  3. 您的程序中可能存在内存溢出或其他内存问题,导致内存使用不均衡,从而影响垃圾回收的效果。

因此,建议您检查程序中是否存在内存泄漏或其他内存问题,以及设置正确的分代参数,以便能够实现JVM的垃圾回收和内存使用效率。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JVM判断对象是否存活

-XX:+PrintGCDetails -XX:-UseAdaptiveSizePolicy -XX:SurvivorRatio=8 -XX:NewSize=10M -XX:MaxNewSize=10M...-XX:+PrintGCDetails 启用日志 -XX:-UseAdaptiveSizePolicy 禁用动态调整,使SurvivorRatio可以起作用 -XX:SurvivorRatio=8 设置...Eden:Survivior=8 -XX:NewSize=10M -XX:MaxNewSize=10M 设置整个新生代的大小为10M 使用jmap -histo pid查看堆内的对象 断开栈和堆对象的引用...虽然objA和objB存在相互引用,但是由于栈和堆对象没有了引用关系, 垃圾回收时将objA和objB回收掉,说明JVM虚拟机未使用引用计数法来判断对象是否存活。...可达性分析算法 以GC Root对象为起点,从这些对象为起点,往下搜索,走过的路径为引用连,当一个对象到GC Roots没有任何引用连引用,则证明此对象没有被用到,将会被JVM判定为垃圾。

66500
  • JVM参数配置&&命令工具

    JVM参数配置 大致方向:JVM调优的目的是保证在一定吞吐量的情况下尽可能的减少GC次数,从而减少系统停顿时间,提高服务质量和效率。...整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。 此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。...-XX:MetaspaceDetails=1024m 新生代比例大小配置 -XX:SurvivorRatio=8 eden:from:to = 8:1:1 (default) -XX:SurvivorRatio...=1024m -XX:+PrintCommandLineFlags -XX:+PrintGCDetails //使用默认 -Xmn -XX:SurvivorRatio -XX:NewRatio -XX...-flag : 输出指定args参数的值 -flags : 不需要args参数,输出所有JVM参数的值 -sysprops : 输出系统属性,等同于System.getProperties() jstat

    1K10

    一文理清JVMGC 【第一弹】

    二、JAVA8之后的JVM 从图中我们可以看出JAVA8JVM 用元空间取代了永久代 ? ? ? 三、GC作用域 ?...两个经典参数 -Xms 等价于 -XX: InitialHeapSize -Xmx 等价于 -XX: MaxHeapSize 七、查看JVM默认值 -XX:+PrintFlagsInitial:查看默认初始值...设置元空间大小 元空间的本质和永久代类似,都是对JVM规范中方法区的实现,不过元空间与永久代之间最大的区别在于:元空间并不在虚拟机中,而是使用本地内存。...-XX:+PrintGCdetails 输出详细的GC收集日志信息 -XX:SurvivorRatio 设置新生代中eden和S0/S1空间的比例 默认: -XX:SurvivorRatio=8 -->...Eden:S0:S1=8:1:1 修改: -XX:SurvivorRatio=4 --> Eden:S0:S1=4:1:1 SurvivorRatio值就是设置eden区的比例占多少,S0/S1相同

    41630

    JVM 优化经验总结

    注意:本文仅针对 JDK7、HotSPOT Java 虚拟机,对于 JDK8 引入的 JVM 新特性及其他 Java 虚拟机,本文不予关注。 我们以一个例子开始这篇文章。...分配足够大的年轻代空间,使用 JVM 参数-XX:+PrintGCDetails -Xmx20M -Xms20M-Xmn6M 运行清单 1 所示代码,输出如清单 3 所示。 清单 3....-XX:+PrintGCDetails -Xmx1000M -Xms500M -Xmn100M -XX:SurvivorRatio=8 运行清单 4 所示代码,输出如清单 5 所示。...–XX:+SurvivorRatio=8XX:TargetSurvivorRatio=90 –XX:MaxTenuringThreshold=31 –XX:ParallelGCThreads=20...:设置 20 个线程进行垃圾回收; –XX:+UseParNewGC:年轻代使用并行回收器; –XX:+UseConcMarkSweepGC:年老代使用 CMS 收集器降低停顿; –XX:+SurvivorRatio

    50720

    Tomcat内存设置详解

    JVM中如果98%的时间是用于GC,且可用的Heap size 不足2%的时候将抛出此异常信息。 解决方法:手动设置JVM Heap(堆)的大小。...(我用visualvm.exe查看的) -XX:SurvivorRatio=2  :生还者池的大小,默认是2,如果垃圾回收变成了瓶颈,您可以尝试定制生成池设置 -XX:NewSize: 新生成的池的初始大小...如果 JVM 的堆大小大于 1GB,则应该使用值:-XX:newSize=640m -XX:MaxNewSize=640m -XX:SurvivorRatio=16,或者将堆的总大小的 50% 到 60%...调大新对象区,减少Full GC次数。 +XX:AggressiveHeap 会使得 Xms没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。 ...-XX:userParNewGC 可用来设置并行收集【多CPU】 -XX:ParallelGCThreads 可用来增加并行度【多CPU】 -XX:UseParallelGC 设置后可以使用并行清除收集器

    4.3K20

    JVM调优日志解析分析

    一、调优参数设置 JVMGC日志的主要参数包括如下几个: -XX:+PrintGC 输出GC日志 -XX:+PrintGCDetails 输出GC的详细日志 -XX:+PrintGCTimeStamps...此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。 -XX:SurvivorRatio:新生代中Eden区域与Survivor区域的容量比值,默认值为8。...-Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails * -XX:SurvivorRatio=8 -XX:+UseSerialGC */ public class...=8 新生代中Eden区域与Survivor区域的大小比值 -XX:+UseSerialGC 在新生代和老年代中使用串行收集器,由于-verbose:gc参数对Parallel Scavenge收集器不起作用...大对象直接进入老年代 虚拟机参数为“-XX:+PrintGCDetails -Xms20M -Xmx20M -Xmn10M -XX:SurvivorRatio=8 -XX:PretenureSizeThreshold

    47120

    一篇年薪60万的JVM性能调优文章

    -XX:NewSize 新生代内存大小 -XX:SurvivorRatio Eden 区和 Survivor 区的内存比 GC 优化时最常用的参数是-Xms,-Xmx和-XX:NewRatio。...使用 -XX:PermSize 设置。 官方推荐年轻代占整个堆的 3/8使用 -Xmn 设置。 回收器选择 JVM 给了三种选择:串行收集器、并行收集器、并发收集器。...Xmx2000m -Xmn800m -XX:PermSize=64m -XX:MaxPermSize=256m -XX:SurvivorRatio=4 -verbose:gc -Xloggc:$CATALINA_HOME...-XX:SurvivorRatio=4 SurvivorRatio 为新生代空间中的 Eden 区和救助空间 Survivor 区的大小比值,默认是 8,则两个 Survivor 区与一个 Eden 区的比值为...解决方案: 查看系统是否有使用大内存的代码或死循环;通过添加 JVM 配置,来限制使用内存: -XX:-UseGCOverheadLimit OutOfMemoryError

    64821
    领券