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
Profiling for JVM (beta)
Search
Kengo TODA
October 06, 2012
Technology
1
86
Profiling for JVM (beta)
What is profiling? Why we need it? This slide tells you the reason.
Kengo TODA
October 06, 2012
Tweet
Share
More Decks by Kengo TODA
See All by Kengo TODA
JavaとGroovyで書かれたGradleプラグインをKotlinで書き直した話 / Converted a Gradle plugin from Groovy&Java to Kotlin
eller86
0
1k
ヒューマンスキル / The Humanskills
eller86
0
520
医療機関向けシステムの信頼性 / Reliability of systems for medical institutions
eller86
0
290
Server-side Kotlinを使うスタートアップでどんなDetektルールが育ったか / Detekt rules made in start-up working with Server-side Kotlin
eller86
0
1.3k
Java開発者向けのKotlin Gradleビルドスクリプト入門 / Gradle Build Script in Kotlin 101
eller86
1
1.4k
Goodbye JSR305, Hello JSpecify!
eller86
2
4.7k
Java8〜16におけるバイトコード生成の変化 / Changes of Bytecode Generation from Java 8 to 16
eller86
4
4.2k
Javaプログラミングの体験向上に関する活動 / DX enhancement around Java programming
eller86
0
3.7k
静的解析ツールで生産性向上
eller86
1
880
Other Decks in Technology
See All in Technology
KubeVirt Networking ONIC 2024
orimanabu
4
640
組織デバイスのための効率的なアプリケーション更新戦略
kenchan0130
0
310
ゼロから実装まで!機械学習入門
natsuki0726
0
200
TypeScript x Raycast x AIで変える開発者体験
nagauta
1
280
品質マネジメントで抑えておきたい2つのリスクを見分けて未来に備えよう #yapcjapan
makky_tyuyan
0
110
今こそ変化対応力を向上させるとき 〜ログラスが FAST に挑戦する理由〜 / Why Loglass is Talking on the Challenge of Agile Framework FAST
shioyang
0
120
Low Latency Join Method for Distributed DBMS
yugabytejapan
0
180
Microsoft 365 でデータセキュリティを強化しよう
sophiakunii
2
270
Develop to Survive - YAPC::Hakodate 2024 Keynote
moznion
8
2.8k
Road to Single Activity Uncovered
yurihondo
0
100
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
2
240
From naive to advanced RAG: the complete guide
glaforge
0
150
Featured
See All Featured
Being A Developer After 40
akosma
84
590k
Music & Morning Musume
bryan
46
6.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
22k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
7
590
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
The Cult of Friendly URLs
andyhume
77
6k
Design by the Numbers
sachag
278
19k
How STYLIGHT went responsive
nonsquared
95
5.1k
Building Your Own Lightsaber
phodgson
102
6k
Creatively Recalculating Your Daily Design Routine
revolveconf
217
12k
Robots, Beer and Maslow
schacon
PRO
157
8.2k
The Power of CSS Pseudo Elements
geoffreycrofte
71
5.3k
Transcript
PROFILING FOR JVM How to verify your hypothesis - @eller86
Agenda Process to detect the cause of performance problem What
is “profiling”? Tools to profile
Process to detect the cause of performance problem Make hypothesis
from experience and knowledge Get Servlet’s log from middle ware like Jetty Read source code, do debugging, do profiling
What is “profiling”? what? why? GC storm algorithm CPU Other
reading code heap dump I/O Lock? Waiting other system? I/O GC Other thread dump IZQPUIFTJT WFSJpDBUJPO
Tools to profile jmap jstack jstat VisualVM
Taking heap dump $ jmap -dump:format=b,file=dump.dat [PID]
Taking thread dump $ jstack -l [PID] > thread-dump.txt
Judging the reason why JVM uses CPU heavily $ jstat
-gcutil [PID] 250 7 S0 S1 E O P YGC YGCT FGC FGCT GCT 12.44 0.00 27.20 9.49 96.70 78 0.176 5 0.495 0.672 12.44 0.00 62.16 9.49 96.70 78 0.176 5 0.495 0.672 12.44 0.00 83.97 9.49 96.70 78 0.176 5 0.495 0.672 0.00 7.74 0.00 9.51 96.70 79 0.177 5 0.495 0.673 0.00 7.74 23.37 9.51 96.70 79 0.177 5 0.495 0.673 0.00 7.74 43.82 9.51 96.70 79 0.177 5 0.495 0.673 0.00 7.74 58.11 9.51 96.71 79 0.177 5 0.495 0.673 GC was fired Young generation GC was fired
Detecting method which costs too much time
Key point Hypothesis needs verification Know “normal” performance to detect
“abnormal” one
Reference JDK tools and utilities Browsing heap dump VisualVM Diagnosis
documentation @ developerWorks My gist about JVM profiling