Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Devoxx 2018 - Async-Profiler, le profiler qu’i...
Search
Nicolas Peters
April 19, 2018
Technology
1
280
Devoxx 2018 - Async-Profiler, le profiler qu’il vous faut !
async-profiler vous surprendra par sa facilité à faire des flamegraph sur une JVM
Nicolas Peters
April 19, 2018
Tweet
Share
More Decks by Nicolas Peters
See All by Nicolas Peters
Devoxx FR 2016 - Java vous déclare sa flamme
npeters
0
1.6k
Other Decks in Technology
See All in Technology
Ruby版 JSXのRuxが気になる
sansantech
PRO
0
160
外部キー制約の知っておいて欲しいこと - RDBMSを正しく使うために必要なこと / FOREIGN KEY Night
soudai
PRO
12
5.6k
AWS Network Firewall Proxyを触ってみた
nagisa53
1
240
Tebiki Engineering Team Deck
tebiki
0
24k
GitHub Issue Templates + Coding Agentで簡単みんなでIaC/Easy IaC for Everyone with GitHub Issue Templates + Coding Agent
aeonpeople
1
260
生成AIと余白 〜開発スピードが向上した今、何に向き合う?〜
kakehashi
PRO
0
130
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
93k
AI駆動開発を事業のコアに置く
tasukuonizawa
1
340
モダンUIでフルサーバーレスなAIエージェントをAmplifyとCDKでサクッとデプロイしよう
minorun365
4
220
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.6k
登壇駆動学習のすすめ — CfPのネタの見つけ方と書くときに意識していること
bicstone
3
130
Kiro IDEのドキュメントを全部読んだので地味だけどちょっと嬉しい機能を紹介する
khmoryz
0
210
Featured
See All Featured
Odyssey Design
rkendrick25
PRO
1
500
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
740
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
190
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
460
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.6k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
350
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
The untapped power of vector embeddings
frankvandijk
1
1.6k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
420
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
170
Transcript
#DevoxxFR Async-Profiler, le profiler qu’il vous faut ! 1
#DevoxxFR Qui ? 2 “You Build It, You Run It”
Nicolas Peters Lead Tech @nicolaspeters https://github.com/npeters
#DevoxxFR 3
#DevoxxFR 4
#DevoxxFR 5
#DevoxxFR 6
#DevoxxFR 7
#DevoxxFR Big Picture async-profiler JVM Classloader Heap Thread Event libasyncProfiler.so
profiler.sh Stack JVMTI attach 8
#DevoxxFR Le Profiling de CPU 9
#DevoxxFR Profiling de CPU: le Sampling 10 AppServerThreadPoolThread.run() Controller.getContents() RepoDAO.readContents()
JsonSerialier.json() Jdbc.execute() Jackson.write() MySql.bind() Temps ???
#DevoxxFR perf_event à la rescousse ! 11
#DevoxxFR perf_event + AsyncGetCallTrace 12
#DevoxxFR Flamegraph >./profiler.sh -d 30 -f /tmp/profile.svg jps 13
#DevoxxFR Flamegraph >./profiler.sh -d 30 -f /tmp/profile.svg jps 14
#DevoxxFR Le Profiling de Mémoire 15
#DevoxxFR Outillage classique pour le GC > jstat -gcutil <pid>
1000 > java -XX:+PrintGCDetails -XX:+PrintGCTimeStamps … 16 > jmap -histo <pid> ou jmap -dump:live,format=b,file=heap.bin
#DevoxxFR Async-profiler -e alloc >./profiler.sh -e alloc -d 30 -f
/tmp/profile-alloc.svg jps 17
#DevoxxFR Le Profiling des points synchronisation 18
#DevoxxFR 19
#DevoxxFR Async-profiler -e lock >./profiler.sh -e lock -d 30 -f
/tmp/profile-lock.svg jps 2 0
#DevoxxFR Microbenchmark 21
#DevoxxFR Microbenchmark 22 JMH
#DevoxxFR JMH > mvn archetype:generate \ -DinteractiveMode=false \ -DarchetypeGroupId=org.openjdk.jmh \
-DarchetypeArtifactId=jmh-java-benchmark-archetype \ -DgroupId=org.sample \ -DartifactId=test \ -Dversion=1.0 23
#DevoxxFR JMH public class MyBenchmark { @Benchmark public int testMethod()
{ ThreadLocalRandom random = ThreadLocalRandom.current(); return random.nextInt() + random.nextInt(); } } > mvn clean install ... > java -jar target/benchmarks.jar -tu ms -prof stack 24
#DevoxxFR JMH public class MyBenchmark { @Benchmark public int testMethod()
{ ThreadLocalRandom random = ThreadLocalRandom.current(); return random.nextInt() + random.nextInt(); } } > mvn clean install ... > java -jar target/benchmarks.jar -tu ms -prof stack 25
#DevoxxFR JMH et Async-profiler <dependency> <groupId>pl.project13.scala</groupId> <artifactId>sbt-jmh-extras</artifactId> <version>0.3.2</version> </dependency> >
mvn clean install ... > java -jar target/benchmarks.jar -tu ms -prof jmh.extras.Async Konrad Malawski 26
#DevoxxFR 27
#DevoxxFR 28
#DevoxxFR Références 29 • Playlist Youtube https://www.youtube.com/playlist?list=PLTT7JEJqc07b-Bx_GbSy7AU2HRu CmBEBc • The
Art of JVM Profiling https://assets.ctfassets.net/oxjq45e8ilak/4mfbX5FJuw0A8M00UK4uKa/ce6 0f2cab12408e01ce927e90ebb2f7a/Andrey_Pangin__Vadim_Tsesko._The_Ar t_of_JVM_Profiling.pdf • Container performance JVM https://www.dropbox.com/s/kp4m0mjr3uo4f54/Container-performance-J VM.pptx?dl=0 • Lightbend https://developer.lightbend.com/blog/2018-04-09-profiling-JVM-applicatio ns/ • Nitsan Wakart http://psy-lob-saw.blogspot.fr/ • Sasha Goldshtein http://blogs.microsoft.co.il/sasha/ • sbt-jmh https://github.com/ktoso/sbt-jmh
#DevoxxFR 30 100 Bullets
#DevoxxFR Merci / Question 31
#DevoxxFR 32
#DevoxxFR Overhead 33 The Art of JVM Profiling
#DevoxxFR Overhead 34 The Art of JVM Profiling
#DevoxxFR Perf vs Async-profiler 35 Container performance JVM
#DevoxxFR FlameScope 36
#DevoxxFR 3 7