-Xms -Xmx -Xmn -Xss -XX:

这两天遇到了pergen space的问题,在晚上查了查发现还挺普遍,并且通过eclipse启动,通过bat启动或者linux下通过sh启动,处理方式是不一样的,不过都是调整jvm的大小

如果有遇到同样的问题参考这个http://www.cnblogs.com/my-king/p/4535274.html

着里只是整理下jvm的几个参数分别代表什么意思。

先说堆内存分配:

-Xms 是最小堆内存

-Xmx 是最大堆内存

一般来说调整这两个就够了,当然还有在这个基础上更详细的设置,一般用不着就不细说了。

-XX:NewSize  设置年轻代大小

-XX:NewRatio  设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4

-XX:SurvivorRatio   年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:3,表示Eden:Survivor=3:2,一个Survivor区占整个年轻代的1/5

-XX:MaxPermSize  设置持久代大小

 如果大家看不懂上面的名字请参考这个http://www.iteye.com/topic/894148,图片画的很清楚。

然后再说下非堆的内存分配:

-XX:PermSize:表示非堆区初始内存分配大小
-XX:MaxPermSize:表示对非堆区分配的内存的最大上限。

这里请注意,GC仅会清理PermGen中的常量池信息,而不会清理类元数据信息,所以设置大小的时候要注意。该结论推导过程参照http://bbs.csdn.net/topics/390369218,讨论帖最后回复。

先上个例子

-Xms128m -Xmx1024m -XX:PermSize=256M -XX:MaxPermSize=512m

 就是说jvm的堆区最小128最大1024,持久区最小256最大512

原文地址:https://www.cnblogs.com/my-king/p/4535470.html