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