Pré. | Proc. |
Profilage
Au cours de la vie des applications logicielles, il n'est pas rare d'examiner des tâches d'application qui s'exécutent plus lentement que prévu. Vous pouvez également simplement vouloir savoir ce qui se passe lorsque vous appuyez sur ce bouton ! Vous pouvez résoudre ce problème assez rapidement dans Enterprise Architect en utilisant son Profiler. Les résultats peuvent généralement être produits en quelques secondes et vous pourrez rapidement voir les actions qui consomment l'application et les fonctions impliquées. Dans l' Analyseur d'Exécution , la fonctionnalité utilise deux stratégies distinctes : l'échantillonnage de processus et le hooking de processus. Dans l'une, des échantillons sont prélevés à intervalles réguliers pour identifier motifs gourmands en ressources CPU, tandis que dans l'autre, le processus est accroché pour enregistrer les demandes faites sur la mémoire. Les données sont analysées pour produire un Graphique d'Appel pondéré. Les comportements sont généralement identifiables comme des nœuds racines (points d'entrée) dans le graphique, ou des branches proches de ces points. Tous les rapports peuvent être examinés à la demande. Ils peuvent être enregistrés dans un fichier au sein du modèle, à la fois comme éléments d'artefact et comme messages Bibliothèque d'Équipe .
Accéder
Ruban |
Exécuter > Outils > Profiler |
Autre |
Barre d'outils Analyseur d'Exécution : Analyseur Windows | Profileur |
Échantillonnage d'appel
Le profileur est contrôlé à l'aide des boutons de sa barre d'outils. Ici, vous pouvez attacher le profileur à un processus existant (ou à une JVM) ou lancer l'application pour le script Analyzer actif. La fenêtre du profileur affiche les détails du processus cible au fur et à mesure de son profilage. Ces détails fournissent des informations en retour, vous permettant de voir le nombre d'échantillons prélevés. Vous disposez également d'options pour suspendre et reprendre la capture, effacer les données capturées et générer des rapports. Vous pouvez accéder à la fonctionnalité de création de rapports en mettant la capture en pause - la fonctionnalité de création de rapports est désactivée pendant que la capture de données est en cours.
Graphique d'Appel pondéré
Ce rapport détaillé présente l'ensemble unique de piles d'appels/comportements sous forme Graphique d'Appel pondéré. Le poids de chaque branche est représenté par un nombre de hits, qui correspond au nombre total de hits de cette branche plus tous les branches à partir de ce point. En suivant la piste de hits, vous pouvez rapidement identifier les zones de code qui ont le plus occupé le programme pendant la période de capture.
Profil de Pile
Les profils de pile permettent de découvrir les différentes manières (piles) et le nombre de façons dont une fonction particulière est invoquée pendant l'exécution du programme. Contrairement aux autres modes de profilage, ce profil est activé via l'utilisation d'un point de profil, qui est un type spécial de marqueur de point d'arrêt. Le marqueur est défini dans le code source comme tout autre point d'arrêt. Lorsque le point d'arrêt est rencontré par le programme, la pile est capturée. Lorsque vous produisez ultérieurement le rapport, les piles sont analysées et un graphique d'appels pondéré est produit. Le graphique montre les piles uniques impliquées dans cette fonction pendant la période d'exécution du profileur. La colonne « Hit Count » indique le nombre de fois que la même pile s'est produite.
Profils de Mémoire
Le profil de mémoire suit les allocations, en ignorant le moment où la mémoire est libérée. Il utilise ces informations pour évaluer les demandes de mémoire du code en cours d'exécution, non pas en termes de quantité de mémoire, mais de fréquence des demandes. Le chiffre Allocations correspond au nombre total d'allocations de mémoire demandées. Le nombre de traces de pile correspond au nombre de traces de pile prises à ces moments-là, et le chiffre Heap Holding correspond à la quantité totale de mémoire obtenue par ces appels. Note que le profilage peut être activé et désactivé à la demande. Il n'est pas non plus nécessaire de reconstruire votre programme pour le faire fonctionner car aucun lien n'est impliqué.
Graphique de Mémoire
Cet exemple est un rapport produit à partir du profilage d'un programme de démonstration du projet Xerces à partir d'Apache. Le programme parcourt le Modèle Object de document (DOM) pour un fichier XML fourni.
Rapport Sommaire de Fonction
Ce rapport récapitulatif répertorie les fonctions et uniquement celles exécutées pendant la période d'échantillonnage. Les fonctions sont répertoriées par nombre total d'appels, une fonction qui apparaît deux fois dans des piles d'appels distinctes apparaissant avant une fonction qui n'apparaît qu'une seule fois.
Rapport de Ligne de Fonction
Ce rapport détaillé montre le code source d'une fonction ligne par ligne, affichant à côté le nombre total de fois que chacune a été exécutée. Nous avons découvert du code à l'aide de ce rapport, qui exposait des instructions case dans du code qui ne semblaient jamais être exécutées.
Support
Le profileur est pris en charge pour les programmes écrits en C, C++, Visual Basic, Java et les langages Microsoft .NET . Le profilage de la mémoire est actuellement disponible pour les programmes C et C++ natifs.
Notes
- Le profileur est disponible dans l'édition Professional Enterprise Architect et au-dessus
- Le Profiler peut également être utilisé sous WINE (Linux et Mac) pour le profilage d'applications Windows standard déployées dans un environnement WINE