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.

Était-ce utile?

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.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top