2010-12-09 88 views
1

Dans .NET, Quels sont les outils/moyens efficaces pour tester les exceptions de mémoire insuffisante?Comment tester les exceptions de mémoire insuffisante?

Existe-t-il un outil permettant de limiter virtuellement la mémoire de l'application pour déclencher des exceptions d'insuffisance de mémoire plus rapidement que d'habitude? ou existe-t-il de bons guides pour tester ces exceptions et s'assurer qu'il n'y a pas de fuite de mémoire dans l'application?

Je suis particulièrement intéressé par la façon dont nous pouvons obtenir notre équipe Q/A pour tester les problèmes de mémoire?

Répondre

1

Un profileur de mémoire tel que ANTS Memory Profiler est un excellent outil pour trouver des fuites. Pour une option gratuite WinDbg+SOS est recommandé. Il existe déjà several questions on troubleshooting memory leaks utilisant ces deux outils.

Si vous voulez simuler une pression de mémoire supplémentaire, le plus simple est simplement d'allouer plus de mémoire, par ex. pendant le démarrage. Gardez à l'esprit que le MOO peut être déclencheur en raison d'un manque de mémoire contiguë plutôt que d'un manque de mémoire. C'est à dire. il peut être difficile de couvrir tous les scénarios possibles ici.

+0

Merci Brian, j'utilise efficacement le profileur de mémoire, mais dans les applications complexes et volumineuses, il est vraiment difficile d'identifier certains cas. Je pensais que l'ajout de plus de pression de mémoire aurait de l'aide. Bien que je ne sois pas sûr :) Aussi, je veux que notre équipe Q/A pour tester les problèmes de mémoire activement plutôt que seuls les développeurs essaient d'optimiser (ou d'ignorer) les problèmes de mémoire –

+0

@dr. mal: Je vous recommande d'établir une ou plusieurs lignes de base pour votre application, de sorte que vous avez une idée de la quantité de mémoire nécessaire pour gérer différents scénarios. Cela vous donnera une meilleure chance d'identifier quand quelque chose ne va pas. –

+0

Bon point, mais les différences sont généralement si subtiles ou prend des heures à produire Je ne sais pas comment nous pouvons le tester dans un court laps de temps (ou automatiquement) –