Téléchargez l’agent YourKit pour votre système d’exploitation (voir les liens au bas de la page).
Problème
Comment configurer le profileur YourKit Java pour fonctionner avec CQ3.x ou CQ4.x ?
Solution
Installation de YourKit
-
-
Installez le profileur YourKit.
-
Démarrez le profileur YourKit (JDK 1.5 est requis pour l’exécution du profileur).
- Windows : lancez « YourKit Java Profiler » à partir du menu Démarrer.
- Linux, Solaris : exécutez YourKit Java Profiler Home > /bin/yjp.sh.
- Mac OS X : lorsque l’application téléchargée est décompressée, cliquez sur l’icône correspondante.
Activation du profilage
Il est possible d'activer le profilage directement, dans un serveur ide ou même J2EE. Cependant, il est conseillé d'activer le profilage manuellement pour ne pas dépendre des serveurs ide ou J2EE. La procédure diffère d’un système d’exploitation à l’autre.
SE | Action |
---|---|
Windows, Java 32 bits | Ajoutez <!YourKit Java Profiler Home>\bin\win32 au chemin d'accès |
Windows, Java 64 bits | Ajoutez <!YourKit Java Profiler Home>\bin\win-amd64 au chemin d'accès |
Mac OS X | Ajoutez <!YourKit Java Profiler Home>/bin/mac au chemin d'accès DYLD_LIBRARY_PATH |
Linux x86, Java 32 bits | Ajoutez <!YourKit Java Profiler Home>/bin/linux-x86-32 au chemin d'accès LD_LIBRARY_PATH |
Linux AMD64, Java 64 bits | Ajoutez <!YourKit Java Profiler Home>/bin/linux-amd64 au chemin d'accès LD_LIBRARY_PATH |
Solaris SPARC, 32-bit Java | Ajoutez <!YourKit Java Profiler Home>/bin/solaris-sparc-32 au chemin d'accès LD_LIBRARY_PATH |
Solaris SPARC, Java 64 bits | Ajoutez <!YourKit Java Profiler Home>/bin/solaris-sparc-64 au chemin d'accès LD_LIBRARY_PATH |
Solaris x86, Java 32 bits | Ajoutez <!YourKit Java Profiler Home>/bin/solaris-x86-32 au chemin d'accès LD_LIBRARY_PATH |
Solaris x86, Java 64 bits (AMD64) | Ajoutez <!YourKit Java Profiler Home>/bin/solaris-x86-64 au chemin d'accès LD_LIBRARY_PATH |
Vérifier l'agent de profilage
Pour vérifier que Java peut charger l’agent de profilage, vous pouvez appeler la commande suivante pour imprimer une description des paramètres d’agent :
- Java 5 ou 6
- java -agentlib:yjpagent=help
- Java 1.3 ou 1.4
- java -Xrunyjpagent:help
Intégration de la bibliothèque d’agent dans l’application
Pour pouvoir profiler une application Java, il est nécessaire de fournir à l'outil YourKit une interface avec l'application Java Intégrez la bibliothèque d’agent YourKit dans la JVM où s’exécute l’application cible à profiler. Tout d'abord, activez le profilage en fournissant le chemin d'accès à la bibliothèque d'agents du SE sur lequel s'exécute la machine virtuelle Java (voir la section « Activation du profilage ») Incluez des variables d’environnement dans le start-script de votre application.
Par exemple, dans un script de démarrage de CQ sous Linux, procédez comme suit :
#--------------------------------------------------------------------- # enables the YourKit Java Profiler #--------------------------------------------------------------------- YJP_HOME="/home/honwai/yjp-6.0.16/bin/linux-x86-32" export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$YJP_HOME
Ce paramètre rend la bibliothèque d’agents disponible pour la machine virtuelle Java. Il s’agit ensuite d’indiquer à la machine virtuelle Java d’intégrer cette bibliothèque, qui diffère selon la version JVM utilisée :
Version Java | Option de machine virtuelle Java |
---|---|
1.3 / 1.4 | - Xrunyjpagent Java |
version 5 ou plus récente | java -agentlib:yjpagent |
Vous êtes maintenant prêt à démarrer l’application et le profilage. La bibliothèque d’agents imprime certaines informations sur la sortie standard (pour CQ, il s'agit d’un serveur (logs/startup.log)
[YourKit Java Profiler 6.0.16] Using JVMPI (Linux; 32 bit JVM)
[YourKit Java Profiler 6.0.16] *** HINT ***: utilisera Java 5 (ou une version plus récente) dans la mesure du possible!
[YourKit Java Profiler 6.0.16] Profiler agent is listening on port 10001...
Remarque : Dans CQ4.2, le script de serverctl est désormais plus complexe et autorise plusieurs options au démarrage. Il inclut notamment une option permettant de démarrer la machine virtuelle Java avec la bibliothèque d’agents YourKit. La définition des variables env décrites ci-dessus est toujours obligatoire, mais la définition de l'option JVM supplémentaire ne l'est pas :
linuxbox:/opt/day/cq-4.2/server# ./start --profile
Pour obtenir la liste complète des options disponibles, tapez ./serverctl pour obtenir la liste de toutes les options disponibles.
Connexion avec le profileur YourKit à l’application
Lorsque vous démarrez une application avec la fonction de profilage activée, la bibliothèque d’agents sélectionne automatiquement un port gratuit disponible sur le système. Il n’est pas nécessaire de connaître le port. L’outil YourKit peut se connecter automatiquement à une application profilée en cours d’exécution, localement ou à distance. S’il y a plusieurs applications, vous êtes invité à en sélectionner une.
Il est également possible de spécifier un port dédié si des paramètres de sécurité locaux (par exemple, un pare-feu) n’autorisent pas la sélection de ports arbitraires. Consultez le tableau ci-dessous pour obtenir la liste complète des options pouvant être transmises à la bibliothèque des agents.
Options de la bibliothèque des agents
Option | Description |
---|---|
disablealloc | (Java 5 ou version plus récente /JVMTI uniquement) : ne pas équiper de bytecode avec les instructions d’enregistrement d'allocation d'objet. |
disablecounts | (Java 5 ou version plus récente / JVMTI uniquement) : ne pas équiper bytecode avec les instructions de vectorisation de l’unité centrale Seul l’échantillonnage de l’unité centrale est disponible. |
disablej2ee | (Java 5 et versions nouveau/JVMTI uniquement) ne pas instrumenter le pseudo-code binaire contenant les instructions nécessaires pour le profilage de J2EE. |
échantillonnage | Lancement de l’application Java avec l’échantillonnage du processeur activé Il n’est pas nécessaire de profiler le processeur dès le début Dans de nombreux cas, il est recommandé de lancer ou d'arrêter le processus de mesurage à partir de l’interface utilisateur ou à l'aide de l’API du profileur. |
Traçage | Lancez l’application Java avec la fonction de vectorisation de l’unité centrale activée. Il n’est pas nécessaire de profiler le processeur dès le début Dans de nombreux cas, il est préférable de commencer ou d’arrêter la mesure ultérieurement à partir de l’interface utilisateur ou à l'aide de l’API du profileur. Cette option ne peut pas être utilisée en combinaison avec 'disablecounts'. |
noj2ee | N'effectuez pas le profilage de haut niveau J2EE. Cette option affecte uniquement le profilage du processeur commençant par 'sampling' ou 'tracing'.. |
alloc | Lancez l’application Java avec l’enregistrement d’allocation d’objet démarré. Tous les objets sont enregistrés. Il n’est pas nécessaire d’enregistrer les archives directement depuis le début . Vous pouvez commencer ou arrêter l’enregistrement ultérieurement, à partir du profileur ou de l’API de profileur. Cette option ne peut pas être utilisée en combinaison avec 'disablealloc'. |
allocadaptive | Lancez l’application Java avec l’enregistrement d’allocation d’objet démarré. Vous pouvez enregistrer autant d’objets que vous le souhaitez, pour limiter les frais et les efforts. Il n’est pas nécessaire d’enregistrer les archives directement depuis le début. Vous pouvez commencer ou arrêter l’enregistrement ultérieurement, à partir du profileur ou de l’API de profileur. Cette option ne peut pas être utilisée en combinaison avec 'disablealloc'. |
usedmem=<percent> | Capture automatique de l'instantané de la mémoire lorsque la mémoire segmentée utilisée atteint le seuil. |
onexit=memory | Capturez toujours l’instantané de la mémoire en quittant. L’instantané du processeur est capturé automatiquement si le profilage du processeur est activé lors de la fermeture de l’application profilée. |
onexit=telemetry | Capture de l’instantané de la télémétrie en sortant. Cette option est automatiquement utilisée lorsque l’application profilée est lancée à partir de l’IDE. |
port=<value> | Indiquez le port que l’agent de profilage interroge pour communiquer avec le profileur. Par défaut, tous les ports disponibles sont sélectionnés. |
onlylocal | Autoriser uniquement les connexions locales à l’application profilée |
dir=<directory for="for" snapshots="snapshots"> | Spécifiez le répertoire dans lequel les instantanés seront créés. Par défaut, c’est le répertoire instantané <user home="home"> / qui sera utilisé. |
quiet | Efface les messages de diagnostic que l’agent de profilage affiche dans la console. |
help | Affiche une brève description des paramètres d'agent. |
Séparation des options par des virgules. Vérifiez bien que Java nécessite : after -Xrunyjpagent but = after -agentlib:yjpagent
Exemples (Java 5 ou version plus récente) :
java -agentlib:yjpagent FooClass java -agentlib:yjpagent=onexit=memory,dir=c:\MySnapshots FooClass java -agentlib:yjpagent=usedmem=70 FooClass
Exemples (Java 1.3 ou 1.4) :
java -Xrunyjpagent FooClass java -Xrunyjpagent:onexit=memory,dir=c:\MySnapshots FooClass java -Xrunyjpagent:usedmem=70 FooClass
Documentation
Une fois le profileur YourKit installé, une documentation HTML complète est disponible dans le répertoire d'installation, sous <! YourKit Java Profiler Home> /docs/help/index.html. Elle présente en détail l’intégration de la bibliothèque d’agents dans l’application cible qui fait l’objet du profilage. Elle présente également les nombreuses options qui peuvent être transmises à l’agent. Par exemple :
- Générer un vidage mémoire une fois l'application terminée
- Générer un vidage mémoire une fois qu'un certain seuil est atteint
Ces options sont disponibles sous <!YourKit Java Profiler Home>/docs/help/agent.html.
La version 7.0 actuelle n’est pas concernée par cette documentation. La documentation de la version 7.0 est disponible sur le serveur d'installation:
- \\setup\install\profiling\yjp-6.0\docs\help\index.html
Autres ressources similaires
Adobe
Recevez de l’aide plus rapidement et plus facilement
Nouvel utilisateur ?