北冥有魚 其名為鯤 化而為鳥 其名為鵬
阿新 • • 發佈:2019-01-23
一、JVM記憶體分配設定
1. JVM記憶體分配設定的引數有四個:
-Xmx Java Heap最大值,預設值為實體記憶體的1/4,最佳設值應該視實體記憶體大小及計算機內其他記憶體開銷而定;
-Xms Java Heap初始值,Server端JVM最好將-Xms和-Xmx設為相同值,開發測試機JVM可以保留預設值;
-Xmn Java Heap Young區大小,不熟悉最好保留預設值;
-Xss 每個執行緒的Stack大小,不熟悉最好保留預設值;
2. 如何設定JVM的記憶體分配:
(1)當在命令提示符下啟動並使用JVM時(只對當前執行的類Test生效):
java -Xmx128m -Xms64m -Xmn32m -Xss16m Test
二、檢視JVM記憶體資訊
Runtime.getRuntime().maxMemory(); //最大可用記憶體,對應-Xmx
Runtime.getRuntime().freeMemory(); //當前JVM空閒記憶體
Runtime.getRuntime().totalMemory(); //當前JVM佔用的記憶體總數,其值相當於當前JVM已使用的記憶體及freeMemory()的總和
關於maxMemory(),freeMemory()和totalMemory():
maxMemory()為JVM的最大可用記憶體,可通過-Xmx設定,預設值為實體記憶體的1/4,設值不能高於計算機實體記憶體;
totalMemory()為當前JVM佔用的記憶體總數,其值相當於當前JVM已使用的記憶體及freeMemory()的總和,會隨著JVM使用記憶體的增加而增加;
freeMemory()為當前JVM空閒記憶體,因為JVM只有在需要記憶體時才佔用實體記憶體使用,所以freeMemory()的值一般情況下都很小,而JVM實際可用記憶體並不等於freeMemory(),而應該等於maxMemory()-totalMemory()+freeMemory()。JVM)及其記憶體分配的設定
1. JVM記憶體分配設定的引數有四個:
-Xmx Java Heap最大值,預設值為實體記憶體的1/4,最佳設值應該視實體記憶體大小及計算機內其他記憶體開銷而定;
-Xms Java Heap初始值,Server端JVM最好將-Xms和-Xmx設為相同值,開發測試機JVM可以保留預設值;
-Xmn Java Heap Young區大小,不熟悉最好保留預設值;
-Xss 每個執行緒的Stack大小,不熟悉最好保留預設值;
2. 如何設定JVM的記憶體分配:
(1)當在命令提示符下啟動並使用JVM時(只對當前執行的類Test生效):
java -Xmx128m -Xms64m -Xmn32m -Xss16m Test
二、檢視JVM記憶體資訊
Runtime.getRuntime().maxMemory(); //最大可用記憶體,對應-Xmx
Runtime.getRuntime().freeMemory(); //當前JVM空閒記憶體
Runtime.getRuntime().totalMemory(); //當前JVM佔用的記憶體總數,其值相當於當前JVM已使用的記憶體及freeMemory()的總和
關於maxMemory(),freeMemory()和totalMemory():
maxMemory()為JVM的最大可用記憶體,可通過-Xmx設定,預設值為實體記憶體的1/4,設值不能高於計算機實體記憶體;
totalMemory()為當前JVM佔用的記憶體總數,其值相當於當前JVM已使用的記憶體及freeMemory()的總和,會隨著JVM使用記憶體的增加而增加;
freeMemory()為當前JVM空閒記憶體,因為JVM只有在需要記憶體時才佔用實體記憶體使用,所以freeMemory()的值一般情況下都很小,而JVM實際可用記憶體並不等於freeMemory(),而應該等於maxMemory()-totalMemory()+freeMemory()。JVM)及其記憶體分配的設定