Optimizing Java : Practical Techniques for Improving JVM Application Performance
معرفی کتاب «Optimizing Java : Practical Techniques for Improving JVM Application Performance» نوشتهٔ Evans, Benjamin J.; Gough, James; Newland, Chris، منتشرشده توسط نشر O'Reilly Media در سال 2018. این کتاب در فرمت epub، زبان انگلیسی ارائه شده است. «Optimizing Java : Practical Techniques for Improving JVM Application Performance» در دستهٔ بدون دستهبندی قرار دارد.
Performance tuning is an experimental science, but that doesn't mean engineers should resort to guesswork and folklore to get the job done. Yet that's often the case. With this practical book, intermediate to advanced Java technologists working with complex technology stacks will learn how to tune Java applications for performance using a quantitative, verifiable approach. Most resources on performance tend to discuss the theory and internals of Java virtual machines, but this book focuses on the practicalities of performance tuning by examining a wide range of aspects. There are no simple recipes, tips and tricks, or algorithms to learn. Performance tuning is a process of defining and determining desired outcomes. And it requires diligence. Learn how Java principles and technology make the best use of modern hardware and operating systems Explore several performance tests and common anti-patterns that can vex your team Understand the pitfalls of measuring Java performance numbers and the drawbacks of microbenchmarking Dive into JVM garbage collection logging, monitoring, tuning, and tools Explore JIT compilation and Java language performance techniques Learn performance aspects of the Java Collections API and get an overview of Java concurrency Intro Copyright Table of Contents Foreword Preface Conventions Used in This Book Using Code Examples O'Reilly Safari How to Contact Us Acknowledgments Chapter 1. Optimization and Performance Defined Java Performance-The Wrong Way Java Performance Overview Performance as an Experimental Science A Taxonomy for Performance Throughput Latency Capacity Utilization Efficiency Scalability Degradation Connections Between the Observables Reading Performance Graphs Summary Chapter 2. Overview of the JVM Interpreting and Classloading Executing Bytecode Introducing HotSpot Introducing Just-in-Time CompilationJVM Memory Management Threading and the Java Memory Model Meet the JVMs A Note on Licenses Monitoring and Tooling for the JVM VisualVM Summary Chapter 3. Hardware and Operating Systems Introduction to Modern Hardware Memory Memory Caches Modern Processor Features Translation Lookaside Buffer Branch Prediction and Speculative Execution Hardware Memory Models Operating Systems The Scheduler A Question of Time Context Switches A Simple System Model Basic Detection Strategies Utilizing the CPU Garbage Collection I/O Mechanical Sympathy VirtualizationThe JVM and the Operating System Summary Chapter 4. Performance Testing Patterns and Antipatterns Types of Performance Test Latency Test Throughput Test Load Test Stress Test Endurance Test Capacity Planning Test Degradation Test Best Practices Primer Top-Down Performance Creating a Test Environment Identifying Performance Requirements Java-Specific Issues Performance Testing as Part of the SDLC Introducing Performance Antipatterns Boredom Résumé Padding Peer Pressure Lack of Understanding Misunderstood/Nonexistent Problem Performance Antipatterns CatalogueDistracted by Shiny Distracted by Simple Performance Tuning Wizard Tuning by Folklore The Blame Donkey Missing the Bigger Picture UAT Is My Desktop Production-Like Data Is Hard Cognitive Biases and Performance Testing Reductionist Thinking Confirmation Bias Fog of War (Action Bias) Risk Bias Ellsberg's Paradox Summary Chapter 5. Microbenchmarking and Statistics Introduction to Measuring Java Performance Introduction to JMH Don't Microbenchmark If You Can Help It (A True Story) Heuristics for When to Microbenchmark The JMH Framework Executing BenchmarksStatistics for JVM Performance Types of Error Non-Normal Statistics Interpretation of Statistics Summary Chapter 6. Understanding Garbage Collection Introducing Mark and Sweep Garbage Collection Glossary Introducing the HotSpot Runtime Representing Objects at Runtime GC Roots and Arenas Allocation and Lifetime Weak Generational Hypothesis Garbage Collection in HotSpot Thread-Local Allocation Hemispheric Collection The Parallel Collectors Young Parallel Collections Old Parallel Collections Limitations of Parallel Collectors The Role of Allocation
دانلود کتاب Optimizing Java : Practical Techniques for Improving JVM Application Performance