JVM Performance Engineering

Inside OpenJDK and the HotSpot Java Virtual Machine

Paperback Engels 2024 9780134659879
Verwachte levertijd ongeveer 9 werkdagen

Specificaties

ISBN13:9780134659879
Taal:Engels
Bindwijze:Paperback

Lezersrecensies

Wees de eerste die een lezersrecensie schrijft!

Inhoudsopgave

<p>Preface xv<br>Acknowledgments xxiii<br>About the Author xxvii</p> <p><strong>Chapter 1: The Performance Evolution of Java: The Language and the Virtual Machine 1</strong><br>A New Ecosystem Is Born 2<br>A Few Pages from History 2<br>Understanding Java HotSpot VM and Its Compilation Strategies 3<br>HotSpot Garbage Collector: Memory Management Unit 13<br>The Evolution of the Java Programming Language and Its Ecosystem: A Closer Look 18<br>Embracing Evolution for Enhanced Performance 42</p> <p><strong>Chapter 2: Performance Implications of Java's Type System Evolution 43</strong><br>Java's Primitive Types and Literals Prior to J2SE 5.0 44<br>Java's Reference Types Prior to J2SE 5.0 45<br>Java's Type System Evolution from J2SE 5.0 until Java SE 8 49<br>Java's Type System Evolution: Java 9 and Java 10 52<br>Java's Type System Evolution: Java 11 to Java 17 55<br>Beyond Java 17: Project Valhalla 58<br>Conclusion 68</p> <p><strong>Chapter 3: From Monolithic to Modular Java: A Retrospective and Ongoing Evolution 69</strong><br>Introduction 69<br>Understanding the Java Platform Module System 70<br>From Monolithic to Modular: The Evolution of the JDK 78<br>Continuing the Evolution: Modular JDK in JDK 11 and Beyond 78<br>Implementing Modular Services with JDK 17 78<br>JAR Hell Versioning Problem and Jigsaw Layers 83<br>Open Services Gateway Initiative 91<br>Introduction to Jdeps, Jlink, Jdeprscan, and Jmod 93<br>Conclusion 96</p> <p><strong>Chapter 4: The Unified Java Virtual Machine Logging Interface 99</strong><br>The Need for Unified Logging 99<br>Unification and Infrastructure 100<br>Tags in the Unified Logging System 101<br>Diving into Levels, Outputs, and Decorators 103<br>Practical Examples of Using the Unified Logging System 107<br>Optimizing and Managing the Unified Logging System 109<br>Asynchronous Logging and the Unified Logging System 110<br>Understanding the Enhancements in JDK 11 and JDK 17 113<br>Conclusion 113</p> <p><strong>Chapter 5: End-to-End Java Performance Optimization: Engineering Techniques and Micro-benchmarking with JMH 115</strong><br>Introduction 115<br>Performance Engineering: A Central Pillar of Software Engineering 116<br>Metrics for Measuring Java Performance 118<br>The Role of Hardware in Performance 128<br>Performance Engineering Methodology: A Dynamic and Detailed Approach 145<br>The Importance of Performance Benchmarking 158<br>Conclusion 175</p> <p><strong>Chapter 6: Advanced Memory Management and Garbage Collection in OpenJDK 177</strong><br>Introduction 177<br>Overview of Garbage Collection in Java 178<br>Thread-Local Allocation Buffers and Promotion-Local Allocation Buffers 179<br>Optimizing Memory Access with NUMA-Aware Garbage Collection 181<br>Exploring Garbage Collection Improvements 183<br>Future Trends in Garbage Collection 210<br>Practical Tips for Evaluating GC Performance 212<br>Evaluating GC Performance in Various Workloads 214<br>Live Data Set Pressure 216</p> <p><strong>Chapter 7: Runtime Performance Optimizations: A Focus on Strings, Locks, and Beyond 219</strong><br>Introduction 219<br>String Optimizations 220<br>Enhanced Multithreading Performance: Java Thread Synchronization 236<br>Transitioning from the Thread-per-Task Model to More Scalable Models 259<br>Conclusion 270</p> <p><strong>Chapter 8: Accelerating Time to Steady State with OpenJDK HotSpot VM 273</strong><br>Introduction 273<br>JVM Start-up and Warm-up Optimization Techniques 274<br>Decoding Time to Steady State in Java Applications 274<br>Managing State at Start-up and Ramp-up 278<br>GraalVM: Revolutionizing Java's Time to Steady State 290<br>Emerging Technologies: CRIU and Project CRaC for Checkpoint/Restore Functionality 292<br>Start-up and Ramp-up Optimization in Serverless and Other Environments 295<br>Boosting Warm-up Performance with OpenJDK HotSpot VM 300<br>Conclusion 306</p> <p><strong>Chapter 9: Harnessing Exotic Hardware: The Future of JVM Performance Engineering 307</strong><br>Introduction to Exotic Hardware and the JVM 307<br>Exotic Hardware in the Cloud 309<br>The Role of Language Design and Toolchains 312<br>Case Studies 313<br>Envisioning the Future of JVM and Project Panama 333<br>Concluding Thoughts: The Future of JVM Performance Engineering 336</p> <p>Index 337</p>

Managementboek Top 100

Rubrieken

    Personen

      Trefwoorden

        JVM Performance Engineering