精品课程网站建设论文,微信二维码网站制作,搭建合作平台,科技强国从升级镜头开始一 jvm的内存模型
2.1 jvm内存模型概览 二 实操案例
2.1 设置和查看栈大小
1.代码
/*** 演示栈中的异常:StackOverflowError** author shkstart* create 2020 下午 9:08** 设置栈的大小#xff1a; -Xss (-XX:ThreadStackSize)** -XX:PrintFlagsFinal*/
public class S…一 jvm的内存模型
2.1 jvm内存模型概览 二 实操案例
2.1 设置和查看栈大小
1.代码
/*** 演示栈中的异常:StackOverflowError** author shkstart* create 2020 下午 9:08** 设置栈的大小 -Xss (-XX:ThreadStackSize)** -XX:PrintFlagsFinal*/
public class StackErrorTest {private static int count 1;public static void main(String[] args) {try {Thread.sleep(10000);} catch (InterruptedException e) {e.printStackTrace();}try {count;main(args);}catch (Throwable e){System.out.println(递归的次数为 count);}}}
2.设置 3.查看 jinfo -flag ThreadStackSize pid 2.2 查堆的大小
1.代码
package com.ljf.jvm.optimise.staick;/*** 1. 设置堆空间大小的参数* -Xms 用来设置堆空间年轻代老年代的初始内存大小* -X 是jvm的运行参数* ms 是memory start* -Xmx 用来设置堆空间年轻代老年代的最大内存大小** 2. 默认堆空间的大小* 初始内存大小物理电脑内存大小 / 64* 最大内存大小物理电脑内存大小 / 4* 3. 手动设置-Xms600m -Xmx600m* 开发中建议将初始堆内存和最大的堆内存设置成相同的值。** 4. -XX:PrintFlagsFinal** create 2021 20:15*/
public class HeapSpaceInitial {public static void main(String[] args) {//返回Java虚拟机中的堆内存总量long initialMemory Runtime.getRuntime().totalMemory() / 1024 / 1024;//返回Java虚拟机试图使用的最大堆内存量long maxMemory Runtime.getRuntime().maxMemory() / 1024 / 1024;System.out.println(-Xms : initialMemory M);System.out.println(-Xmx : maxMemory M);// System.out.println(系统内存大小为 initialMemory * 64.0 / 1024 G);
// System.out.println(系统内存大小为 maxMemory * 4.0 / 1024 G);try {Thread.sleep(1000000);} catch (InterruptedException e) {e.printStackTrace();}}
}2.查看 2.2 设置堆大小和日志输出
1.代码
/** 测试大对象直接进入老年代* -Xms60m -Xmx60m -XX:NewRatio2 -XX:SurvivorRatio8 -XX:PrintGCDetails* create 2021 21:48*/
public class YoungOldAreaTest {public static void main(String[] args) {byte[] buffer new byte[1024 * 1024 * 20];//20m}
}2.进行设置 -Xms60m -Xmx60m -XX:NewRatio2 -XX:SurvivorRatio8 -XX:PrintGCDetails 3.输出日志 2.3 设置元空间的大小与日志输出
1.代码
package com.atguigu.methodarea;/*** 结论* 静态引用对应的对象实体始终都存在堆空间** jdk7* -Xms300m -Xmx300m -XX:PermSize300m -XX:MaxPermSize300m -XX:PrintGCDetails* jdk 8* -Xms300m -Xmx300m -XX:MetaspaceSize300m -XX:MaxMetaspaceSize300m -XX:PrintGCDetails* author shkstart shkstart126.com* create 2020 21:20*/
public class StaticFieldTest {private static byte[] arr new byte[1024 * 1024 * 100];//100MB - 200MBpublic static void main(String[] args) {System.out.println(StaticFieldTest.arr);// try {
// Thread.sleep(1000000);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }}
}2.设置 -Xms300m -Xmx300m -XX:MetaspaceSize300m -XX:MaxMetaspaceSize300m -XX:PrintGCDetails 3.查看