Comment puis-je déterminer la quantité de mémoire consommée par un domaine d’application .Net ?
Question
J'essaie de restreindre par programme la consommation de mémoire des plugins exécutés dans un AppDomain .Net, mais je ne trouve aucun paramètre de configuration pour cela, et je ne trouve pas non plus de moyen d'interroger un AppDomain pour déterminer la quantité de mémoire qu'il consomme .Des idées?
La solution
Voici la documentation pour interroger l'utilisation de la mémoire d'un processus.Ce n’est pas la même chose que AppDomain, mais cela pourrait être un point de départ.
http://msdn.microsoft.com/en-us/library/s80a75e5(VS.80).aspx
Vous pouvez également demander au GC ce qui, selon lui, est actuellement alloué.
http://msdn.microsoft.com/en-us/library/system.gc.gettotalmemory(VS.71).aspx
Autres conseils
Vieille question, mais en attendant (depuis .Net framework 4.0) une nouvelle solution est disponible.Vous devrez activer ARM (Application Domain Resource Monitoring).À partir de ce moment, vous pouvez demander des informations sur le temps processeur total consommé, l'utilisation de la mémoire, etc.
Je ne suis pas sûr par programmation, mais Explorateur de processus peut vous indiquer la quantité de mémoire utilisée par un AppDomain .net.Peut-être qu'ils ont de la documentation sur la façon dont ils interrogent ces informations.
Utilisation de l'interopérabilité mscoree.CorRuntimeHostClass à partir de C:\WINDOWS\Microsoft.NET\Framework\vXXXXXX\mscoree.tlb