Perché Dumping un processo .NET aumenta l'utilizzo della memoria
-
25-09-2019 - |
Domanda
Abbiamo un servizio .NET utilizzando ~ 30 MB di memoria all'avvio. (Utilizzo VM ~ = Mem)
Ho voluto fare uscire il processo e scoprire che cosa sta tenendo quelli 30MB.
Il debugger CDB generazione del mini-dump maggiore utilizzo mem da 100MB .
Dalla discarica potevo vedere quelli 100MB erano memoria immagini (DLL)
-------------------- Usage SUMMARY -------------------------- TotSize ( KB) Pct(Tots) Pct(Busy) Usage 2d07000 ( 46108) : 02.20% 28.45% : RegionUsageIsVAD 761ac000 ( 1935024) : 92.27% 00.00% : RegionUsageFree 64b0000 ( 103104) : 04.92% 63.62% : RegionUsageImage 900000 ( 9216) : 00.44% 05.69% : RegionUsageStack 9000 ( 36) : 00.00% 00.02% : RegionUsageTeb 380000 ( 3584) : 00.17% 02.21% : RegionUsageHeap 0 ( 0) : 00.00% 00.00% : RegionUsagePageHeap 1000 ( 4) : 00.00% 00.00% : RegionUsagePeb 1000 ( 4) : 00.00% 00.00% : RegionUsageProcessParametrs 2000 ( 8) : 00.00% 00.00% : RegionUsageEnvironmentBlock Tot: 7fff0000 (2097088 KB) Busy: 09e44000 (162064 KB)
L'utilizzo Mem è lasciata alto, molto tempo dopo il debugger staccato. Voglio sapere che cosa è questo involucro / memoria di aumento del carico di immagini?
Grazie.
Soluzione
"In genere, le pagine inutilizzate non fanno parte del set di lavoro, solo dell'indirizzo
spazio. Quando si crea un dump completo, tutte le pagine nello spazio di indirizzi
vengono letti-in, e scritti su disco. Fino a quando le dimensioni della discarica è sostanzialmente equivalente alla dimensione dello spazio degli indirizzi del processo, ciò che si descrive è previsto ".
Ho avuto la risposta da Ivan Brugiolo & Pavel Lebedinsky .