oracle.com | Oracle HotSpot Virtual Machine Garbage Collection tuning guide |
jamesbloom.com oracle.com artima.com |
JVM internals
![]() ![]() ![]() ![]() ![]() |
stackoverflow.com | Different section of JVM [Eden/Serviver/Tenured + PermGen/CodeCache] ![]() |
dzone.com stackoverflow.com github.com github.com |
JIT compiler in JVM
![]() ![]() -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 ![]() |
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
![]() ![]() |
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 ![]() -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
![]() ![]() |
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
![]() ![]() |
javainterviewpoint.com artima.com |
Class Execution in JVM
![]() ![]() |
lse.epita.fr murrayc.com |
Class Format in JVM ![]() |
oracle.com |
JDK class disassembler: javap -v -p -s -sysinfo com.test
First put your jar in classpath(export CLASSPATH=your-jar.jar)
![]() |
wikipedia.org oracle.com javaworld.com | Java bytecode instruction set |
javaworld.com stackoverflow.com github.com |
Java bytecode 'invoke' type instructions (VISSD)
![]() ![]()
|
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 ![]() |
oracle.com oracle.com stackoverflow.com |
HotSpot VM Options(BGPD):
![]()
-XX:+PrintFlagsFinal lists all flags available in VM
|
javapapers.com fasterj.com stackoverflow.com javacodegeeks.com |
Garbage Collection(SPCG):
![]() ![]() ![]() ![]() ![]() |
oracle.com oracle.com | Java G1 Garbage Collector (-XX:+UseG1GC ) ![]() |
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
![]() ![]() |
stackoverflow.com | Native instruction using JNI ![]() |
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 ![]() |
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 ![]() |
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 |