Dissecting the Java Virtual Machine - Final notes and references
- Details
- Published on Sunday, 29 December 2013 13:52
Benchmarking your JVM implementation
There are a number of standard benchmarks that can be used to test the performance of your JVM implementation:
- for client benchmarks you can use http://www.spec.org/jvm2008/
- for server benchmarks you can use http://www.spec.org/jbb2013/
- for numerical computations you can use http://math.nist.gov/scimark2/
You can also use the Caliper (https://code.google.com/p/caliper/) to write your own microbenchmarks for testing the performance of small bits of java code on your JVM implementation.
Conclusion
I hope this article gives a decent introduction to the Hotspot codebase and can serve as a reference for understanding how the JVM works and even building your own JVM, tuning a JVM or debugging a JVM implementation. Any suggestions for improvement are more than welcome.
References
1) The Java Virtual Machine Specification (Java SE 7 Edition)
http://docs.oracle.com/javase/specs/jvms/se7/html/
2) The Architecture of the Java Virtual Machine
http://www.artima.com/insidejvm/ed2/jvm2.html
3) JVM Internals
http://blog.jamesdbloom.com/JVMInternals.html
4) Hotspot JVM tuning
http://www.slideshare.net/giladgaron/hotspot-jvm-tuning
5) Java Hotspot Virtual Machine, FOSDEM 2007
http://openjdk.java.net/groups/hotspot/docs/FOSDEM-2007-HotSpot.pdf
6) Learn about JVM internals - what does the JVM do?
http://www.youtube.com/watch?v=UwB0OSmkOtQ&list=PL1464F2747F1E66FA
7) Hotspot group docs
http://openjdk.java.net/groups/hotspot/
8) The Implementation of Lua 5.0
http://www.lua.org/doc/jucs05.pdf
9) Mani Sarkar's collection of Hotspot links
https://gist.github.com/neomatrix369/5743225
10) Synopsis of articles & videos on Performance tuning, JVM, GC in Java, Mechanical Sympathy, et al
http://www.javaadvent.com/2013/12/part-1-of-3-synopsis-of-articles-videos.html
http://www.javaadvent.com/2013/12/part-2-of-3-synopsis-of-articles-videos.html
http://www.javaadvent.com/2013/12/part-3-of-3-synopsis-of-articles-videos.html
11) Dissecting the Hotspot JVM at java2days 2013
http://nosoftskills.com/2013/12/dissecting-the-hotspot-vm-at-java2days/
12) Hacking Hotspot in Eclipse
http://neomatrix369.wordpress.com/2013/03/12/hotspot-is-in-focus-again-aka-hacking-hotspot-in-eclipse-juno-under-ubuntu-12-04/
13) JVM research (Sun/Oracle labs)
http://www.ssw.uni-linz.ac.at/Research/Projects/JVM/
https://digitalcollections.anu.edu.au/handle/1885/9053
https://www.cs.tcd.ie/publications/tech-reports/reports.07/TCD-CS-2007-49.pdf
14) Stack based vs Register based Virtual Machine Architecture, and the Dalvik VM
http://markfaction.wordpress.com/2012/07/15/stack-based-vs-register-based-virtual-machine-architecture-and-the-dalvik-vm/
15) Hotspot Overview
http://www.cs.princeton.edu/picasso/mats/HotspotOverview.pdf
16) Hotspot Internals
https://wikis.oracle.com/display/HotSpotInternals/Home
17) JDK8 build instruction (complete rewrite of instructions for JDK7)
http://hg.openjdk.java.net/jdk8/build/raw-file/tip/README-builds.html
18) Design of the Java HotSpotTM Client Compiler for Java 6
http://www.stanford.edu/class/cs343/resources/java-hotspot.pdf
19) Register allocation
http://en.wikipedia.org/wiki/Register_allocation
20) How to JIT – an introduction (awesome post that gives insights on how is JIT-compiled executed at runtime)
http://eli.thegreenplace.net/2013/11/05/how-to-jit-an-introduction/
21) A brief history of Just-in-Time
http://web.csie.cgu.edu.tw/~jhchen/course/PL2/A%20brief%20history%20of%20just-in-time.pdf
22) Runtime code generation with JVM and CLR
http://www.cs.helsinki.fi/u/vihavain/k12/compiler_project/project/Runtime_Code_Generation_with_JVM_and_CLR.pdf
23) Optimizing ML with Run-Time Code Generation
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.43.8218&rep=rep1&type=pdf
24) GCC Inline Assembly HOWTO
http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html
25) Introduction to Java Agents
http://www.javabeat.net/introduction-to-java-agents
26) ZeroSharkFaq for IcedTea
http://icedtea.classpath.org/wiki/ZeroSharkFaq
27) CrossCompileFaq for IcedTea
http://icedtea.classpath.org/wiki/CrossCompileFaq
28) The Java HotSpot Server Compiler, Proceedings of the Java Virtual Machine Research and Technology Symposium (JVM '01)
https://www.usenix.org/legacy/events/jvm01/full_papers/paleczny/paleczny.pdf
29) HotSpot Internals: Explore and Debug the VM at the OS Level
http://openjdkpower.osuosl.org/OpenJDK/JavaOne2013_HS/javaone2013_hs.html#(1)
30) c1visualizer project
https://java.net/projects/c1visualizer/
- << Prev
- Next