dotTrace est un profileur de performances pour applications .NET qui fonctionne directement dans Visual Studio / JetBrains Rider et fournit d'excellents moyens de détecter et d'analyser les goulots d'étranglement de performance. Poursuivez votre lecture pour en savoir plus.
dotTrace vous aide à localiser les goulots d'étranglement de performance dans une variété d'applications .NET, notamment les applications bureautiques, .NET Core, les applications ASP.NET hébergées sur des serveurs web IIS ou IIS Express, les applications Mono et Unity, les services WCF, les services Windows, les applications Universal Windows Platform, et les tests unitaires.
dotTrace vous permet de profiler des applications basées sur n'importe quelle version prise en charge de .NET Framework, .NET Core, .NET, Mono 5.10 ou ultérieur, et Unity 2018.3 ou ultérieur.
Contrairement au profilage de performance "classique" qui ne permet de mesurer que le temps d'exécution des appels de la méthode, le profilage chronologique révèle la répartition des appels dans le temps.
Grâce à la liaison des données d'appel de méthode à une chronologie, ce mode de profilage dépasse la simple détection de la méthode la plus lente : il permet de diagnostiquer les problèmes de performance lorsque l'ordre des événements compte, tels que dans les cas de gels d'interface utilisateur, de nettoyages mémoires excessifs, de distribution inégale des charges de travail, de fichier I/O peu performant, etc.
Cependant, les modes de profilage traditionnels restent disponibles dans dotTrace. Le profilage d'échantillonnage est le moyen le plus simple d'évaluer la performance globale de l'application, tandis que les modes de profilage par traçage et ligne par ligne sont idéaux lorsque vous avez besoin de détails sur le fonctionnement d'un algorithme en particulier.
Vous pouvez segmenter et découper les données de profilage à l'aide de filtres, de l'arborescence des appels ou de diagrammes. En appliquant des filtres, vous obtenez un ensemble d'intervalles de temps sélectionnés par une condition spécifique. Ce fonctionnement est très similaire à l'exécution d'une requête sur une base de données pour obtenir exactement les données dont vous avez besoin.
Par exemple, pour savoir si un gel de l'interface utilisateur est causé par un blocage dû au nettoyage de la mémoire, vous pouvez demander à dotTrace de sélectionner tous les intervalles de temps sur le thread principal où le gel de l'interface utilisateur s'est produit et où un nettoyage de la mémoire bloquant a été effectué. Aussi complexe que cela puisse paraître, cette combinaison de filtres est en fait activée en seulement deux clics.
dotTrace est intégré à Visual Studio, ce qui vous permet de commencer à profiler les applications sur lesquelles vous êtes en train de travailler sans quitter l'IDE. En utilisant le plugin dotTrace dans Rider, vous pouvez lancer un profilage des performances sur une période donnée, profiler des méthodes statiques, des tests unitaires, des processus en cours d'exécution, des applications distantes, etc.
Son intégration avec Visual Studio et JetBrains Rider vous permet d'obtenir une expérience de profilage extrêmement fluide, sans avoir besoin de basculer entre votre IDE et le profileur.
dotTrace vous permet d'analyser facilement le code asynchrone : toutes les "parties" d'un
appel async
sont affichées au même endroit, de sorte que vous n'avez pas besoin de les rechercher
dans différentes piles d'appels.
dotTrace vous permet de profiler instantanément toute méthode statique de votre code. Placez simplement le caret sur la méthode, appuyez sur Alt+Entrée et séléctionnez Debug | Profile dans la liste des actions.
Imaginez ce que cette fonctionnalité peut faire. Vous pouvez profiler n'importe quelle partie de votre code en place, juste après l'avoir écrite ! Pas besoin de générer votre solution, de l'exécuter sous le profileur, d'exécuter un scénario d'utilisation qui exécute votre nouveau code, etc.
La plupart du temps, vous devez profiler des applications exécutées localement. Toutefois, que se passe-t-il si vous êtes confronté à une application lente sur un serveur web distant ?
dotTrace peut se connecter à une machine distante pour profiler une application autonome ou Web, ou un service Windows. Vous n'avez même pas besoin d'y installer dotTrace : copiez-y simplement quelques fichiers.
dotTrace peut être associé à une application en cours d'exécution pour le profilage, et dissocié dès que les données de profilage ont été capturées.
Ceci minimise la charge imposée par l'exécution d'une application sous le profileur. Plus important encore, cela permet d'enquêter sur les problèmes de performance dans des environnements de production où vous ne pouvez tout simplement pas vous permettre de redémarrer une application à chaque fois que vous avez besoin de la profiler.
Si vous possédez un pack Visual Studio + ReSharper* ou JetBrains Rider**, vous pouvez facilement lancer le profilage des tests unitaires à partir de l'éditeur de code ou d'un outil de tests unitaires.
* Même si vous n'avez pas installé ReSharper, vous pouvez profiler dans un outil de tests unitaires natif fourni par NUnit, MSTest ou xUnit.
** Les fonctionnalités de profilage sont réservées aux propriétaires de licences dotUltimate ou All Products Pack.
Lors de l'analyse des instantanés du profilage de la chronologie, vous pouvez filtrer pour exclure les intervalles de temps pendant lesquels votre application Web traite les requêtes HTTP entrantes. Obtenez les données exactes, déterminez la cause profonde exacte et concentrez-vous sur les méthodes à l'exécution lente. Améliorez la rapidité de vos applications Web grâce au profilage de la chronologie.
Utilisez le profilage de la chronologie pour analyser l'impact de chaque requête spécifique sur les performances de l'application. Le filtre Requêtes SQL affiche toutes les requêtes et connexions SQL ainsi que leurs statistiques de performance.
Pour plus de confort, le contenu de la requête peut être ouvert dans une fenêtre séparée pour une analyse plus approfondie. Vous pouvez toujours filtrer toutes les données en choisissant une ou plusieurs requêtes et rechercher les méthodes à partir desquelles elles ont été exécutées.
Dites stop aux requêtes SQL inefficaces !
Profiling SDK permet de contrôler une session de profilage directement à partir de votre code : démarrer et arrêter par programmation la collecte des données de profilage, sauvegarder les instantanés recueillis, etc.
Cela permet deux précieux scénarios d'utilisation. Premièrement, vous pouvez utiliser le SDK pour réduire la portée du profilage et choisir les parties de votre code à profiler. Le deuxième scénario d'utilisation est celui des applications auto-profilées : vous pouvez collecter des statistiques montrant comment votre application se comporte sur les machines des utilisateurs finaux.
dotTrace est livré avec des outils de profilage en ligne de commande qui peuvent être utilisés pour automatiser la collecte d'instantanés de profilage, ce qui est essentiel si vous voulez que le profilage fasse partie intégrante de vos builds d'intégration continue.
Si vous utilisez JetBrains TeamCity comme serveur d'intégration continue, assurez-vous d'installer le plug-in dotTrace sur TeamCity. L'extension contribue à lutter contre la régression des performances des applications en profilant les tests d'intégration. Tout ce dont vous avez besoin est de définir un seuil pour le temps d'exécution du test, et s'il est dépassé, l'extension prendra automatiquement un instantané des performances et rejettera le test.
Parfois, après des heures d'optimisation d'une fonction chronophage, les développeurs doivent recommencer à zéro le profilage pour voir si leur optimisation a réellement fonctionné.
Mais ce n'est pas un problème avec dotTrace. Le profileur peut recalculer immédiatement tous les intervalles de temps de la fonction dans un instantané, en fonction d'un ajustement de temps que vous avez défini et sans reprofiler votre application. C'est un peu comme de demander au profileur : "Et si j'optimisais cette fonction de 40 % ?" Spécifiez simplement le nouveau temps pour une fonction ou pour toutes les fonctions d'une classe particulière. Les durées pour l'ensemble des instantanés seront recalculées.
dotTrace est capable de comparer deux instantanés de performance d'une même application. Il génère un instantané de comparaison qui montre la différence entre le nombre d'appels et le temps consommés par chaque fonction. Les instantanés de comparaison peuvent être visualisés et analysés de la même manière que les instantanés de performance ordinaires.
Essai gratuit sur 30 jours disponible