Cette section décrit les fonctionnalités de l'interface graphique du profileur et leur utilisation. Les informations sont organisées comme suit :
La boîte de dialogue Profiler Options (Options du profileur) comprend les onglets suivants:
Utilisez les options de ces onglets pour indiquer les objets à profiler et les éléments à afficher dans le profil.
Après la spécification des options du profileur, cliquez sur OK pour démarrer le profileur. Selon la configuration de votre projet, le profileur effectuera l'une ou l'autre des séries d'opérations suivantes :
Si vous utilisez un projet Identity Manager normal avec une instance imbriquée d'Identity Manager, le profileur effectue une compilation complète, un déploiement dans le serveur d'application de NetBean et démarre le profileur.
Si vous utilisez un projet Identity Manager normal avec une instance externe d'Identity Manager ou le projet Identity Manager distant, le profileur se rattache à l'instance d'Identity Manager configurée pour le projet.
Vous pouvez sélectionner IdM -> Set Identity Manager Instance (Définir l'instance d'Identity Manager) pour contrôler l'action de l'instance d'Identity Manager pour le projet.
L'onglet Mode comporte les options suivantes :
IDM Objects Only (Objets IDM uniquement) : sélectionnez cette option pour profiler les objets formulaire, règle, flux de travaux et XPRESS. Exclut les objets Java du profil.
Java and IDM Objects (Objets Java et IDM) : sélectionnez cette option pour profiler les objets formulaire, règle, flux de travaux et XPRESS.
L'option Java and IDM Objects n'est pas disponible si vous si vous utilisez un projet Identity Manager normal avec une instance externe d'Identity Manager ou un projet Identity Manager distant.
Vous ne pouvez pas modifier l'option Mode pendant l'exécution du profileur : vous devez arrêter ce dernier pour la modifier.
L'onglet IDM Object Filters (Filtres à objets IDM) comporte les options suivantes :
Show IDM Object details (Afficher les détails des objets IDM)
Sélectionnez cette case pour inclure tous les éléments de type formulaire, flux de travaux et XPRESS dans l'instantané.
Désélectionnez-la pour n'inclure que les éléments suivants dans l'instantané :
<invoke>
<new>
<Rule>
<Form>
<WFProcess>
<ExScript>
<ExDefun>
<FieldRef>
<Action> (pour les légendes de l'application de flux de travaux)
Include Anonymous Sources (Inclure les sources anonymes) :
Les sources anonymes sont des formulaires (ou des portions de formulaire) qui sont générées à la volée (par exemple des formulaires Login et MissingFields) et ne correspondent à aucun formulaire persistant résidant dans le référentiel d'Identity Manager.
Cochez cette case pour inclure que les sources anonymes dans l'instantané.
Désélectionnez cette case pour exclure que les sources anonymes dans l'instantané.
Sélectionnez l'onglet Java Filters (Filtres Java) pour
inclure ou exclure des filtres Java ;
créer de nouveaux filtres ;
supprimer des filtres existants ;
restaurer les filtres par défaut.
Les filtres Java sont formulés en termes de modèles de méthode et sont exprimés sous la forme de modèles qui incluent ou excluent les éléments sur la base du nom de méthode canonique. Lorsqu'un nom de méthode canonique est du type :
nom-classe-complet.nom-méthode( type-paramètre-1, type-paramètre-2, ... )
Pour les constructeurs, nom-méthode est <init>.
Voici quelques exemples :
Pour exclure tous les constructeurs, activez la case Exclude (Exclure) et ajoutez le filtre suivant :
*.<init>(*)
Pour exclure tous les constructeurs ayant un unique paramètre org.w3c.dom.Element, activez la case Exclude (Exclure) et ajoutez le filtre suivant :
*.<init>(org.w3c.dom.Element)
Pour exclure toutes les classes d'Identity Manager, activez la case Exclude (Exclure) et ajoutez les filtres suivants :
"com.waveset.*" "com.sun.idm.*"
Pour instrumenter uniquement votre code personnalisé, désactivez la case Exclude (Exclure), supprimez le filtre * include initial puis ajoutez le filtre suivant :
"com.yourcompany.*"
Ces deux derniers exemples sont en fait équivalents car les filtres ne sont appliqués qu'aux classes personnalisées et aux classes d'Identity Manager.
Si nécessaire, vous pouvez instrumenter d'autres JAR en modifiant comme approprié les lignes suivantes dans build.xml. Par exemple :
<instrument todir="${lighthouse-dir-profiler}/WEB-INF" verbose="${instrumentor.verbose}" includeMethods="${profiler.includes}" excludeMethods="${profiler.excludes}"> <fileset dir="${lighthouse-dir}/WEB-INF"> <include name="lib/idm*.jar"/> <include name="classes/**/*.class"/> </fileset> </instrument> |
Par défaut, la configuration inclut toutes vos classes personnalisées et la plupart des classes d'Identity Manager . Un nombre de classes d'Identity Manager sont obligatoirement exclues car les activer signifierait interrompre le profileur.
Par exemple, les classes provenant des moteurs de flux de travaux, de formulaires et XPRESS sont exclues, sinon le profileur produirait un instantané incompréhensible lors du profilage des objets Java et Identity Manager.
Vous remarquerez que les filtres Java assurent un filtrage bien plus fin que les filtres à objets IDM. L'instrumentation Java allonge considérablement le temps d'exécution ce qui dévie drastiquement les résultats de profilage. Les objets d'Identity Manager étant interprétés plutôt que compilés, le temps d'instrumentation est négligeable. Ainsi, à titre d'exemple, il n'y a pratiquement aucune raison d'exclure le flux de travaux A et d'inclure le flux de travaux B, et ainsi de suite.
Vous ne pouvez pas modifier les filtres Java pendant l'exécution du profileur. Vous devez arrêter le profileur avant de changer les filtres Java.
L'onglet Miscellaneous (Divers) comporte les options suivantes :
Prune snapshot nodes where execution time is 0 (Élaguer les nœuds d'instantané lorsque le temps d'exécution est 0) :
Désactivez cette option (valeur par défaut) si vous voulez que l'instantané inclue les informations d'appel pour toutes les entités exécutée, même de celles dont le temps d'exécution est null.
Il peut être utile de disposer du nombre des appels même pour les nœuds sans temps d'exécution.
Activez cette option pour supprimer ces nœuds et mieux pouvoir vous concentrer sur les données de profilage les plus pertinentes. De plus, activer cette option peut permettre de limiter considérablement la taille de l'instantané du profileur.
Automatically Open Browser Upon Profiler Start (Ouvrir automatiquement le navigateur au démarrage du profileur) :
Activez cette option (valeur par défaut) lorsque vous lancez le profileur pour ouvrir automatiquement un navigateur qui pointe sur l'instance d'Identity Manager dont le profilage est en cours.
Désactivez cette option si vous ne voulez pas ouvrir de navigateur.
Include Java Sources in Snapshot (Inclure les sources Java dans l'instantané) :
Activez cette option (valeur par défaut) pour inclure les sources Java pour toutes les méthodes Java référencées par les données de profilage dans l'instantané. Vous devriez toujours utiliser ce paramètre pour les instantanés dans le champ. Custom Java est relativement petit et se révèle un atout précieux pour le support.
Ne désactivez cette option que si vous profilez Identity Manager et disposez de l'ensemble de la source d'Identity Manager.
Dans ce cas, il ne convient pas d'inclure la source d'Identity Manager car cela pourrait créer des instantanés gigantesques. (pour plus d'informations, voir Mode de localisation et de gestion de la source par le profileur).
L'affichage du profileur d'IDM se compose des zones suivantes :
La zone Current Project (Projet courant) se compose d'un menu déroulant qui répertorie tous vos projets courants. Ce menu vous permet de sélectionner le projet à profiler.
La zone Controls (Contrôles) contient quatre icônes, comme décrit dans le tableau suivant :
Icône |
Nom |
Objectif |
---|---|---|
|
Start Identity Manager Profiler (Démarrer le profileur d'Identity Manager) |
Démarre le profileur et ouvre la boîte de dialogue des options du profileur. |
|
Stop Identity Manager Profiler (Arrêter le profileur d'Identity Manager) |
Arrête le profileur. |
|
Reset Collected Results (Réinitialiser les résultats recueillis) |
Réinitialise l'ensemble des résultats de profil recueillis à ce stade. |
|
Modify Profiling (Modifier le profilage) |
Ouvre de nouveau la boîte de dialogue des options du profileur pour vous permettre de changer les paramètres afin de modifier les résultats du profil courant. |
La zone Status (Statut) indique si vous êtes connecté à l'hôte et contient les informations de statut relative au démarrage, à l'exécution et à l'arrêt du profileur.
La zone Profiling Results (Résultats de profilage) contient deux icônes, qui sont décrites dans le tableau suivant :
Icône |
Nom |
Objectif |
---|---|---|
|
Start Identity Manager Profiler (Démarrer le profileur d'Identity Manager) |
Démarre le profileur et ouvre la boîte de dialogue des options du profileur. |
|
Reset Collected Results (Réinitialiser les résultats recueillis) |
Réinitialise l'ensemble des résultats de profil recueillis à ce stade. |
La zone Saved Snapshots (Instantanés enregistrés) contient la liste de tous les instantanés enregistrés.
Les instructions à suivre pour enregistrer les instantanés figurent dans Enregistrement d'un instantané.
De plus, vous pouvez utiliser les boutons suivants pour gérer ces instantanés :
Open (Ouvrir) : cliquez sur ce bouton pour ouvrir les instantanés enregistrés dans la fenêtre Snapshot View (Affichage des instantanés).
Vous pouvez aussi double-cliquer sur un instantané de la liste des instantanés enregistrés pour l'ouvrir.
Delete (Supprimer) : sélectionnez un instantané dans la liste des instantanés enregistrés puis cliquez sur ce bouton pour le supprimer.
Save As (Enregistrer sous) : sélectionnez un instantané dans la liste puis cliquez sur ce bouton pour l'enregistrer à l'extérieur dans un emplacement arbitraire.
Load (Charger) : cliquez sur ce bouton pour ouvrir un instantané depuis un emplacement arbitraire dans la fenêtre Snapshot View (Affichage des instantanés).
Lorsque vous ouvrez un instantané, les résultats s'affichent dans la fenêtre Snapshot View (Affichage des instantanés), qui se trouve en haut à droite d'Identity Manager IDE.
Un instantané fournit plusieurs affichages des données qui sont décrits dans les sections suivantes :
L'affichage Call Tree (Arborescence des appels) est un tableau arborescent indiquant les temps des appels et leur nombre à travers le système.
Ce tableau arborescent comporte les trois colonnes suivantes :
Call Tree (Arborescence d'appels) : liste tous les nœuds.
Les nœuds de niveau supérieur peuvent être les suivants :
Méthodes Thread.run() pour les divers threads d'arrière-plan du système.
Par exemple, si vous avez activé le profilage Java, vous verrez la méthode ReconTask.WorkerThread.run().
Synchronisation des requêtes
Par exemple, si vous affichez l'URL idm/login.jsp, vous verrez une entrée de niveau supérieur pour idm/login.jsp. Les données affichées dans la colonne Time (Temps) pour cette entrée représente le temps total pour cette requête (ou ces requêtes). Les données affichées dans la colonne Invocations (Appels) représentent le nombre total d'appels à cette page. Vous pouvez ensuite approfondir encore ces données pour savoir quels sont les appels qui rentrent dans ce temps.
L'arborescence des appels contient également les nœuds Self Time. Les valeurs de self time correspondent au temps passé dans le nœud proprement dit (pour plus d'informations, voir Remarques sur les statistiques.)
Colonne Time (Temps) : indique le temps passé dans chaque nœud lorsque le nœud en question est appelé par son nœud parent. Les pourcentages donnés sont fonction du temps du parent.
Colonne Invocations (Appels): liste le nombre de fois où chaque nœud a été appelé depuis son parent.
L'affichage Hotspots (Points actifs) fournit une liste simplifiée de nœuds qui indique les temps d'appel cumulés indifféremment du parent.
Cet affichage contient les colonnes suivantes :
Self Time (Self time) : répertorie le temps total passé dans chaque nœud.
Invocations (Appels) : liste le nombre total de fois où chaque nœud a été appelé depuis son parent.
Time (Temps) : répertorie le temps total passé dans chaque nœud et dans l'ensemble de ses enfants.
L'affichage Back Traces (Traces inverses) fournit une pile d'appels inversée indiquant toutes les chaînes d'appel depuis lesquelles chaque nœud a été appelé.
Vous pouvez utiliser ces statistiques pour répondre à la question suivante : combien de temps économiserais-je si j'éliminais cette chaîne d'appels donnée de ce nœud ?
Vous pouvez accéder à l'affichage Traces inverses depuis n'importe lequel des autres affichages d'instantanés en cliquant avec le bouton droit sur un nœud (qui sera appelé le nœud racine) et en sélectionnant Show Back Traces (Afficher les traces inverses) dans le menu contextuel qui s'affiche.
Les valeurs des données Time (Temps) et Invocations (Appels) ont une autre signification dans l'affichage Traces inverses :
Time (Temps) : les valeurs de cette colonne correspondent au temps passé dans le nœud racine lorsque celui-ci est appelé depuis une chaîne d'appels donnée.
Invocations (Appels) : les valeurs de cette colonne correspondent au nombre de fois où le nœud racine a été appelé depuis une chaîne d'appels donnée.
L'affichage Callees (Programmes appelés) fournit une arborescence d'appels regroupée pour un nœud (que l'on appelle le nœud racine), indifféremment de sa chaîne parent.
Ces statistiques sont utiles dans le cas où vous avez une zone à problème appelée depuis divers emplacements de l'arborescence d'appels et que vous voulez afficher l'ensemble du profil pour ce nœud.
Vous pouvez accéder à l'affichage Programmes appelés depuis n'importe lequel des autres affichages d'instantanés en cliquant avec le bouton droit sur un nœud (qui sera appelé le nœud racine) et en sélectionnant Show Callees (Afficher les programmes appelés) dans le menu contextuel qui s'affiche.
Les valeurs des données Time (Temps) et Invocations (Appels) ont la même signification que dans l'affichage Arborescence d'appels.
Cliquer avec le bouton droit sur un nœud des affichages Arborescence d'appels ou Points actifs affiche un menu contextuel contenant les options décrites dans le tableau suivant :
Options du menu |
Description |
---|---|
GoTo Source (Aller à la source) |
Sélectionnez cette option pour afficher la source XML d'un nœud qui correspond à une méthode Java, un flux de travaux, une règle ou XPRESS. Pour des informations détaillées sur cet affichage, reportez-vous à Mode de localisation et de gestion de la source par le profileur. |
Show Back Traces (Afficher les traces inverses) |
Sélectionnez cette option pour accéder à l'affichage Traces inverses. Pour plus d'informations sur cet affichage, reportez-vous à Affichage Traces inverses. |
Show Callees (Afficher les programmes appelés) |
Sélectionnez cette option pour accéder à l'affichage Programmes appelés. Pour plus d'informations sur cet affichage, reportez-vous à Affichage Programmes appelés. |
Find In Hotspots (Chercher dans les points actifs) |
Sélectionnez cette option pour trouver un nœud dans l'affichage Points actifs. Pour plus d'informations sur cet affichage, reportez-vous à Affichage Points actifs. |
List Options -> Sort ->(Lister les options ->Tri ->) |
Sélectionnez cette option pour :
|
List Options -> Change Visible Columns (Lister les options -> Changer les colonnes visibles) |
Sélectionnez cette option pour changer les colonnes affichées dans la liste Arborescence d'appels ou Points actifs. Lorsque la boîte de dialogue Change Visible Columns (Changer les colonnes visibles) s'affiche, vous pouvez sélectionner une ou plusieurs des options suivantes :
|
Utilisez l'icône Search (Recherche)., qui se trouve en haut de la fenêtre Snapshot View (Affichage des instantanés) et permet de rechercher des nœuds par leur nom dans l'affichage Arborescence d'appels ou Points actifs.
Vous pouvez aussi cliquer avec le bouton droit sur un nœud de l'affichage Arborescence d'appels ou Points actifs et sélectionner Find in Call Tree (Chercher dans l'arborescence d'appels) ou Find in Hotspots (Chercher dans les points actifs) dans le menu contextuel pour rechercher un nœud.
Le profileur comporte plusieurs options pour l'enregistrement d'un instantané. Pour la description de ces options, consultez le tableau suivant :
Icône |
Nom |
Objectif |
---|---|---|
|
Icône Save the Snapshot in the Project (Enregistrer l'instantané dans le projet, dans le haut de la fenêtre Affichage des instantanés) |
Enregistre l'instantané dans le répertoire nbproject/private/idm-profiler de votre projet. Les instantanés enregistrés dans votre projet sont listés dans la section Saved Snapshots (Instantanés enregistrés) de l'affichage du profileur. |
|
Icône Save the Snapshot Externally (Enregistrer l'instantané à l'extérieur, dans le haut de la fenêtre Affichage des instantanés) |
Enregistre un instantané dans un emplacement externe, arbitraire. |
|
Bouton Save As (Enregistrer sous, dans la zone Saved Snapshots (Instantanés enregistrés)). |
Enregistre un instantané dans un emplacement externe, arbitraire. |