JVM有堆内存(Heap)和非堆内存(Non Heap)。
堆内存在JVM启动时分配,主要用来存放用户实例和数组等用户数据,即用户可操作内存。
非堆内存用户不可访问,主要用来存放类方法、结构和一些JVM内部处理程序,即JVM留作自用的内存。
ini文件中的参数:
-vmargs(VirtualMachine Arguments)即JAVA虚拟机参数。
-Xms指的是初始化的堆内存大小,一般为内存的1/64。
-Xmx指的是堆内存的最大空间,一般为内存的1/4。
-XX:PermSize非堆内存的初始大小,一般为内存的1/64。
-XX:MaxPermSize非堆内存的最大空间,一般为内存的1/4
初始内存大小和最大内存大小存在一个关系。当内存空间的可用空间小于40%的时候,
JVM会增加内存知道最大内存,可用空间大于70%的时候JVM会减小内存空间知道初始内存大小。
这种关系对堆内存和非堆内存都适用。
这里有一点儿值得注意的是,在设置eclipse.ini参数的时候要注意Xmx+XX:MaxPermSize<内存限制
现在做开发的机器一般内存都大于4G,这些参数可适当改的富裕一点。
比如:
-Xms256m
-Xmx1024m
-XX:PermSize=512M
-XX:MaxPermSize=1024M