目錄
Java 記憶取得使用情況 Runtime.getRuntime().totalMemory, freeMemory
Java 傳回虛擬機器記憶體資訊的「總計」、「已使用」和「最大可用」資訊。
各項目的解釋如下。
- 全部的…Runtime.getRuntime().totalMemory()這是分配給 Java 虛擬機器的記憶體量。
- 使用量…Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory()變得,
目前在記憶體中分配的物件的記憶體使用情況。 - 最大可用…Runtime.getRuntime().maxMemory()是 Java 虛擬機器將嘗試使用的最大記憶體量。
如果使用量接近總容量,並且即使透過垃圾回收也無法保證可用內存,Java 虛擬機將擴展到「最大可用」容量。
範例程式
/** * 傳回有關 Java 虛擬機器的總記憶體、已使用的記憶體量以及它嘗試使用的最大記憶體量的資訊。 * @return Java虛擬機器記憶體資訊 */ public static String getMemoryInfo() { DecimalFormat f1 = new DecimalFormat("#,###KB"); DecimalFormat f2 = new DecimalFormat("##ime); ).freeMemory() / 1024; 長總計= Runtime.getRuntime().totalMemory() / 1024; 長最大值= Runtime.getRuntime().maxMemory() / 1024; 長已使用= 總計- 空閒; 雙倍比率= (已使用* 100 / (double)total); String info = "Java記憶體資訊:Total = + f1.format(total) + ", " + "Used = + f1.format(used) + " (" + f2.format(比率) + "%)," + "最大可用="+f1.format(max); 回傳訊息; }
執行結果1
◆執行範例
公共靜態無效主(字串[] args){ System.out.println(getMemoryInfo()); }
◆輸出結果
Java記憶體資訊:總計=1,984KB,使用量=458KB(23.1%),最大可用=65,088KB
執行結果2
◆執行範例
嘗試更改 Java 堆大小並運行。
Java 堆大小的值可以指定為 Java 指令的選項。
java -Xms64m -Xmx512m 主要
-Xms初始堆大小
指定 Java 虛擬機器的初始記憶體分配。預設值為 2MB。
-Xmx最大堆疊大小
指定分配給 Java 虛擬機器的最大記憶體。預設值為 64MB。
公共靜態無效主(字串[] args){ System.out.println(getMemoryInfo()); }
◆輸出結果
Java記憶體資訊:總計=65,088KB,使用量=524KB(0.8%),最大可用=520,256KB
「總 Runtime.getRuntime().totalMemory()」是-Xms,「最大可用Runtime.getRuntime().maxMemory()」是-Xmx它鏈接到。