Fonctionnalités de dotMemory

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.

Vue d'accueil de dotMemory

Prise en charge de diverses applications .NET

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.

Prise en charge des vidages de processus

Prise en charge des images mémoire brutes

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.

Diagramme en rayons de soleil

Diagramme en rayons de soleil

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.

Lancer dotMemory depuis Visual Studio

Intégration avec Visual Studio et Rider

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.

Obtenir des instantanés automatiquement

Instantanés automatiques

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.

Vue chronologique

Vue chronologique avec collecte de données en temps réel

Surveillez la mémoire consommée par votre application, obtenez des instantanés et déposez-les en un clic pour les comparer.

De multiples vues sur les données

De multiples vues sur les données

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 !

Comparaison des instantanés de mémoire

Comparaison des instantanés de mémoire

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.

Interface utilisateur simple et complète

Interface utilisateur simple et complète

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.

Analyse du trafic mémoire

Analyse du trafic 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.

Puissantes inspections automatiques

Puissantes inspections automatiques

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.

Profileur en ligne de commande

Profileur en ligne de commande

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).

Télécharger dotMemory

Essai gratuit sur 30 jours disponible