Slide 1

Slide 1 text

Live Java Profiling Fabian Lange

Slide 2

Slide 2 text

Haben wir ein Problem?

Slide 3

Slide 3 text

"WE SHOULD FORGET ABOUT SMALL EFFICIENCIES, SAY ABOUT 97% OF THE TIME: PREMATURE OPTIMIZATION IS THE ROOT OF ALL EVIL" Donald Knuth (1974)

Slide 4

Slide 4 text

Wissen ist Macht

Slide 5

Slide 5 text

Die JVM als Informant

Slide 6

Slide 6 text

Der Profiler als Übersetzer

Slide 7

Slide 7 text

Profiler sind Nerds

Slide 8

Slide 8 text

Sprache der Profiler • Instrumentation • Sampling • Wall Clock & CPU Time • Self & Cumulative • Allocation • Live & GCed • Hotspot

Slide 9

Slide 9 text

Pseudocode t main() foo() bar() baz()

Slide 10

Slide 10 text

Sampling t main() foo() bar() baz()

Slide 11

Slide 11 text

Sampling t main() foo() bar() baz()

Slide 12

Slide 12 text

Sampling t main() foo() bar()

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

Instrumentation t main() foo() bar() baz()

Slide 15

Slide 15 text

Instrumentation t main() foo() bar() baz()

Slide 16

Slide 16 text

PROFILERBAU https://github.com/CodingFabian/SamplingVsInstrumentation

Slide 17

Slide 17 text

https://blog.codecentric.de/en/2011/10/measure-java-performance- sampling-or-instrumentation/

Slide 18

Slide 18 text

http://www-plan.cs.colorado.edu/klipto/ http://bryanpendleton.blogspot.de/2010/08/improving-accuracy-of- java-profilers.html

Slide 19

Slide 19 text

REAL WORLD

Slide 20

Slide 20 text

ITEXT

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

ITEXT Analyse mit JProfiler

Slide 23

Slide 23 text

JBOSS RULES

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

JBOSS RULES Analyse mit JProfiler

Slide 26

Slide 26 text

VAADIN

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

VAADIN Analyse mit JProfiler

Slide 29

Slide 29 text

GLUSTER

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

-XX:+HeapDumpOnOutOfMemoryError

Slide 32

Slide 32 text

GLUSTER Analyse mit Eclipse MAT

Slide 33

Slide 33 text

Profiling Tipps • Mit Sampling starten • CPU – Hotspots – Pfeil-Rechts • Speicher – Allocation Hotspots – Hohe Objektanzahl – Filter nach eigenem Package • Threads – Timeline – Dumps • Absolute / Relative Anzeige ausprobieren

Slide 34

Slide 34 text

PROFILING IST EINFACH

Slide 35

Slide 35 text

Kontakt • CodingFabian • [email protected] • blog.codecentric.de Folien auf speakerdeck.com/codingfabian