Nouveautés de dotMemory

Cette page détaille les dernières nouveautés et modifications apportées à dotMemory.

Télécharger dotMemory

Essai gratuit sur 30 jours disponible

Interface utilisateur 2024.3

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.

Vue Creation Stack Trace pour les instances d'objet 2024.3

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.

Vue Back Traces pour les ensembles d'objets 2024.3

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.

Ability to visualize dominators with an icicle chart 2024.3

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.

Call Tree avec graphique en rayons de soleil désormais disponible sur tous les systèmes d'exploitation 2024.3

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.

Amélioration de la recherche d'instances 2024.2

Nous avons ajouté des options de filtrage à la vue Instances :

  • Recherche par valeur de chaîne : saisissez n'importe quelle valeur de chaîne dans le champ de filtre ; dotMemory mettra en évidence les chaînes correspondantes. Cela facilite la recherche d'instances de chaînes spécifiques en fonction de leur contenu.
  • Prise en charge des expressions régulières pour les valeurs de chaîne : utilisez des expressions régulières pour des recherches plus précises. Par exemple, ^nAsso.{5,}ID$ correspond à nAssociatedObjectID.nAssociatedObjectID.
  • Recherche par adresse d'objet : vous pouvez également rechercher des instances d'objet en fonction de leur adresse mémoire. Cela permet de suivre directement des objets spécifiques.

Ces fonctionnalités sont accessibles depuis la version autonome de dotMemory et celle intégrée à JetBrains Rider.

Améliorations dans dotMemory pour Linux et macOS 2024.2

Les versions de dotMemory pour Linux et macOS disposent désormais de fonctionnalités autrefois réservées à la version Windows :

  • Inspections automatiques de la mémoire : dotMemory pour Linux et macOS inclut désormais la vue Inspections, qui détecte automatiquement plusieurs problèmes de mémoire.
  • Comparaison d'instantanés entre plusieurs espaces de travail : vous pouvez maintenant comparer des instantanés provenant de différentes sessions de profilage.

Ces fonctionnalités sont accessibles depuis la version autonome de dotMemory et celle intégrée à JetBrains Rider.

Visualisation de Call Tree avec un graphique Sunburst 2024.2

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

Prise en charge des applications MAUI

Prise en charge des applications MAUI 2024.1

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.

Amélioration de la prise en charge de macOS 2024.1

  • Désormais, la version autonome de dotMemory vous permet de spécifier des ensembles d'applications (.app) au lieu de fichiers exécutables.
  • dotMemory dans Rider permet de profiler les configurations d'exécution de macOS. Les frameworks cibles net7.0-macos, net8.0-macos sont pris en charge.
Nouvelles vues pour Linux et macOS dans dotMemory

Nouvelles vues dans dotMemory pour Linux et macOS 2024.1

La version autonome de dotMemory sous Linux et macOS se rapproche de la version disponible sous Windows en fournissant :

  • La vue Similar Retention pour analyser les ensembles d'objets
  • Le diagramme Sunburst pour analyser les objets dominateurs

Prise en charge du Frozen Object Heap 2024.1

Les informations relatives aux objets immuables du Frozen Object Heap s'affichent sur la chronologie, le diagramme Heap Fragmentation et la vue Generations.

Version autonome de dotMemory sous Linux et macOS 2023.3 Bêta

Vous pouvez maintenant exécuter la version indépendante de dotMemory sous les systèmes d'exploitation Linux et macOS.

Analyser les dumps de processus sous Linux 2023.3

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.

Analyse des instantanés dans JetBrains Rider 2023.2

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.

  • L'analyse des instantanés est disponible sous Windows, Linux et macOS.
  • Sous Windows, vous pouvez également importer et analyser les vidages de processus.
  • Certaines fonctionnalités et vues ne sont pas disponibles, par exemple les inspections automatiques des instantanés et les vues de création de traces de pile.

Prise en charge de Windows ARM64 2022.3

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.

Prise en charge de Linux ARM32 2022.3

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.

