Pré. | Proc. |
Profilage
Au cours de la durée de vie des applications logicielles, il n'est pas rare d'enquêter sur des tâches d'application qui s'exécutent plus lentement que prévu. Vous voudrez peut-être aussi simplement 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 profileur. 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é emploie deux stratégies distinctes ; Échantillonnage de processus et accrochage de processus. Dans l'un, des échantillons sont prélevés à intervalles réguliers pour identifier les modèles gourmands en CPU, tandis que dans l'autre, le processus est accroché pour enregistrer les demandes faites à la mémoire. Les données sont analysées pour produire un Graphique d'Appel pondéré. Les comportements sont généralement identifiables en tant que nœuds racine (points d'entrée) dans le graphe ou en tant que branches proches de ces points. Tous les rapports peuvent être consultés sur demande. Ils peuvent être enregistrés dans un fichier à l'intérieur du modèle, à la fois en tant qu'éléments Artefact et en tant que poteaux de la Bibliothèque d'Équipe .
Accéder
Ruban |
Exécuter > Outils > Profileur |
Autre |
Barre d'outils Analyseur Analyseur d'Exécution : Windows Analyseur | Profileur |
Échantillonnage des appels
Le profileur est contrôlé à l'aide des boutons de sa barre d'outils. Ici, vous pouvez attacher le profileur à un processus existant (ou JVM) ou lancer l'application pour le script Analyzer actif. La fenêtre du profileur affiche les détails du processus cible tel qu'il est profilé. Ces détails fournissent des commentaires, vous permettant de voir le nombre d'échantillons prélevés. Vous avez également des 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 rapport en interrompant la capture - la fonctionnalité de rapport est désactivée pendant que la capture de données est en cours.
Graphique d'Appel pondéré
Ce rapport détaillé montre l'ensemble unique de piles d'appels/comportements sous la forme d'un Graphique d'Appel pondéré. Le poids de chaque branche est représenté par un nombre de hits, qui est le nombre total de hits de cette branche plus toutes les branches à partir de ce point. En suivant la trace des résultats, vous pouvez identifier rapidement les zones de code qui ont le plus occupé le programme pendant la période de capture.
Profil de Pile
Les profils de pile sont utilisés pour découvrir les différentes façons (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 profileur, ce profil est activé par 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 durée 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, 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, en termes non pas 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 Stack Holdings est le nombre de traces de pile prises à ces moments, et le chiffre Heap Holding est 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 il n'y a aucun lien impliqué.
Graphique de Mémoire
Cet exemple est un rapport produit à partir de Profilage d'un programme de démonstration dans le projet Xerces d'Apache. Le programme itère sur le Document Object Modèle (DOM) pour un fichier XML fourni.
Rapport Sommaire de Fonction
Ce rapport récapitulatif répertorie les fonctions et uniquement les fonctions exécutées pendant la période d'échantillonnage. Les fonctions sont répertoriées par nombre total d'invocations, une fonction qui se présente 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 en affichant à côté le nombre total de fois où 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 profiler des applications Windows standard déployées dans un environnement WINE