2008-09-09 7 views
8

J'essaie de trouver un moyen de déterminer au moment de l'exécution combien de mémoire utilise une classe donnée dans .NET. L'utilisation de Marshal.SizeOf() est terminée, car elle ne fonctionne que sur les types de valeur. Existe-t-il un moyen de vérifier exactement combien de mémoire une classe utilise?Déterminez la quantité de mémoire utilisée par une classe?

Répondre

5

J'ai récemment commencé à étudier ce genre de chose, mais j'ai trouvé que les profileurs de mémoire peuvent donner des informations assez détaillées sur les instances d'objets dans votre application.

Voici un couple qui sont la peine d'essayer:

1

Je suis d'accord qu'une mémoire profileur est la meilleure façon d'obtenir les informations que vous recherchez. En plus des deux mentionnés précédemment, je recommande JetBrains dotTrace, qui est à la fois un profileur de performance et un profileur de mémoire. Si vous voulez le faire vous-même, et que vous voulez aller assez loin dans les tripes du CLR, vous pouvez utiliser le .NET Profiling API, qui est une API non managée (comme Microsoft dit): "permet à un profileur de surveiller l'exécution d'un programme par le Common Language Runtime (CLR). " Ce n'est pas exactement prévu pour une utilisation occasionnelle, mais il a une énorme quantité de fonctionnalités.

Questions connexes