Cette page détaille les dernières nouveautés et modifications apportées à dotMemory.
Essai gratuit sur 30 jours disponible
La mise à jour 2024.3 introduit un certain nombre de petites améliorations de l'expérience et de l'interface utilisateur, ainsi que des touches finales unifiant l'apparence et l'ergonomie de toutes les versions de dotMemory sur tous les systèmes d'exploitation.
Nous avons réintroduit la vue Creation Stack Trace, qui avait été supprimée précédemment lors de la refonte de l'interface utilisateur. Cette vue affiche la pile d'appels des fonctions qui ont conduit à la création d'un objet, et vous aide ainsi à identifier plus facilement la cause première des problèmes de mémoire.
Nous avons également réimplémenté la vue Back Traces pour les ensembles d'objets. Cette arborescence d'appels inversée dans la vue affiche la chaîne d'appels à partir de la fonction qui a créé un ensemble particulier d'objets, en partant du bas vers le haut.
Vous pouvez maintenant afficher l'arborescence des dominateurs sous forme de graphique en cascade, affichant la consommation de mémoire du dominateur et des objets retenus. Cette fonctionnalité est disponible sous Windows, Linux et macOS pour la version autonome de dotMemory et dotMemory dans JetBrains Rider.
La possibilité de visualiser un Call Tree sous forme de graphique en rayons de soleil, introduite dans la version 2024.2, est désormais disponible sur Windows, Linux et macOS pour la version autonome de dotMemory et dotMemory dans JetBrains Rider.
Nous avons ajouté des options de filtrage à la vue Instances :
^nAsso.{5,}ID$
correspond à nAssociatedObjectID.nAssociatedObjectID
. Ces fonctionnalités sont accessibles depuis la version autonome de dotMemory et celle intégrée à JetBrains Rider.
Les versions de dotMemory pour Linux et macOS disposent désormais de fonctionnalités autrefois réservées à la version Windows :
Ces fonctionnalités sont accessibles depuis la version autonome de dotMemory et celle intégrée à JetBrains Rider.
Le Call Tree peut désormais s'afficher sous forme de graphique Sunburst (rayons de soleil), afin de mettre en évidence les fonctions qui allouent le plus de mémoire. Cette fonctionnalité est disponible dans les versions autonomes de dotMemory (Linux et macOS) et celles intégrées à JetBrains Rider (Windows, Linux et macOS).
Vous pouvez désormais profiler des applications basées sur le framework MAUI.
Actuellement, dotMemory prend en charge le profilage des applications WinUI ciblant .NET 7.0+ sous Windows.
La prise en charge est disponible pour la version autonome de dotMemory et pour celle intégrée à Rider et ReSharper.
.app
) au lieu de fichiers exécutables. net7.0-macos
, net8.0-macos
sont pris en charge. La version autonome de dotMemory sous Linux et macOS se rapproche de la version disponible sous Windows en fournissant :
Les informations relatives aux objets immuables du Frozen Object Heap s'affichent sur la chronologie, le diagramme Heap Fragmentation et la vue Generations.
Vous pouvez maintenant exécuter la version indépendante de dotMemory sous les systèmes d'exploitation Linux et macOS.
dotMemory vous permet maintenant d'importer et d'analyser les dumps de processus sous forme d'instantanés standards sous Linux. Veuillez noter que la version Linux de dotMemory ne peut importer que les dumps collectés à partir des processus exécutés sur le système d'exploitation Linux.
Avant la version 2023.2, vous pouviez utiliser dotMemory dans Rider seulement pour l'analyse de l'allocation de mémoire. Dans la version 2023.2, vous pouvez collecter des instantanés de mémoire et les analyser dans Rider, tout comme dans la version autonome de dotMemory.
Vous pouvez désormais utiliser dotMemory sur les CPU ARM64 sous Windows. Cela s'applique à toutes les versions : dotMemory standalone, dotMemory dans Rider, dotMemory dans Visual Studio et l'outil de ligne de commande dotMemory.
Vous pouvez désormais exécuter le profileur en ligne de commande dotMemory sur les processeurs ARM32 sous Linux. Les frameworks .NET Core 3.1 et .NET 5.0-7.0 sont pris en charge.
En plus de Windows, dotMemory est maintenant disponible pour JetBrains Rider sous Linux et macOS. Deux nouveaux modes de profilage sont disponibles dans le widget Run et dans le menu Run | Switch profiler configuration : Memory (sampled allocations) et Memory (full allocations). Vous trouverez plus d'informations sur les différences entre ces modes dans l'aide de dotMemory.
Vous pouvez attacher le profileur à un processus en cours d'exécution depuis le menu Run et voir le graphique Timeline Graph se déployer en temps réel. Sélectionnez un intervalle pour ouvrir la vue Memory Allocations, qui est la même que dans la dotMemory Standalone. Cette vue vous permet d'analyser les objets alloués et les arborescences d'appels d'allocation pour une période donnée.
Malheureusement, il n'est pas encore possible de collecter des instantanés de mémoire dans cette version.
Le profileur en ligne de commande dispose désormais de l'argument --saving-mode
, qui vous permet de configurer les conditions de déclenchement de l'enregistrement d'un espace de travail dotMemory.
dotMemory est maintenant disponible directement dans JetBrains Rider :
Le plugin dotMemory ne permet pas de collecter des instantanés et fonctionne uniquement sous Windows pour la version 2022.2.
L'exécuteur de ligne de commande dotMemory prend maintenant en charge les versions 3.13 à 3.15 d'Alpine. Les processeurs et frameworks suivants sont pris en charge :
Lorsqu'un instantané est généré à l'aide de l'API de profilage, vous pouvez désormais spécifier un nom pour l'instantané en utilisant DotMemory.GetSnapshot("snapshot name");
Ce nom s'affichera sur la page Home | Snapshots de dotMemory.
Il est désormais possible d'attacher le profileur à une application en cours d'exécution en faisant simplement glisser l'icône spéciale sur la fenêtre d'application.
L'outil de ligne de commande de dotMemory affiche désormais sa progression pendant l'enregistrement d'un instantané.
La vue Similar Retention traite maintenant les données beaucoup plus vite.
L'outil de ligne de commande dotMemory fonctionne maintenant sur les ordinateurs équipés des processeurs Apple Silicon. Vous pouvez utiliser l'outil de ligne de commande dotMemory pour profiler des applications .NET 6 (mode natif) et .NET 5 (mode Rosetta 2).
Nous avons complètement retravaillé l'algorithme sous-jacent à l'arborescence de dominance (le graphique de conservation d'objets). Même si un ensemble d'objets contient des centaines de millions d'objets, dotMemory peut ouvrir une vue spécifique en quelques minutes.
dotMemory peut désormais obtenir des données échantillonnées d'allocation de mémoire basées sur les événements ETW. La méthode d'échantillonnage est moins précise que la méthode classique (statistique) de collecte des données d'allocation, mais a plusieurs avantages :
Veuillez noter que cette fonctionnalité est uniquement disponible sous Windows.
La vue Subsystems permet maintenant d'analyser les données d'allocation de mémoire. Un sous-système regroupe toutes les méthodes appartenant au même type, espace de noms ou assembly. La vue qui en résulte affiche les objets créés par les sous-systèmes et une arborescence d'appels fusionnée pour chaque sous-système.
Dans cette version, nous avons continué à améliorer les moyens d'analyser l'allocation de mémoire. Deux nouveaux onglets ont été ajoutés à la vue Memory Allocation :
La barre de recherche située en haut des vues dotMemory est désormais plus flexible et simple à utiliser :
Il est maintenant possible de :
Il est désormais possible d'utiliser des messages de service pour activer et désactiver la collecte des données d'allocation de mémoire.
Une trace de pile copiée dans le presse-papiers dans dotMemory est désormais automatiquement ouverte dans Rider / Visual Studio avec ReSharper.
Nous avons complètement retravaillé l'écran d'accueil de dotMemory : ces modifications rendent la configuration et le lancement de nouvelles sessions de profilage et le travail avec des instantanés beaucoup plus faciles.
Vous pouvez désormais analyser les dumps d'applications .NET Core collectés sur les systèmes Linux à l'aide de gcore
.
dotMemory vous permet désormais d'analyser l'allocation de mémoire sur un intervalle de temps arbitraire. Sélectionnez simplement l'intervalle de temps et la vue Memory Allocation vous montrera les objets alloués sur cet intervalle, ainsi que la trace de pile qui les a alloués.
Essai gratuit sur 30 jours disponible