dotMemory dans JetBrains Rider 2022.3

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.

Améliorations du profileur en ligne de commande dotMemory 2022.3

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 dans JetBrains Rider 2022.2

dotMemory est maintenant disponible directement dans JetBrains Rider :

  • Deux nouveaux modes de profilage sont disponibles dans le widget Run et dans le menu principal via Run | Switch profiler configurations : 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 joindre le profileur à un processus en cours d'exécution dans le menu Run.
  • Observez la section Timeline Graph s'exécuter en temps réel en sélectionnant un intervalle et en ouvrant la vue Memory Allocation. Cela est équivalent à la même vue dans la version autonome de dotMemory et vous permet d'approfondir l'analyse de la période voulue.

Le plugin dotMemory ne permet pas de collecter des instantanés et fonctionne uniquement sous Windows pour la version 2022.2.

Prise en charge des distributions Linux basées sur musl 2022.1

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 :

  • x64 : .NET Core 3.1, .NET 5.0–6.0.
  • arm64 : .NET 5.0–6.0.

API de profilage améliorée 2022.1

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.

Attachement aux applications par glisser-déposer 2022.1

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.

Améliorations de l'outil de ligne de commande 2022.1

L'outil de ligne de commande de dotMemory affiche désormais sa progression pendant l'enregistrement d'un instantané.

Amélioration des performances de la vue Similar Retention 2022.1

La vue Similar Retention traite maintenant les données beaucoup plus vite.

Prise en charge des processeurs Apple Silicon 2021.3

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

Améliorations des performances 2021.3

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.

Données d'allocation de mémoire échantillonnée 2021.3

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 :

  • La collecte de données par échantillonnage n'affecte pas les performances.
  • Ce type de collecte de données n'a pas à être explicitement activé, il reste toujours actif.
  • Les données d'allocation échantillonnées peuvent également être collectées lorsque vous joignez le profileur à une application qui est déjà en cours d'exécution.

Veuillez noter que cette fonctionnalité est uniquement disponible sous Windows.

Vue Subsystems 2021.3

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.

Mise à jour de l'analyse de l'allocation de mémoire 2021.2

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 :

  • L'onglet Methods vous permet d'analyser une liste simple des méthodes qui ont alloué de la mémoire.
  • L'onglet Call Tree vous permet d'analyser l'arborescence des appels d'allocation. Chaque nœud de l'arborescence indique non seulement la méthode appelée mais aussi les objets alloués par l'appel.

Amélioration des filtres 2021.2

La barre de recherche située en haut des vues dotMemory est désormais plus flexible et simple à utiliser :

  • Les filtres disposent d'options supplémentaires pour restreindre le champ de recherche : #struct (uniquement dans les types de valeurs), #c (uniquement dans les types), #m (uniquement dans les méthodes), #ns (uniquement dans les espaces de noms).
  • Vous pouvez obtenir de l'aide pour tous les filtres possibles dans un contexte donné.

Amélioration de l'exportation d'objets 2021.2

Il est maintenant possible de :

  • Spécifier la profondeur de traversée lors de l'exportation de données d'objets.
  • Sélectionner un ou plusieurs types et exporter leurs données dans un seul fichier.
  • Exporter les données d'objet des vues Instances, Outgoing References et Unreachable Objects.

Mise à jour du profileur de console 2021.2

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.

Copie de la trace de la pile dans le presse-papiers 2021.2

Une trace de pile copiée dans le presse-papiers dans dotMemory est désormais automatiquement ouverte dans Rider / Visual Studio avec ReSharper.

Nouvel écran d'accueil 2021.1

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.

Prise en charge des dumps Linux

Prise en charge des dumps Linux 2021.1

Vous pouvez désormais analyser les dumps d'applications .NET Core collectés sur les systèmes Linux à l'aide de gcore.

Amélioration de l'analyse de l'allocation mémoire

Amélioration de l'analyse de l'allocation mémoire 2021.1

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.

Télécharger dotMemory

Essai gratuit sur 30 jours disponible