Les CPUs intègrent une unité de mesure de performance (PMU) que l'on peut utiliser pour collecter des données sur l'utilisation des caches (hit/miss) des prédictions de branches, du nombre d'instructions, des cycles, etc. Ces compteurs de performance (HPC) peuvent être accédés en Java grâce à la librairie overseer. Cette présentation montrera comment les mettre en oeuvre avec des exemples de situation où ils sont pertinents pour la compréhension des performances.
2. @jpbempel#CompteursDePerf
Compteurs de performance
•CPUs embarquent un PMU (Processing Monitoring Unit)
•Compteurs matériels sur le comportement du CPU
•Cycles
•Instructions
•Caches
•Accès mémoire
•Prédéfinis ou Programmables
3. @jpbempel#CompteursDePerf
Perf
•Outil dispo sur pratiquement tous les linux
•Permet d’accéder aux compteurs de perf
mais permet bien d’autres choses
(profiling, compteurs OS, …)
•Lister des compteurs de perf : perf list
•Profiler avec compteurs par défaut
perf stat java …
•Programmer un compteur de perf
perf stat –e LLC-load-misses java …
5. @jpbempel#CompteursDePerf
Overseer
•Librairie java (JNI – linux only)
•Permet de programmer tous les compteurs disponibles
•Basée sur libpfm4
•Encodage des compteurs en fonction du CPU
•Profiler précisément des portions de code d’applications
9. @jpbempel#CompteursDePerf
Crédit image / Creative Commons
• Rue pavée — By-Nc-Sa
•http://www.flickr.com/photos/22914687@N05/4957591422/sizes/l/
• Sous la Tour Eiffel — By-Nc-Sa
•http://www.flickr.com/photos/stewiedewie/244850735/sizes/l/in/photostream/
• Sous le pont — photo par B.Monginoux - By-Nc-Nd
•http://www.landscape-photo.net/displayimage.php?pid=5194
• Le Louvre – Photo par Anthony Gaudun - By-Nc-Sa
•http://www.flickr.com/photos/anthonygaudun/7474397964/sizes/o/in/photostream/
• Slide template created by @glaforge, completed by @nmartignole for Devoxx FR2014