堆空间的内存分配
public class Test {
public static void main(String[] args) {
//-Xms 调整初始堆内存 ,-Xmx 最大堆内存
//返回JVM中堆的内存总量
long initMemory = Runtime.getRuntime().totalMemory() / 1024 / 1024;
//返回JVM中堆的最大内存总量
long maxMemory = Runtime.getRuntime().maxMemory() / 1024 / 1024;
System.out.println("-Xms:" + initMemory + "M");
System.out.println("-Xmx:" + maxMemory + "M");
//默认情况下初始内存是计算机内存的1/64
System.out.println("-系统内存大小为:" + initMemory * 64.0 / 1024 + "G");
//默认情况下最大内存是计算机内存的1/4
System.out.println("-系统内存大小为:" + maxMemory * 4.0 / 1024 + "G");
}
}
这是一个gc信息
我提前设置为堆内存600M,实际可用575M
(25600+25600+153600+409600) /1024 =600