Come posso vedere l'allocazione di memoria in una determinata applicazione .NET?
-
05-07-2019 - |
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.
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.)