└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # JVM Readings 2 | 3 | WORK IN PROGRESS 4 | 5 | A list of papers and blog posts essential to understanding how the JVM works, and building high performance applications on the JVM. The list is curated and maintained by Reynold Xin ([@rxin](https://twitter.com/rxin)). If you think a paper should be part of this list, please submit a pull request. It might take a while since I need to go over the material. 6 | 7 | Also see my other reading list: [Readings in Databases](https://github.com/rxin/db-readings) 8 | 9 | 10 | JVM Internals 11 | 12 | http://blog.jamesdbloom.com/JVMInternals.html 13 | 14 | GC 15 | 16 | Understanding Garbage Collection 17 | http://www.slideshare.net/dougqh/understanding-garbage-collection 18 | 19 | 20 | JIT 21 | 22 | JVM Mechanics: When Does the JVM JIT & Deoptimize? 23 | http://www.slideshare.net/dougqh/jvm-mechanics-when-does-the 24 | 25 | 26 | JITWatch 27 | 28 | https://github.com/AdoptOpenJDK/jitwatch 29 | 30 | 31 | JMH 32 | 33 | JMH introduction 34 | http://java-performance.info/jmh/ 35 | 36 | Sample JMH benchmark code (read through all of them) 37 | http://hg.openjdk.java.net/code-tools/jmh/file/tip/jmh-samples/src/main/java/org/openjdk/jmh/samples/ 38 | 39 | 40 | Unsafe 41 | 42 | http://mydailyjava.blogspot.com/2013/12/the-infamous-sunmiscunsafe-explained.html 43 | 44 | 45 | Method Dispatch 46 | 47 | This is a good blog post about the cost of polymorphic dispatches. But more importantly, it is a good blog post to understand performance measurement methodology. 48 | 49 | http://shipilev.net/blog/2015/black-magic-method-dispatch/ 50 | 51 | 52 | Safepoints 53 | 54 | http://chriskirk.blogspot.com/2013/09/what-is-java-safepoint.html 55 | 56 | 57 | Intrinsics 58 | 59 | http://www.slideshare.net/RednaxelaFX/green-teajug-hotspotintrinsics02232013 60 | 61 | 62 | Java Memory Model 63 | 64 | - JMM fundamentals: Access atomicity, word tearing, Sequential Consistency, Synchronization Order, SO-PO/SO consistencies, Synchronizes-With Order, Happens-Before, Sequential Consistency - Data Race Free, "Roach Motel", Out of Thin Air values, Finals semantics, JMM9. 65 | https://shipilev.net/blog/2014/jmm-pragmatics/ 66 | 67 | - JMM fundamentals follow up. Common misunderstandings, mistakes and misconceptions. 68 | https://shipilev.net/blog/2016/close-encounters-of-jmm-kind/ 69 | 70 | - JMM in every day life. Combinations of Safe/Unsafe Publications & Safe/Unsafe Initializations. Singletons. Performance and memory costs. 71 | https://shipilev.net/blog/2014/safe-public-construction/ 72 | 73 | - "The JSR-133 Cookbook for Compiler Writers" by Doug Lea. On Memory Barriers. 74 | http://gee.cs.oswego.edu/dl/jmm/cookbook.html 75 | 76 | - "The "Double-Checked Locking is Broken" Declaration" (before JSR133/JavaSE 5). 77 | http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html 78 | 79 | - "All Fields Are Final" experimental set up / analysys for final fields perfomance tests. Memory Barriers for final fields. 80 | https://shipilev.net/blog/2014/all-fields-are-final/ 81 | --------------------------------------------------------------------------------