Pourquoi l'immersion d'un processus .NET augmente l'utilisation de la mémoire
-
25-09-2019 - |
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.
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 .