文章目录
MAXTENURINGTHRESHOLD参数讲解
在GC回收的时候. 如下图详解 From 区和To区 会来回的复制和交换位置. 每交换一次,就会增加一次年龄. 默认交换了15次, 就会从新生代到老年代中去.
MaxTenuringThreshold设置垃圾的最大年龄. 默认为15 . 最大也是15,在jdk8中. 范围为 0到15.
MAXTENURINGTHRESHOLD代码实战
用于测试的代码如下 ,为了程序在后台能够持续的运行., 因此代码中使用了Thread.sleep(Integer.MAX_VALUE);
, 首先不设置任何的jvm参数,运行
public class MyHelloGc {
public static void main(String[] args) throws InterruptedException {
System.out.println("***************HELLO GC");
Thread.sleep(Integer.MAX_VALUE);
}
}
程序运行后, 在terminal使用jps -l, 查看后台正在运行的java进程号 . 如下图所示, 可以看到当前程序的进程号为 19156
使用jinfo -flag MaxTenuringThreshold 19156 查看 参数的值. 如下所示.MaxTenuringThreshold的值默认为 15.
E:\java_dayly\myjvmdemo>jinfo -flag MaxTenuringThreshold 19156
-XX:MaxTenuringThreshold=15
当把jvm的参数, 设置成20时
项目启动后, 提示报错如下 . 提示 设定的20无效. 只能是在0到 15之间.
当把值设定为9 ,再次启动项目时 .-XX:MaxTenuringThreshold=9
通过jps 和 jinfo 可以看到 设定的值已经生效了 .
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)