为了账号安全,请及时绑定邮箱和手机立即绑定

【备战春招】第15天+JVM结构

标签:
Java

课程名称:Java生产环境下性能监控与调优详解

课程章节:第七章

主讲老师:若鱼1919

课程内容:


    1. https://img3.sycdn.imooc.com/63e7bd370001fde110420634.jpg

    2. https://img2.sycdn.imooc.com/63e7bd330001f24709400365.jpg

    3. image-20230211235842685运行时数据区

    4. jvm内存结构

图片中内容的具体含义我就不在上面写了,因为都是理论性的东西,啥时候用啥时候背吧,字体太多了。

课程收获:

网上找了一些参数:还都是比较常用的,老师基本上就修改了一下内存大小,给大家演示了一下,有需要的同学自取吧。

(1)-Xms20M 表示设置JVM启动内存的最小值为20M,必须以M为单位

(2)-Xmx20M 表示设置JVM启动内存的最大值为20M,必须以M为单位。将-Xmx和-Xms设置为一样可以避免JVM内存自动扩展。大的项目-Xmx和-Xms一般都要设置到10G、20G甚至还要高

(3)-verbose:gc 表示输出虚拟机中GC的详细情况

(4)-Xss128k 表示可以设置虚拟机栈的大小为128k

(5)-Xoss128k 表示设置本地方法栈的大小为128k。不过HotSpot并不区分虚拟机栈和本地方法栈,因此对于HotSpot来说这个参数是无效的

(6)-XX:PermSize=10M 表示JVM初始分配的永久代(方法区)的容量,必须以M为单位

(7)-XX:MaxPermSize=10M 表示JVM允许分配的永久代(方法区)的最大容量,必须以M为单位,大部分情况下这个参数默认为64M

(8)-Xnoclassgc 表示关闭JVM对类的垃圾回收

(9)-XX:+TraceClassLoading 表示查看类的加载信息

(10)-XX:+TraceClassUnLoading 表示查看类的卸载信息

(11)-XX:NewRatio=4 表示设置 年轻代(包括Eden和两个Survivor区)/老年代 的大小比值为1:4,这意味着年轻代占整个堆的1/5

(12)-XX:SurvivorRatio=8 表示设置2个Survivor区:1个Eden区的大小比值为2:8,这意味着Survivor区占整个年轻代的1/5,这个参数默认为8

(13)-Xmn20M 表示设置年轻代的大小为20M

(14)-XX:+HeapDumpOnOutOfMemoryError 表示可以让虚拟机在出现内存溢出异常时Dump出当前的堆内存转储快照

(15)-XX:+UseG1GC 表示让JVM使用G1垃圾收集器

(16)-XX:+PrintGCDetails 表示在控制台上打印出GC具体细节

(17)-XX:+PrintGC 表示在控制台上打印出GC信息

(18)-XX:PretenureSizeThreshold=3145728 表示对象大于3145728(3M)时直接进入老年代分配,这里只能以字节作为单位

(19)-XX:MaxTenuringThreshold=1 表示对象年龄大于1,自动进入老年代,如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象在年轻代的存活时间,增加在年轻代被回收的概率。

(20)-XX:CompileThreshold=1000 表示一个方法被调用1000次之后,会被认为是热点代码,并触发即时编译

(21)-XX:+PrintHeapAtGC 表示可以看到每次GC前后堆内存布局

(22)-XX:+PrintTLAB 表示可以看到TLAB的使用情况

(23)-XX:+UseSpining 开启自旋锁

(24)-XX:PreBlockSpin 更改自旋锁的自旋次数,使用这个参数必须先开启自旋锁

(25)-XX:+UseSerialGC 表示使用jvm的串行垃圾回收机制,该机制适用于丹cpu的环境下

(26)-XX:+UseParallelGC 表示使用jvm的并行垃圾回收机制,该机制适合用于多cpu机制,同时对响应时间无强硬要求的环境下,使用-XX:ParallelGCThreads=设置并行垃圾回收的线程数,此值可以设置与机器处理器数量相等。

(27)-XX:+UseParallelOldGC 表示年老代使用并行的垃圾回收机制

(28)-XX:+UseConcMarkSweepGC 表示使用并发模式的垃圾回收机制,该模式适用于对响应时间要求高,具有多cpu的环境下

(29)-XX:MaxGCPauseMillis=100 设置每次年轻代垃圾回收的最长时间,如果无法满足此时间,JVM会自动调整年轻代大小,以满足此值。

(30)-XX:+UseAdaptiveSizePolicy 设置此选项后,并行收集器会自动选择年轻代区大小和相应的Survivor区比例,以达到目标系统规定的最低响应时间或者收集频率等,此值建议使用并行收集器时,一直打开

(31) -XX:NewSize 设置年轻代大小
(32) -XX:MaxNewSize 年轻代最大值
(33) -XX:ThreadStackSize 设置线程栈大小


加油加油!

https://img1.sycdn.imooc.com/63e7bd690001d95416171099.jpg





点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
6
获赞与收藏
4

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消