JAOO 2006: Angelika Langer: The Art Of Micro-Benchmarking In Java
Angelika ist ebenfall ein Java Champion und arbeitet im Bereich C++/Java-Beratung und -Training. Auch hier nur eine kurze Zusammenfassung, meine Mitschrift ist halt leider weg...
In ihrem Vortrag ging es um das Thema von Micro-Benchmarks. Das sind kleine Anwendungen, die man nutzt, um die Entscheidung für oder gegen einen Algorithmus zu treffen. Das Problem ist nun, dass durch die dynamische Optimierung der JVM hier verschiedene Effekte passieren. So kann die Durchführung der Optimierungen die Anwendung verlangsamen, da sie nicht nur den Code ausführt, sondern auch die Optimierungen durchführt. Anschließend können dann De-Optimierungen notwendig werden, die wiederum Zeit kosten. Ähnliches gilt für Garbage-Collections, die dazu führen können, dass die Anwendung eine Pause macht, so dass entsprechend falsche Ergebnisse rauskommen. Das ganze macht Micro-Benchmarks wesentlich in Java schwieriger handhabbar als zum Beispiel bei C++. Man kann allerdings zumindest in Java 5 einige der Compiler-Zeiten über JMX sehen oder per -XX:+PrintCompilation ausgeben lassen.
Angelika hat sehr deutlich gezeigt, dass es nicht einfach ist, solche Micro-Benchmarks richtig hinzubekommen, aber nur mit solchen Benchmarks kann man die richtige Entscheidung für oder gegen einen Algorithmus treffen.
J for Java |
I for Internet, iMac, iPod and iPad |
Me for me