GCMemoryInfo.MemoryLoadBytes Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.