jvm几个参数老是记不住含义,故而用手打印一遍,内容大部分是摘自他人,但结合自己具体使用情况作了修正:
-Xmx
jvm最大可用内存
-Xms
jvm 初始内存,如果内存足够大,建议将该值设置成跟-Xmx一样大,这样可以避免每次垃圾回收后jvm重新分配内存,但是如果是在本地调试程序,不确定自己的机器内存是否足够的话,建议还是设置得小一点,免得程序跑不起来,经常启动eclipse启动不了的时候,多半是因为eclipse的初始配置参数eclipse.ini设置太大导致,改小一点就行了。
-Xmn
年轻代大小, 整个堆大小=年轻代大小 + 年老代大小 + 持久代大小.所以增大年轻代后,将会减小年老代大小.此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8
-Xss
设置每个线程的堆栈大小.JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K.根据应用的线程所需内存大小进行调整.在相同物理内存下,减小这个值能生成更多的线程.但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,在使用tomcat的时候,配置maxThreads时要结合该值一起考虑.本地调试的时候,千万要注意不要配错了,曾经本人弄不清这几个参数,把这个值配成了 128M,程序直接跑不起来,当然知道原因后知道自己好SB。
-XX:NewRatio
设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代).设置为4,则年轻代与年老代所占比值为1:4,年轻代占整个堆栈的1/5
-XX:NewSize
设置年轻代大小,以绝对值来设置
-XX:MaxPermSize
设置持久代大小。持久代通常是加载代码的,这个值要根据自己工程的大小进行调整,如果在tomcat中同时起好几个工程,需要把这个值调整得大一点,否则就汇报out of stack错误。