Java虚拟机参数备忘录

java启动参数共分为三类;

其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;

其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;

其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用;


堆设置

-Xms
-Xmx
设置虚拟机可用内存堆的初始、最大值,缺省单位为字节,该大小为1024的整数倍并且要大于1MB,可用k(K)或m(M)为单位来设置较大的内存数。初始堆大小为2MB。
对于运行系统,为避免GC在运行时频繁调整Heap的大小,通常-Xms与-Xmx的值设成一样。

-Xss
设置线程栈的大小,缺省单位为字节。与-Xmx类似,也可用K或M来设置较大的值。通常操作系统分配给线程栈的缺省大小为1MB。 另外也可在java中创建线程对象时设置栈的大小,构造函数原型为Thread(ThreadGroup group, Runnable target, String name, long stackSize)。

 

另,可通过命令 java -X 来查看所有非标准参数列表。

 

-XX:NewSize=设置年轻代大小。

-XX:NewRatio=设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,

年轻代占整个年轻代年老代和的1/4。

-XX:SurvivorRatio=设置年轻代中Eden区与两个Survivor区的比值。注意Survivor 区有两个。

如:3,表示Eden:Survivor=3:2,一个Survivor 区占整个年轻代的1/5。


-XX:PermSize=64m
-XX:PermSize=256m

以上两项是设置永久区的最小及最大内存值,永久区用于存放虚拟机加载的类信息、常量、静态变量,它是各个线程共享的一块内存区域。

 

你可能感兴趣的:(J2SE)