dotMemory est un profileur de mémoire .NET qui peut être lancé directement depuis Visual Studio, intégré sous forme de plugin dans JetBrains Rider, ou utilisé en tant qu'outil autonome.
dotMemory vous permet de profiler des applications quelle que soit la version prise en charge des éléments suivants : .NET Framework, .NET Core, .NET, applications web ASP.NET, IIS, IIS Express, services Windows, applications Universal Windows Platform et bien plus encore. Sous macOS et Linux, dotMemory ne peut être utilisé que dans le cadre de JetBrains Rider ou en tant que profileur de ligne de commande.
dotMemory permet d'importer les images mémoire Windows obtenues au cours de l'utilisation du Gestionnaire de tâches ou de l'Explorateur de processus, puis de les analyser en tant qu'instantanés de mémoire standards. Ainsi, vous pouvez bénéficier d'inspections automatiques, de diagrammes de rétention et d'autres fonctionnalités avancées de dotMemory.
Comprendre comment la mémoire est conservée dans votre application est essentiel l'optimiser avec succès. Dans cette vue, la hiérarchie des dominateurs (objets qui conservent exclusivement d'autres objets en mémoire) est représentée sur un graphique en rayons de soleil.
Un simple coup d'œil au graphique vous permet de savoir quels objets sont cruciaux pour votre application et d'identifier les structures les importantes : plus un dominateur conserve de mémoire, plus l'angle central est grand.
Pour obtenir le chemin de rétention du dominateur concerné, cliquez sur l'arc correspondant. Double-cliquez sur un dominateur pour zoomer dans le graphique et voir plus en détail les objets conservés par ce dominateur.
dotMemory est intégré à JetBrains Rider. Il vous permet d'effectuer un suivi de l'allocation de la mémoire en temps réel, une analyse de l'allocation pour des intervalles de temps spécifiques, et bien plus encore. Vous pouvez également lancer une session de profilage de la mémoire à partir de Visual Studio si nécessaire.
Par la suite, vous pouvez naviguer d'un type dans un objet dotMemory à la déclaration du type dans Visual Studio.
Parfois, vous pouvez vouloir ne prendre des instantanés que lorsqu'une certaine condition est vraie. C'est pourquoi dotMemory permet d'automatiser le processus d'obtention des instantanés. Ceci est particulièrement utile lorsque la consommation de mémoire de votre application est considérablement augmentée, ou lorsque prendre un instantané manuellement devient délicat. Définissez simplement une condition particulière et faites en sorte que les instantanés soient collectés automatiquement une fois la condition remplie.
Surveillez la mémoire consommée par votre application, obtenez des instantanés et déposez-les en un clic pour les comparer.
Examinez les objets dans la pile à partir de multiples vues. Vous voulez comprendre les relations entre les différents objets ? Quels objets sont référencés et depuis quels champs ? Vous souhaitez connaître quels appels ont créé ces objets ? Pas de problème ! dotMemory a une vue pour tout !
La comparaison de deux instantanés est la principale façon de trouver les objets qui causent une fuite de mémoire. Utilisez la vue de comparaison pour savoir combien d'objets ont été créés entre les instantanés et combien d'objets ont été collectés.
Alors que le profilagede mémoire a la réputation d'être réservé aux professionnels, l'interface utilisateur unique de dotMemory abaisse considérablement cette barrière à l'entrée et rend le profilage mémoire facile. Vous vous déplacez simplement de haut en bas, d'un ensemble d'objets à des instances spécifiques, jusqu'à ce que vous identifiiez la véritable cause des problèmes de mémoire.
Des allocations et nettoyages de la mémoire excessifs peuvent entraîner une charge significative de gestion de la mémoire. Utilisez la vue "traffic" pour comprendre quels objets sont créés/collectés le plus intensivement dans votre application et quelles fonctions sont à l'origine de ce trafic mémoire.
dotMemory analyse automatiquement votre instantané à la recherche des types courants de problèmes de mémoire, tels que les doublons de chaîne, les matrices creuses, les fuites de gestionnaires d'événements ou les liaisons WPF. Ces inspections peuvent être un excellent point de départ pour l'analyse d'un instantané si vous ne savez pas par où commencer.
dotMemory est livré avec le profileur en ligne de commande dotMemory.exe. Utilisez cet outil pour automatiser le profilage : faites du profilage une partie intégrante de vos builds d'intégration continue ou accélérez simplement vos routines de profilage (par exemple, si vous devez profiler régulièrement la même application et ne souhaitez pas démarrer l'interface utilisateur de dotMemory à chaque fois).
Essai gratuit sur 30 jours disponible