JVM
Java · 22 notes
- Java Production Issue Troubleshootinghistorical
Troubleshooting memory saturation, CPU/thread problems, deadlocks, JVM tuning, and related references.
- Garbage Collection Conceptshistorical
Reference counting, reachability analysis, GC Roots, concrete garbage collection algorithms, and references.
- 7.4 Class Lifecyclehistorical
The class lifecycle: loading, linking, initialization, use, unloading, class loaders, parent delegation, and related questions.
- 7.5 Memory Regionshistorical
JVM memory regions: shared heap and method area, per-thread stack and program counter, and PermGen/Metaspace.
- 7.6 Tuning Approachhistorical
Goals of tuning, overall production steps, JMeter load-test tuning, and CMS tuning flow.
- Garbage Collection Algorithmshistorical
Mark-sweep, mark-compact, copying, and generational collection.
- Class Initialization Orderhistorical
When initialization is triggered, initialization rules, and examples for a single class and an inheritance hierarchy.
- 7.10 3. Garbage Collectorshistorical
Generational collection and historical Serial, Parallel, CMS, and G1 collectors, including CMS/G1 details and comparison.
- Custom Class Loaderhistorical
When a custom class loader is needed, how to implement one with findClass or loadClass, an example, and a reference.
- Escape Analysishistorical
What escape analysis is, how to enable it, optimizations for non-escaping objects, lock elimination, scalar replacement, stack allocation, and references.
- 7.13 4. Selecting a Specific Garbage Collector with JVM Parametershistorical
Matching young- and old-generation collectors, JVM parameters, and how to choose.
- 7.14 Object Creation Processhistorical
Code, bytecode, explanation, and a proposed solution for object-creation instruction reordering.
- Garbage Collectionhistorical
Garbage-collection concepts, when GC happens, what gets collected, what GC does, and references.
- 7.16 Object Layout in Memoryhistorical
Object composition, object headers, instance data, padding, and a JOL experiment.
- How Objects Are Locatedhistorical
Oracle JDK and OpenJDK use direct pointers: fast access, but pointers need to be updated if GC moves surviving objects.
- 7.19 OOM Exampleshistorical
Why OOM occurs and examples for heap, Metaspace, stack overflow, GC overhead, direct buffer memory, and native-thread exhaustion.
- 7.20 Performance Analysis Toolshistorical
Built-in JDK tools such as jps, jinfo, jstack, jmap, jstat, and jhat, plus JMX, MAT, Java Mission Control, BTrace, flame graphs, YourKit, JProfiler, and GC log tools.
- 7.21 JVM Parameter Tuninghistorical
Which JVM parameters to tune, JVM parameter types, how to inspect them, common options, examples, and a typical configuration.