GCMemoryInfo.MemoryLoadBytes 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
在最後一次垃圾回收發生時,會取得實體記憶體負載。
public:
property long MemoryLoadBytes { long get(); };
public long MemoryLoadBytes { get; }
member this.MemoryLoadBytes : int64
Public ReadOnly Property MemoryLoadBytes As Long
屬性值
當最後一次垃圾回收發生時,物理記憶體載入以位元組為單位。
備註
當程序未在容器中運行或在無記憶體限制的容器中運行時:
- 在 Windows 上,MemoryLoadBytes 是從 MEMORYSTATUS 結構 中取得,單位為位元組除以總物理記憶體。
- 在 Linux 上,MemoryLoadBytes 是透過讀取 MemAvailable /proc/meminfo 欄位除以總實體記憶體所得。
當程序在有記憶體限制的容器中運行,或設定 cgroup 限制時:
- 在 Windows 上,MemoryLoadBytes 是從
- 在 Linux 上,MemoryLoadBytes 是從已使用的實體記憶體中取得,透過 CGroup 記憶體使用檔案(CGroup Memory Usage file)取得 memory.usage_in_bytes ,對於 CGroups v1 memory.current 和 CGroups v2 則除以記憶體限制。 cgroup 限制不一定代表有容器。 你可以用 cgroup 來設定一般程序的限制。
在 Linux 上,當沒有啟用 cgroup 時,會從檔案讀取 /proc/statm 已使用的實體記憶體,從而提供程序常駐的集合大小。
在 Linux 上,若設定虛擬記憶體 rlimit 且負載大於實體記憶體負載,也會使用虛擬記憶體負載。
資料只有在第一次接觸時才會被帶入實體記憶體。 如果你分配了一個大物件但實際上還沒用過它,那大部分記憶體就不在實體記憶體裡。 在這種情況下,分配不會對記憶體負載有顯著影響。