oracle.com Oracle HotSpot Virtual Machine Garbage Collection tuning guide
jamesbloom.com
oracle.com
artima.com
JVM internals JVM JVM jit jbma jcf
stackoverflow.com Different section of JVM [Eden/Serviver/Tenured + PermGen/CodeCache] Heap
dzone.com
stackoverflow.com
github.com
github.com
JIT compiler in JVM Heap jitop
VM option (-XX:+PrintCompilation) will print all JIT optimizations at runtime
VM option (-X) will print all Non-standard JVM options
Output format: {compile_id}{method_attributes} {short_name} ({size} bytes)
java.net
java.net
HotSpot JVM Runtime, OpenJDK8 Compiler/JVM source jco
oracle.com
artima.com
HotSpot JVM Glossary
github.com HeapStats, a lightweight monitoring tool for Java heap and GC.
Winner of JavaOne Duke’s Choice Awards
stackoverflow.com Method area is a subset of PermGen area ma jma
java.net
java.net
Compilation guide and source
Automatic 'java.lang' package loading (line 521 call to 'importAll' method)
github.io
github.com
JIT compiler and CodeCache in brief om1
VM option (-Xint) will run JVM in interpreter mode only; No JIT
Example program to see how -Xint can affect performance
stackoverflow.com JIT compiler dynamic De-Optimization
If an optimization did not, improve performance and undo that optimization
oracle.com
oracle.com
Class Loading in JVM hjc cl
oracle.com
stackoverflow.com
Class Linking in JVM: Verification, Preparation, Resolution (VPR) of Symbolic References
Symbolic References are used to retrieve the actual object
Verification can be turned off by supplying the -noverify option cv cpri
javainterviewpoint.com
artima.com
Class Execution in JVM jvma jvma1
lse.epita.fr
murrayc.com
Class Format in JVM co Class file uses Hexadecimal format
oracle.com JDK class disassembler: javap -v -p -s -sysinfo com.test
First put your jar in classpath(export CLASSPATH=your-jar.jar) st
wikipedia.org
oracle.com
javaworld.com
Java bytecode instruction set
javaworld.com
stackoverflow.com
github.com
Java bytecode 'invoke' type instructions (VISSD) inv inv
  • invokevirtual for class methods using dynamic dispatch
  • invokeinterface for interface methods
  • invokestatic for class methods
  • invokespecial for constructor/private methods/super calls
  • invokedynamic (indy) for Lambdas
stackoverflow.com
java.net
jvmlangsummit.com
How Lambdas uses invokedynamic (indy)
blogspot.in
blogspot.in
blogspot.in
JVM OutOfMemory Error and thread Dump Analysis using Eclipse MAT
stackoverflow.com How JVM stores static/class references
stackoverflow.com Interned String and Garbage Collection
stackoverflow.com
openjdk.java.net
Difference of Metaspace and PermGen MS
oracle.com
oracle.com
stackoverflow.com
HotSpot VM Options(BGPD): jca Standard(-), Non-standard(-X), Developer (-XX) -XX:+PrintFlagsFinal lists all flags available in VM
javapapers.com
fasterj.com
stackoverflow.com
javacodegeeks.com
Garbage Collection(SPCG): Garbage Collections Garbage Collections Garbage Collections Garbage Collection Garbage Collections
oracle.com
oracle.com
Java G1 Garbage Collector (-XX:+UseG1GC) g1gc
oracle.com Concurrent Mark Sweep (-XX:+UseConcMarkSweepGC)
oracle.com
java.net
JVM Microbenchmarking
"About 97% of the time: Premature optimization is the root of all evil" - Donald Knuth
securingjava.com
stackoverflow.com
stackoverflow.com
Class Loader Architecture Class Loader Program Counter
stackoverflow.com Native instruction using JNI ma
superuser.com CPU x86 registers
ascii.cl Decimal, Hexadecimal, Octal, Binary conversion table
stackoverflow.com Load all associated class info a running class (java -verbose)
ibm.com
java-success.com
villanova.edu
stackoverflow.com
How Java objects/primitives stored in memory using visualvm IEEE 754
stackoverflow.com
stackoverflow.com
github.com
stackoverflow.com
stackoverflow.com
Why 'long' consumes more than 8 bytes in memory: Memory Padding
Why 'byte' consumes 4 bytes in memory joim
stackoverflow.com
stackoverflow.com
Garbage Collection tuning for Interned Strings
Java Compressed Strings VM option (-XX:+UseCompressedStrings) is discarded in JDK7
stackoverflow.com
stackoverflow.com
github.com
JVM optimization using hoisting by JIT
stackoverflow.com
blogspot.com
Maximum number of threads per JVM and (-XX:ThreadStackSize) VM option
stackoverflow.com Why does the JVM still not support tail-call optimization
dzone.com
mishadoff.com
github.com
Understanding sun.misc.Unsafe for 'C' like direct memory access in JVM
virtualjug.com
javaperformancetuning.com
An introduction to JVM performance by Rafael Winterhalter
plumbr.io Minor GC vs Major GC vs Full GC