1. 程式人生 > >Java SE之調整JVM內存筆記

Java SE之調整JVM內存筆記

runt xmx -xms 開發測試 系列 tun 計算 空閑 筆記

[文檔整理系列] Java SE之調整JVM內存筆記

一般JVM內存限制是64Mbyte

Eclipse下 Run as configration
Arguments選項:-Xmx80m 【設置虛擬機JVM最大開辟內存為80Mbyte】


===================================================
一. 設置JVM內存的參數有四個:

  -Xmx Java Heap最大值,默認值為物理內存的1/4,最佳設值應該視物理內存大小及計算機內其他內存開銷而定;

  -Xms Java Heap初始值,Server端JVM最好將-Xms和-Xmx設為相同值,開發測試機JVM可以保留默認值;

  -Xmn Java Heap Young區大小,不熟悉最好保留默認值;

  -Xss 每個線程的Stack大小,不熟悉最好保留默認值;


二、查看設置JVM內存信息
  官方文檔:http://docs.sun.com/source/819-0084/pt_tuningjava.html

  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內存分配。

Java SE之調整JVM內存筆記