java 獲取非堆記憶體使用量
阿新 • • 發佈:2019-01-28
java.lang.management
類 MemoryUsage
java.lang.Object java.lang.management.MemoryUsage
public class MemoryUsage
extends Object
表示記憶體使用量快照的 MemoryUsage 物件。MemoryUsage 類的例項通常由某些特定的方法構造,這些方法用於獲得關於 Java 虛擬機器的單個記憶體池或 Java 虛擬機器的全部堆(或非堆)記憶體的記憶體使用量資訊。
MemoryUsage 物件包含四個值:
init | 表示 Java 虛擬機器在啟動期間從作業系統請求的用於記憶體管理的初始記憶體容量(以位元組為單位)。Java 虛擬機器可能在執行過程中從作業系統請求更多的記憶體,也可能將記憶體釋放給系統。init |
used | 表示當前已經使用的記憶體量(以位元組為單位)。 |
committed | 表示保證可以由 Java 虛擬機器使用的記憶體量(以位元組為單位)。已提交的記憶體量可以隨時間而變化(增加或減少)。Java 虛擬機器可能會將記憶體釋放給系統,committed 可以小於 init。committed 將始終大於或等於 used。 |
max | 表示可以用於記憶體管理的最大記憶體量(以位元組為單位)。可以不定義其值。如果定義了該值,最大記憶體量可能隨時間而更改。已使用的記憶體量和已提交的記憶體量將始終小於或等於
max(如果定義了 max)。如果記憶體分配試圖增加滿足以下條件的已使用記憶體將會失敗:used > committed |
+----------------------------------------------+ +//////////////// | + +//////////////// | + +----------------------------------------------+ |--------| init |---------------| used |---------------------------| committed |----------------------------------------------| max