2008-11-24 2 views

Répondre

1

Il est très difficile d'obtenir des mesures sur l'utilisation réelle de la mémoire dans .NET. L'approximation la plus proche que vous pouvez obtenir se fait par objet en appelant Marshal.SizeOf(). Ma compréhension de cette méthode est qu'elle mesure essentiellement la taille d'une version sérialisée de l'objet, et l'empreinte en mémoire peut être proche de cela, ce n'est pas exact. Mais c'est une bonne estimation.

Vous pouvez également rechercher les API SMS sous .NET. Ils fournissent des moyens d'interroger diverses statistiques de la mémoire à partir du système d'exploitation à propos de votre processus (ou d'autres processus). C'est la même bibliothèque que celle utilisée par "perfmon". Vous pourriez être en mesure d'utiliser cela pour inspecter votre processus par programme.

De plus, vous voudrez investir dans un bon outil de profilage pour .NET. J'ai évalué ANTS et dotTrace. Ils sont tout les deux très bien. J'ai préféré dotTrace pour sa simplicité. La plupart des profileurs ont des interfaces très non intuitives. C'est quelque chose que je viens d'attendre. dotTrace est en fait assez bon, selon ces normes. ANTS je pense est probablement plus avancé (pas sûr, juste mon avis de la brève évaluation que j'ai faite sur les deux).

0

Here is an article de MSDN sur la mesure des performances de l'application. Cela inclut des mesures sur l'utilisation de la mémoire.

Je ne pense pas que la mise à jour du .NET Runtime aura un effet significatif sur l'application telle qu'elle est, vous ferez probablement mieux d'optimiser votre application par d'autres moyens. Essayez de vous débarrasser des ressources lorsque vous n'en avez pas besoin.