java xms xmx

个人之见,欢迎指正: 
Xmx是java的一个选项,用来设置你的应用程序能够使用的最大内存数(看好,致使你的应用程序,不是整个jvm),如果你的程序要花很大内存的话,那就需要修改缺省的设置,比如配置tomcat的时候,如果流量啊程序啊都很大的话就需要加大这个值了,不过有一点是要记住的,不要大得超过你的机器的内存,那样你的机器会受不了的,到时候就死翘翘了。 
Xms是另一个设置内存的参数,用它来设置程序初始化的时候内存栈的大小,增加这个值的话你的程序的启动性能会得到提高。不过同样有前面的限制,以及受到xmx的限制。 
另外,一个操作系统通常都只使用jvm,这就是你说的“运行在同一个JVM中的程序”,不同的虚拟机的实现虽然千差万别,但是他们的运行模式都是一样的,只是性能有所不同罢了。

 

做java也做了一年了,居然不了解JVM的机制,哈哈,不好意思啦。 
其中我看到说可以设置JVM的堆的大小,就是用上面的两个参数 
其中第一个是初始值,后一个是最大值。 
我现在想问的是这两个参数是设置JVM的堆的大小的,但是JVM本身就是 
已经装好了的产品,难道要在运行某一个Java程序的时候指定吗? 
另外我比如有几个Java应用程序,如果都用到这两个参数,那么JVM到底用 
那个参数呢,比如: 
java -Xms20m -Xmx200m server1 
java -Xms30m -Xmx300m server2 
java -Xms40m -xmx400m server3