【IT乐知】轻松永远记住经典jvm参数?
jvm的参数有很多 , 必须知道参数分类并且记住面试常见的几个参数 。
一、jvm参数分类根据jvm参数开头可以区分参数类型 , 共三类:“-”、“-X”、“-XX” ,
标准参数(-):所有的JVM实现都必须实现这些参数的功能 , 而且向后兼容;
例子:-verbose:class , -verbose:gc , -verbose:jni……
非标准参数(-X):默认jvm实现这些参数的功能 , 但是并不保证所有jvm实现都满足 , 且不保证向后兼容;
例子:Xms20m , -Xmx20m , -Xmn20m , -Xss128k……
非Stable参数(-XX):此类参数各个jvm实现会有所不同 , 将来可能会随时取消 , 需要慎重使用;
例子:-XX:+PrintGCDetails , -XX:-UseParallelGC , -XX:+PrintGCTimeStamps……
二、关键参数详解最重要和常见的几个参数如下:
■-Xms20m:设置jvm初始化堆大小为20m , 一般与-Xmx相同避免垃圾回收完成后jvm重新分 。
■-Xmx20m:设置jvm最大可用内存大小为20m 。
■-Xmn10m:设置新生代大小为20m 。
■-Xss128k:设置每个线程的栈大小为128k 。
上面这几个参数我以前经常容易被混淆 , 不过后来根据字母拆分就简单了很多 。
如下图:

文章图片
还有几个GC的参数见名知意就不详解了 , 后面测试会一一说明 , 主要的如下:
■-verbose:gc:可以输出每次GC的一些信息;
■-XX:-UseConcMarkSweepGC:使用CMS收集器;
■-XX:-UseParallelGC;
■-XX:-UseSerialGC;
■-XX:CMSInitiatingOccupancyFraction=80CMSgc , 表示在老年代达到80%使用率时马上进行回收;
■-XX:+printGC;
■-XX:+PrintGCDetails:打印GC详情;
■-XX:+PrintGCTimeStamps:打印时间戳;
三、jvm参数设置和测试在idea设置jvm参数之前文章有详细讲过 , 这里就不再赘述了 , 具体看下图:

文章图片
配置的最后两个参数介绍:
■-XX:+PrintGCDetails:打印GC详细信息;
■-XX:SurvivorRatio=8:eden/survivor=8;
运行结果如下图:

文章图片
可以看到输出了一些主要内容 , 对主要的内容解释如下:
PSYoungGen:其中PS是ParallelScavenge的简写 , 整个就表示新生代采用了ParallelScavenge收集器 。
后面紧跟total参数:表示新生代使用内存9216k , 只有9M是因为只计算了eden和fromsurvivor , 我们知道tosurvivor在jvm运行时是预留的 , 只有在回收的时候才会使用 。 刚刚设置新生代内存是10M、eden/survivor=8 , 刚刚验证了配置参数 。
edenspace8192K,33%used:eden区域总共8192k,使用了33% 。 2731/8192约等于0.33 。
fromspace1024K,0%used;
tospace1024K,0%used:因为还没有进行过回收所以两个survivor区域都是空的;
ParOldGentotal10240K,used0K:Par是ParallelOld的简写 , 所以老年代采用的是ParallelOld收集器进行垃圾回收 。
Metaspaceused3312K:元空间 , 因为用的是本地内存 , 所以没有total只有used 。
在代码中加入一个字节数组如下图:

文章图片
可以看到新生代的内存使用比上一个测试增加了512k(3243-2731=513),字节数组长度是512*1024 , 1024个字节等于1k 。 这说明数组确实存放到了堆的新生代!
四、总结这个jvm参数是基于jdk8版本 , 在jdk9后参数设置进行了大改版 , 以后专门再去学习 , 不过学习了解jdk8的参数也是对jvm的学习 , 内容不会变 , 比较现在主流仍然是jdk8 。
推荐阅读
- 电竞圈老中医精通其中一个,轻松上王者,看看你会玩吗,王者荣耀:这三个英雄
- 小爱说游戏20分钟不回城,轻松!,“伽罗”还在出电刀、无尽?核心选择2160
- 典藏版复古传奇热血传奇百味:热血传奇你将永远也不会再看到的“珍品”!
- 话说小王子说难听点就是SKT的养老院,德云色谈VG:VG就是永远买最贵的
- B东解说这个英雄轻轻松松压制!,对线遇到八戒派谁上能克制?吕布钟无艳墨子可以
- 【皇室战争】皇室战争:狂暴模式被吊打?学会这套卡组,轻松连胜拿奖励
- 贤宝宝解说学会轻松突破钻石星耀,网友直呼内行!,最易上分的王者荣耀英雄小技巧
- 游犀社区冷门羁绊助你轻松上分,王者模拟战:我大魏天下无敌!超大型魏国攻略
- 游戏小解说让你轻松买在主升浪启动前,跟上主力资金操作,掌握一个缠论指标
- 诺亚诺宝宝轻松混团只需几百万,地下城与勇士:混团角色打造入门级附魔推荐
