2010-12-15 25 views
1

Quelle est la meilleure façon d'identifier les fuites de mémoire pour une application Windows VB.NET 3.5?Identification des fuites de mémoire dans l'application Windows VB.NET à l'aide de SQL Server 2005

+0

Quelques questions: Pourquoi pensez-vous que vous avez des fuites de mémoire? Utilisez-vous des objets COM? Quelle version de VS utilisez-vous? –

+0

VS 2008, la raison pour laquelle je demande est parce que sur les formulaires dans mon application ont tendance à devenir très lent que de plus en plus de gens tentent d'y accéder – Amit

+0

Vraisemblablement les gens ne sont pas tous assis à un ordinateur. S'il s'agit d'une application Winforms, les «personnes de plus en plus nombreuses» utilisent chacune leur propre mémoire sur leurs propres machines. Vous avez une fuite de mémoire ou un problème d'évolutivité sur votre serveur. Comment obtenez-vous des données pour votre application? – Bill

Répondre

3

Les poignées de fenêtre qui fuient sont une erreur fréquente dans une application Winforms. Induit en appelant Controls.Clear() ou Controls.Remove() sans appeler Dispose() sur le (s) contrôle (s) supprimé (s). Vous pouvez résoudre ce problème avec Taskmgr.exe, l'onglet Processus. Afficher + Sélectionner les colonnes et cocher les objets USER, les objets GDI et les poignées. Observez les valeurs de ces colonnes pendant l'exécution de votre application. Si vous voyez les objets USER grimper régulièrement, vous n'appelez pas Dispose() sur un contrôle quand vous le devriez. Escalader les objets GDI ont tendance à être des bitmaps que vous ne disposez pas.

Si cela ne fonctionne pas, un profileur de mémoire est votre ressource suivante. Dépenser de l'argent sur un décent.