Profilage de la sortie de JIT sous Linux avec des événements perf / oprofile?
Je veux profiler le code, généré par JIT sous Linux, avec l'utilisation de compteurs de performance matérielle. Comme je le sais, les profileurs les plus courants sont oprofile
et perf
.
Comment puis-je intégrer JIT et oprofile/perf?
Mon JIT n'est pas JAVA qui est déjà pris en charge dans oprofile. (perf?)
Par exemple, nous pouvons considérer le JIT de LLVM. Je veux
- Voir les fonctions les plus chaudes (leurs noms) du code JIT-ted
- Voir le démontage de la fonction la plus chaude, avec performance statistiques de compteur attribuées à chaque instruction
1 answers
Pour profiler du code jité en utilisant perf, téléchargez, compilez et installez la bibliothèque perf-map-agent, puis (pour le code java de toute façon) ajoutez le
-agentpath:<path>/libperfmap.so
à la ligne de commande.
Pour le code non-java, tant que les fichiers de carte de symboles /tmp/perf-$pid.map
sont générés, perf
utilisera ceux-ci quand il produit des rapports perf.
Brendan Gregg a un blog, ce qui a des références.