JVM整合篇
阅读该博客之前,先阅读上一遍关于jvm的讲解
贡献博客阅读:
1、自己整合汇总:https://www.cnblogs.com/xzlnuli/p/16253264.html
2、垃圾回收算法及垃圾回收:https://blog.csdn.net/qq_39827131/article/details/90580935
1. JVM内存分配设置的参数有四个
-Xmx Java Heap最大值,默认值为物理内存的1/4;
-Xms Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM能够保留默认值;
-Xmn Java Heap Young区大小,不熟悉最好保留默认值;
-Xss 每一个线程的Stack大小,不熟悉最好保留默认值;
-XX:PermSize:设定内存的永久保存区域;
-XX:MaxPermSize:设定最大内存的永久保存区域;
-XX:NewSize:设置JVM堆的‘新生代’的默认大小;
-XX:MaxNewSize:设置JVM堆的‘新生代’的最大大小;
-XX:NewRatio :新生代与年老代的比例。比如为3,则新生代占堆的1/4,年老代占3/4
-XX:SurvivorRatio:新生代中调整eden区与survivor区的比例,默认为8,即eden区为80%的大小,两个survivor分别为10%的大小。(备注:这个参数设定是讲解复制算法那一章中,解决复制算法内存减半的办法。eden区即是复制算法一章中80%的那部分,而survivor区则是两个10%的那部分。)
2. 如何设置JVM的内存分配
(1)当在命令提示符下启动并使用JVM时(只对当前运行的类Test生效):
java -Xmx128m -Xms64m -Xmn32m -Xss16m Test