1、設置分配的內存大小
-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M -vmargs 說明后面是VM的參數,所以后面的其實都是JVM的參數了 -Xms128m JVM初始分配的堆內存 -Xmx512m JVM最大允許分配的堆內存,按需分配 -XX:PermSize=64M JVM初始分配的非堆內存 -XX:MaxPermSize=128M JVM最大允許分配的非堆內存,按需分配
2、jvm虛擬機中內存的分配情況
在java虛擬機運行中,所有類實例和數組的內存均從堆中分配,堆是運行時數據區域,隨虛擬機的啟動而創建。除了堆內存之外的內存稱為非堆內存。
因此jvm中內存主要分為堆內存和非堆內存。堆內存,就是java代碼可及的內存,比如實例對象或數組等;非堆內存是jvm留給虛擬機自己用的,比如方法區、常數池、棧等。
2.1、堆內存
通過-Xms指定虛擬機初始分配的堆內存,通常是物理內存的1/64;-Xmx指定最大分配內存,通常是物理內存的1/4.當空余堆內存小於40%時,jvm就會增大堆內存,直到達到-Xmx最大的限制;當空余內存大於70%時,就會減小內存直到達到-Xms最小限制。
2.2、非堆內存
java虛擬機使用 -XX:PermSize 設置非堆內存初始值,默認是物理內存的1/64;由 -XX:MaxPermSize 設置最大非堆內存的大小,默認是物理內存的1/4。