Question

Nous avons un service .NET en utilisant ~ 30 Mo de mémoire au démarrage. (VM ~ = utilisation Mem)
Je voulais vider le processus et savoir ce qui se tient les 30MB.

Le débogueur PEH génération de la mini-décharge accrue mem par l'utilisation 100MB .
De la décharge, je pouvais voir les 100 Mo étaient mémoire d'image (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'utilisation de mem reste élevé, longtemps après que le débogueur détaché. Je veux savoir ce que cette image est boîtier de charge / mémoire raise?

Merci.

Était-ce utile?

La solution

"En règle générale, les pages non utilisées ne font pas partie du jeu de travail, juste de l'adresse espace. Lorsque vous créez un vidage complet, toutes les pages de l'espace d'adressage sont en lecture dans et écrites sur le disque. Tant que la taille de la décharge est essentiellement équivalente à la taille de l'espace d'adressage du processus, ce que vous décrivez est prévu « .
Je suis la réponse de Ivan Brugiolo & Pavel Lebedinsky .

Autres conseils

Vous pouvez utiliser un profileur pour analyser la consommation de mémoire.

  1. NProfiler - FOSS
  2. NCover - pas libre
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top