Comment voir l'allocation de mémoire dans une application .NET donnée?
-
05-07-2019 - |
Question
Je dois vérifier la quantité de mémoire allouée dans le tas. Existe-t-il un moyen d’obtenir cette valeur par programme avec C #?
Je connais le System.Runtime.InteropServices.Marshal.SizeOf (...)
mais cela ne me dit que la taille d'un objet.
La solution
En utilisant un PerformanceCounter , vous pouvez interroger le " ; # Octets dans tous les tas ", de votre propre processus, et même d’autres processus.
Utilisez la catégorie "Mémoire .Net CLR". pour voir beaucoup de compteurs disponibles.
Vous devez voir quelle est la différence de charge du système entre PerformanceCounter et GC.GetTotalMemory proposé par Jon Skeet.
Autres conseils
Est-ce que GC.GetTotalMemory
tout ce dont vous avez besoin?
(Notez que SizeOf
ne vous indique que la taille marshalled - pas nécessairement la taille en mémoire.)