GCMemoryInfo.MemoryLoadBytes Propriedade

Definição

Recebe a carga de memória física quando ocorreu a última recolha de lixo.

public:
 property long MemoryLoadBytes { long get(); };
public long MemoryLoadBytes { get; }
member this.MemoryLoadBytes : int64
Public ReadOnly Property MemoryLoadBytes As Long

Valor de Propriedade

A carga física de memória, em bytes, quando ocorreu a última recolha de lixo.

Observações

Quando um processo não está a correr num contentor ou num contentor sem um limite de memória:

- No Windows, os MemoryLoadBytes são obtidos a partir da estrutura MEMORYSTATUS em bytes divididos pela memória física total.

- No Linux, o MemoryLoadBytes é obtido ao ler o campo MemAvailable de /proc/meminfo dividido pela memória física total.

Quando um processo está a correr num contentor com um limite de memória ou quando os limites do cgroup são definidos:

- No Windows, os MemoryLoadBytes são obtidos a partir do campo Tamanho do Conjunto de Trabalho na estrutura PROCESS_MEMORY_COUNTERS em bytes divididos pelo limite de memória.

- No Linux, o MemoryLoadBytes é obtido da memória física usada através do ficheiro CGroup Memory Usage do memory.usage_in_bytes CGroups v1 e memory.current do CGroups v2, dividido pelo limite de memória. Os limites do grupo cgroup não significam necessariamente que exista um contentor. Podes usar o cgroup para definir limites num processo normal.

No Linux, quando não há cgroup ativado, a memória física usada é lida do /proc/statm ficheiro, que fornece o tamanho do conjunto residente do processo.

No Linux, a carga de memória virtual também é usada se o rlimit de memória virtual estiver definido e se a carga for maior do que a carga de memória física.

Os dados só são trazidos para a memória física ao primeiro toque. Se alocaste um objeto grande mas não o usaste realmente, a maior parte da sua memória não está na memória física. Neste caso, a alocação não afetará significativamente a carga de memória.

Aplica-se a