Question

Contexte: Nous construisons un cadre pour la livraison rapide d'applications WPF. Ce cadre utilise Autofac comme conteneur IoC et utilise également les régions de Prism v1. Nous planifions des tâches avec des extensions parallèles de Microsoft.

Nous sommes confrontés au problème suivant: Lorsque nous démarrons l'application avec des vues vides (donc juste un shell avec des contrôles de régions et d'espaces réservés), la mémoire reste stable pendant environ 60 secondes. Elle augmente ensuite toutes les secondes avec 4 Ko, puis 4 Ko, puis 8 Ko. Donc, toutes les 3 secondes, nous avons 16Ko ajoutés à notre pression de mémoire.

Qu'avons-nous essayé de localiser la fuite? J'ai commencé par utiliser dotTrace mais je ne voyais aucune différence entre 2 instantanés pris à 30 minutes d'intervalle. Passé sur le profileur de mémoire .NET car il me donne plus d'informations, mais encore une fois, nous ne voyons aucune différence entre 2 instantanés. Nous pouvons voir qu'un certain nombre d'objets sont créés, mais ils sont également supprimés et aboutissent à un delta de 0. Alors je suis passé à Windbg mais le résultat est le même.

Une autre chose étrange est que lorsque nous démarrons sysinternals dbgvw, aucun appel n'est effectué dans nos applications.

Avez-vous des suggestions sur ce que nous pourrions essayer de faire pour savoir quel est le coupable / qui est le coupable?

Était-ce utile?

La solution 2

Comme il s’est avéré qu’il s’agissait d’un bogue dans WPF, la solution de contournement consistait à créer un gestionnaire de fenêtre comme tout premier objet ou quelque chose de ce genre. Merci les gars

Autres conseils

Si vous recherchez des fuites non gérées et utilisez Visual Studio, vous pouvez obtenir des informations étonnamment utiles à l'aide des fonctions crt intégrées:

voir une réponse à une question connexe

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top