Depuis Visual Studio, il est possible d’analyser le comportement de cette application console. Pour ceci, il suffit de naviguer dans le menu, de sélectionner la catégorie « Analyse » (en RC1, « Developer en beta 2) puis de chosir l’option « Lauch Performance Wizard » pour se faire guider.

En suivant les différentes étapes de l’assistant, on obtient rapidement la fenêtre suivante dédiée à l’exécution de séances de profiling et à la gestion des rapports.

En cliquant sur le bouton « Launch », l’application console démarre, et, une fois son exécution terminée, les informations collectées sont rassemblées dans un rapport qu’il ne reste plus qu’à consulter.
Le rapport est composé de plusieurs onglets d'onglets : « Summary » (le résumé général), « Call Tree » (vu ci-dessous, « Modules » (les DLL les plus couteuses), « Caller / Callee » (analyser l’évolution de la stack après coup), « Functions » (toutes les fonctions appelées), « Marks » (détaillé plus tard) et « Process » (pour les applications multithreadées).
Parmi ces onglets, celui intitulé "Call Tree" permet de mettre en avant les différents appels de méthode ayant été effectués en mettant en avant leur temps d'exécution de deux façons:
- Inclusive Time: le temps en millisecondes d'exécution de la méthode et de ses méthodes enfants (les sous appels)
- Exclusive Time: le temps en millisecondes d'exécution de la méthode en ignorant ses enfants (le temps réellement gaspillé donc)
Lorsque l'on cherche a optimiser du code, il est donc important de repérer les méthodes ayant un "Inclusive" mais surtout un "Exclusive Time" élevé. La tâche était rendu possible dans VS 2005 Team Dev, il suffisait de parcourir l'arbre des appels jusqu'à mettre en avant le problème, mais dans VS 2008, un petite icone supplémentaire nommé "Expand HotPath" propose de faire directement le travail de mise en avant:
Encore une petite astuce pour gagner du temps dans l’utilisation de ces outils déjà très complets. Bonne optimisation!