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.

È stato utile?

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 .

Altri suggerimenti

È possibile utilizzare un profiler per analizzare il consumo di memoria.

  1. NProfiler - FOSS
  2. NCover - non libero
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top