GCMemoryInfo.MemoryLoadBytes プロパティ

定義

最後のガベージ コレクションが発生したときの物理メモリの負荷を取得します。

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 は、 /proc/meminfo から MemAvailable フィールドを物理メモリの合計で除算して取得します。

メモリ制限のあるコンテナーでプロセスが実行されている場合、または cgroup の制限が設定されている場合:

- Windowsでは、MemoryLoadBytes は PROCESS_MEMORY_COUNTERS 構造体 のワーキング セット サイズ フィールドからメモリ制限で割ったバイト単位で取得されます。

- Linux では、MemoryLoadBytes は、CGroup v1 の場合は memory.usage_in_bytes から CGroup メモリ使用量ファイルを使用し、CGroup の場合は memory.current v2 をメモリ制限で除算して、使用された物理メモリから取得します。 cgroup の制限は、必ずしもコンテナーがあることを意味するとは限りません。 cgroup を使用して、通常のプロセスに制限を設定できます。

Linux では、cgroup が有効になっていない場合、使用された物理メモリが /proc/statm ファイルから読み取られます。このファイルは、プロセス常駐セット サイズを提供します。

Linux では、仮想メモリの負荷が設定され、負荷が物理メモリの負荷よりも大きい場合にも、仮想メモリの負荷が使用されます。

データは、最初のタッチでのみ物理メモリに取り込まれます。 大きなオブジェクトを割り当てても実際に使用していない場合、そのメモリのほとんどは物理メモリ内にありません。 この場合、割り当てはメモリ負荷に大きな影響を与えません。

適用対象