Je suis en train de résoudre certains problèmes de mémoire que nous rencontrons dans notre application .NET WinForms. J'utilise SciTech's .NET Memory Profiler ainsi que dotTrace et ils semblent tous être des affectations de racine indicting par les gestionnaires d'événements statiques dans les contrôles .NET Framework. De google'ing autour, j'ai trouvé des rapports de ce here et here mais cela semble être rapporté sur la version 1.1 du .NET Framework et les corrections promises pour 2.0. Nous courons sur 2.0 et nous voyons toujours ces problèmes. Les 25 principaux délinquants de mémoire que j'ai trouvés pointent tous vers ces gestionnaires d'événements statiques et spécifiquement SystemEvents.UserPreferenceChanged. This guy est allé très loin pour trouver un moyen de se détendre ces gestionnaires. Je n'ai pas encore essayé, mais j'ai essayé la solution de contournement mentionnée dans le ticket de support de Microsoft, et aucun d'entre eux n'a fonctionné pour moi. Je connais bien le potentiel de fuites des gestionnaires d'événements (en particulier les gestionnaires statiques de longue vie), mais celui-ci est presque hors de mon contrôle. Quelqu'un a-t-il une expérience avec ceci?Les fuites de mémoire statiques EventHandler dans le framework
Répondre
Pour les problèmes de fuite de mémoire vraiment profonds dans le CLR, je trouve que le meilleur outil est windbg. Si vous pouvez passer la syntaxe cryptique, c'est un débogueur incroyablement efficace et un traqueur de fuite. L'inconvénient est qu'il n'est pas très intuitif à utiliser et il y a une courbe d'apprentissage très raide.
La meilleure façon d'apprendre le windbg est de le faire. Voici quelques articles qui parlent d'utiliser windbg pour localiser une fuite.
Je ne sais pas si WinDBG va aider ici. Il semble que ce soit vraiment un bug dans le cadre. Est-il possible de poster un simple repro? Si oui, alors je pourrais creuser dans ce que le diable se passe et voir s'il y a une solution de contournement. Sinon, votre meilleur pari serait d'ouvrir un ticket sur Connect. Ils sont plutôt bons pour revenir aux gens.
Si vous vouliez l'étudier avec WinDBG, vous pourriez étudier ce qui se passe sur le tas pour voir ce qui se passe. Commencez à regarder ce que les objets qui traînent sont enracinés. Je suppose que vous verrez à peu près ce que vous voyez dans les profileurs ci-dessus. La chose délicate avec WinDBG est qu'il peut vous dire à peu près tout ce que vous voulez - vous devez savoir quelles questions vous voulez répondre en y allant.
- 1. Comment repérer les fuites de mémoire dans le profileur?
- 2. Fuites de mémoire dans le cacao
- 3. Les délégués et les fuites de mémoire dans l'iPhone?
- 4. Fuites de mémoire dans C# WPF
- 5. delete [] et fuites de mémoire
- 6. cfnetwork fuites de mémoire dans l'iPhone
- 7. Suivre les fuites de mémoire dans un script Ruby
- 8. Sur JQuery, les fermetures et les fuites de mémoire possibles
- 9. Mémoire de fuites de données de base?
- 10. Dépannage Grailles/Fuites de mémoire Groovy?
- 11. Prévention des fuites de mémoire AJAX
- 12. UIViews associés à des fuites de mémoire
- 13. Comment traiter les objets statiques lors de la surcharge et de la suppression pour trouver des fuites de mémoire?
- 14. Détection des fuites de mémoire dans ActionScript-3 Project
- 15. contrôleur uiimagepickerview créant des fuites de mémoire dans l'iphone - pourquoi?
- 16. Combien de temps les fuites de mémoire peuvent-elles persister dans les programmes RPGLE?
- 17. G ++ outil de détection de fuites de mémoire multi-plateforme
- 18. Comment vérifier les fuites de mémoire dans les modules d'extension Guile?
- 19. C++: Débogage de fuites de mémoire dans le système de comptage de références
- 20. Quel est le meilleur moyen de vérifier les fuites de mémoire en C++?
- 21. Zend Framework - Eléments de formulaire statiques
- 22. Comment activer le suivi des fuites de mémoire avec FastMM dans DUnit?
- 23. Comment puis-je empêcher les fuites de mémoire dans IE Mobile?
- 24. Comment puis-je suivre et déboguer les fuites de mémoire JavaScript dans Firefox?
- 25. Quelles sont les façons de résoudre les fuites de mémoire en C#
- 26. Comment mesurer les fuites de mémoire dans .NET d'une manière fiable et automatique?
- 27. Existe-t-il des outils pour détecter les fuites de mémoire dans mon programme Perl?
- 28. EventHandler dans un TFrame?
- 29. iPhone Help: Fuite de mémoire impaire dans CoreLocation Framework
- 30. Pourquoi le gestionnaire de mémoire de Delphi signale-t-il de fausses fuites de mémoire à l'arrêt?
Le lien de connexion est incorrect - vous l'avez comme http: // https: // –