内存大小
堆内存分配JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制,即当前堆内存使用超过60%就要增大;空余堆内存大于70% 时,JVM会减少堆直到-Xms的最小限制,即当前内存使用小于30%就要减小。
如何查看
Runtime run = Runtime.getRuntime();
long max = run.maxMemory()/1024/1024;
long total = run.totalMemory()/1024/1024;
long free = run.freeMemory()/1024/1024;
long usable = max - total + free;
System.out.println("最大内存 = " + max+"M");
System.out.println("已分配内存 = " + total+"M");
System.out.println("已分配内存中的剩余空间 = " + free+"M");
System.out.println("最大可用内存 = " + usable+"M");
结果:我的电脑内存是4G
最大内存 = 876M
已分配内存 = 59M
已分配内存中的剩余空间 = 58M
最大可用内存 = 875M
如何修改
找到eclispe 中window->preferences->Java->Installed JRE ,点击右侧的Edit 按钮,在编辑界面中的 “Default VM Arguments ”选项中,填入如下值即可。对所有的工程有效。
-Xms64m -Xmx128m
在代码上右键,依次点击“Run As ”-> “Run Configurations ”,在Arguments 参数中的“VM arguments: ”中填入如下值即可。只对本类有效
-Xms64m -Xmx128m