在java如何获取可用用内存大小,一般都会是Runtime的maxMemory()方法,具体实例:
public class MM{
public static void main(String[] args) {
System.out.println("Runtime max: " + (double)(Runtime.getRuntime().maxMemory())/1024/1024);
}
}
使用CMS 回收器时, 应为使用复制算法,所以小于-Xmx设置值
java -Xmx100m -Xms10m -XX:+UseConcMarkSweepGC MM
Runtime max: 96.6875
使用G1 回收器时,
java -Xmx100m -Xms10m -XX:+UseG1GC MM
Runtime max: 100.0
使用ZGC回收器,
java -Xmx100m -Xms10m -XX:+UnlockExperimentalVMOptions -XX:+UseZGC MM
Runtime max: 100.0