标签:设置 细分 内存大小 Xmx 内存 幸存者 伊甸园 Xms
堆内存细分
现代垃圾回收器大部分是基于分代收集理论设计,堆空间可以细分为:
JDK8之前:新生代+养老区+永久区
JDK8及以后:新生代+养老区+元空间
其中,新生区又可以划分为:伊甸园区、幸存者0区、幸存者1区
设置堆内存大小
(1)-Xms:设置初始状态堆内存大小,
等价于-XX:InitialHeapSize
-Xmx:设置最大堆内存大小
等价于-XX:maxHeapSize
-Xmx和-Xms只能设置新生区+养老区内存大小,不能设置永久代的大小
(2)默认情况下,初始堆内存大小为物理电脑内存的64分之一,最大堆内存大小为物理电脑内存的4分之一
(3)获取JVM堆内存总量:(单位byte)
long Runtime.getRuntime().totalMemory(); //初始大小
long Runtime.getRuntime().maxMemory(); //最大大小
(4)建议将初始堆内存大小和最大堆内存大小设置成相同的值
(5)-Xms和-Xmx设置的值是新生区+养老区的总空间,如果输入-Xmx和-Xms的值的话,会发现输出的值比设置的值小(比如-Xms和-Xmx设置的大小都是600M,但是输出的值显示只有575M),这是因为新生区中包含伊甸园区、幸存者0区、幸存者1区,伊甸园区可以存放对象,但是幸存者0区和幸存者1区二者之间只能有一个存放对象,另一个不能(二选一),输出的-Xms和-Xmx就没有包含未存放对象的那个幸存者区,因此输出的值略小于设定的值
标签:设置,细分,内存大小,Xmx,内存,幸存者,伊甸园,Xms
来源: https://blog.csdn.net/m0_46381657/article/details/113852995
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。