JAVA
PROFILING
Jakub Kubrynski
jkubrynski@gmail.com
www.kubrynski.com
WHO
AM
I ?
WHO
ARE
YOU ?
WHY?
- jvm basics
- problems
- tools
- demo
- questions
--------------------------------------------------------------------------------------
MEMORY MEMORIESMEMORY MEMORIES
EDEN
SURVIV.
FROM
SURVIV.
TO
TENURED
PERM
GEN
CODE
CACHE
YOUNG GENERATION
OLD
GEN
METHOD
AREA
NATIVE
AREA
HEAP NON-HEAP
CALL
STACK
object layout
object layout
GC
ROOTS
-shallowshallow
-deepdeep
-retainedretained
-------------------------------------------
SIZE MATTERS
Obj 1
Obj 3
Obj 4
Obj 2
GC
root
- NEW
- RUNNABLE
- BLOCKED
- WAITING
- TIMED_WAITING
- TERMINATED
CommonCommon
problemsproblems
memory leaks
I/O PROBLEMSI/O PROBLEMS
DEADLOCKS
TOOLS
-------------------------------------------
*NIX TOOLS
- top/htop
- iostat
- netstat
- free
JVMTI
-------------------------------------------
JDK TOOLS
- jps
- jinfo
- jmap
- jstat
- jhat
- jstack
- VisualVM (jvisualvm)
PROFILERS
MATERIALS
LIVE DEMO
github.com/jkubrynski/profiling
THANK
YOU!