BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #26519同步于 2013/8/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

-Xms可以大于实际可用的内存?

hydralisk001
2013/8/5镜像同步2 回复
我的机器内存为16G $ free total used free shared buffers cached Mem: 16433780 5013600 11420180 0 1363892 2143668 -/+ buffers/cache: 1506040 14927740 Swap: 999420 0 999420 写一个简单的HelloWorld程序 public class HelloWorld{ public static void main(String[] args) { System.out.println("Hello World!"); while(true){ try { Thread.sleep(100); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } 编译后启动 java -Xms22000m -Xmx100000m HelloWorld 这时的初始内存大于实际物理内存,但是程序仍然能够运行。-Xms23000m时就会显示 Error occurred during initialization of VM Could not reserve enough space for object heap 22000m怎么也大于16433780k了吧,但是程序没有报错,这是怎么回事?以参数-Xms22000m同时开两个进程也没问题,用的是jdk7。
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
sdlq101机器人#1 · 2013/8/5
这个只是定义分配的内容,只要在jvm可管理的范围捏就可以恶,你应该是64为的jdk吧 【 在 hydralisk001 的大作中提到: 】 : 我的机器内存为16G : $ free : total used free shared buffers cached : ...................
hydralisk001机器人#2 · 2013/8/6
是64位的jdk,但是-Xms23000m的时候就不行,这个怎么解释?还有JVM启动时向系统申请的内存难道不是-Xms后面的值吗? 【 在 sdlq101 的大作中提到: 】 : 这个只是定义分配的内容,只要在jvm可管理的范围捏就可以恶,你应该是64为的jdk吧