I. Présentation▲
La société Red-Gate nous a proposé de réaliser le test de plusieurs de ses applications.
Voici dès lors le premier des nombreux tests que vous pourrez découvrir dans les prochaines semaines.
I-A. Site officiel▲
I-B. L'utilitaire testé▲
Le premier utilitaire testé est ANTS Profiler. Celui-ci a pour but de permettre au développeur de déterminer les points qui peuvent être améliorés dans leurs applications utilisant les frameworks .NET.
Effectivement, la version utilisée dans ce test, la 2.6, supporte aussi bien le framework .NET 1.x que le 2.0.
Il fonctionne de manière totalement indépendante. Il n'est donc aucunement nécessaire de posséder Visual Studio ou tout autre logiciel.
II. Installation▲
Le programme d'installation est téléchargeable sur Internet sur le site officiel de ANTS Profiler (Red-Gate softwares). Celui-ci est relativement petit puisqu'il ne fait que 6Mo environ.
Si il fallait résumer l'installation de ANTS Profiler, nous pourrions dire qu'il s'agit d'une installation à la « next, next, next ». En clair, nous sommes face à un assistant d'installation comme nous en avons l'habitude d'en voir. Le premier test est donc concluant puisqu'il est simple et sans encombre.
III. Types d'applications qui peuvent être analysées▲
Comme on peut le voir sur l'image suivante, plusieurs types d'applications peuvent être analysées.
Il s'agit de :
- applications Windows .NET ;
- applications web .NET ;
- services .NET ;
- applications serveur COM+ .
Par exemple, dans le cas des applications web, ANTS Profiler arrête le serveur IIS avant de le redémarrer. Cela permet ainsi à ANTS Profiler de réaliser les différentes analyses.
IV. Type de profilers▲
ANTS Profiler permet d'effectuer plusieurs types d'analyses. Ainsi, il est possible d'analyse les performances d'une application, mais également l'utilisation de la mémoire grâce à cet utilitaire.
IV-A. Performance (Vitesse d'exécution)▲
La première partie de l'application permet de réaliser une analyse de performances. Ainsi, il est possible d'utiliser vos applications comme vous le faites habituellement et ensuite de voir le temps nécessaire aux différentes méthodes appelées par votre application.
IV-A-1. Filtres sur les analyses▲
L'application est capable de distinguer les méthodes dont le code source est disponible et les autres (par exemple les méthodes des espaces de nom de base). Ainsi, il est possible de n'afficher que les méthodes développées expressément.
Par ailleurs, lorsque le code est disponible, il est affiché tel que le développeur l'a écrit, ce qui est très avantageux pour le développeur qui réalise les analyses.
IV-A-2. Rapports d'analyse▲
Les résultats peuvent être affichés sous forme de résumé. Ce résumé comprend divers éléments :
- les lignes de code les plus longues à être exécutées
- les méthodes qui ont pris le plus de temps
- le détail du temps nécessaire par ligne de code
Sur ce dernier exemple, on voit que c'est l'ouverture de la connexion qui prend le plus de temps. Il peut être possible d'améliorer l'application en réduisant le nombre d'ouvertures/fermetures de la connexion.
Par ailleurs, le « new SqlParameter » qui n'est pas indispensable prend également du temps. On pourrait par exemple, dans le but de diminuer le temps nécessaire à l'exécution, utiliser le .Parameters directement au lieu de créer un tel objet.
IV-A-3. Exportation en .html▲
IV-B. Mémoire▲
IV-B-1. Snapshots▲
La vie des objets est gérée par le framework .NET, là je n'apprends rien à la majorité d'entre vous. La destruction des éléments se fait au fur et à mesure des besoins en mémoire par le framework. Ainsi, il est préférable d'utiliser des images de la mémoire à un instant donné. Cet utilitaire permet de réaliser ces « images ». Ces « images » sont très simples à prendre grâce à un simple bouton :
Concrètement, les snapshots permettent de comparer l'état de la mémoire à différents moments de la vie de l'application.
IV-B-2. Rapports d'analyse▲
Comme on peut le voir sur l'exemple suivant, on imagine très peu le nombre d'objets qui ont été créés durant la durée de vie d'une application (plus de 43000 dans ce cas).
Il est ainsi possible d'avoir un résumé (image précédente) ou encore le détail par objet.
IV-B-3. Exportation en .html▲
Pour afficher les informations, il est possible d'exporter les résultats en xml ou en html. On le voit sur les deux captures d'écran suivantes :
V. Sauvegarde des projets et des résultats▲
Les différents résultats peuvent être enregistrés afin d'être utilisés plus tard.
VI. Conclusion▲
VI-A. Pour qui?▲
Que vous soyez débutant ou confirmé dans le domaine de l'analyse des performances, vous trouvez une utilité à cet utilitaire.
Effectivement, en tant que débutant, vous accédez directement et facilement aux différents résultats. Pour les confirmés, l'utilitaire convient tout autant puisque certains résultats plus « complexes » sont disponibles dans les différents rapports.
VI-B. Le prix▲
Certes, cet utilitaire n'est pas gratuit… mais comparé au coût de développement et de tests supplémentaires, il peut paraître bon marché.
VI-C. L'anecdote▲
On notera tout de même que Red-Gate est très en avance sur ses concurrents puisque, selon l'écran d'accueil de l'application, elle est développée depuis 1999 et ce jusqu'en … 2006 :-)