Domanda

Devo controllare quanta memoria è allocata nell'heap. C'è un modo per ottenere questo valore a livello di codice con C #?

Conosco il System.Runtime.InteropServices.Marshal.SizeOf (...) ma questo mi dice solo le dimensioni di un oggetto.

È stato utile?

Soluzione

Utilizzando un PerformanceCounter puoi interrogare " ; # Byte in tutti gli heap " ;, dal tuo processo e persino da altri processi.

Utilizza la categoria " .Net CLR Memory " per vedere molti contatori disponibili.

Devi vedere qual è la differenza nel carico del sistema tra PerformanceCounter e GC.GetTotalMemory che viene proposto da Jon Skeet.

Altri suggerimenti

GC.GetTotalMemory fai tutto il necessario?

(Nota che SizeOf indica anche anche la dimensione smistata - non necessariamente la dimensione in memoria.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top