JVM中內存的設置和分配(最大內存,總內存,剩余內存的區別)


 

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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM