Optimizing Java. Practical Techniques for Improving JVM Application Performance

- Autorzy:
- Benjamin J Evans, James Gough, Chris Newland
- Promocja Przejdź


- Ocena:
- Bądź pierwszym, który oceni tę książkę
- Stron:
- 440
- Dostępne formaty:
-
ePubMobi
Opis książki: 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
Wybrane bestsellery
-
Most organizations with a web presence build and operate APIs; the doorway for customers to interact with the company's services. Designing, building, and managing these critical programs affect everyone in the organization, from engineers and product owners to C-suite executives. But the real ch...(0,00 zł najniższa cena z 30 dni)
203.15 zł
239.00 zł(-15%) -
Najnowsze wydanie książki Java. Almanach ma za zadanie przede wszystkim pomóc doświadczonym programistom maksymalnie wykorzystać technologie Java 7 i Java 8, chociaż może też posłużyć jako podręcznik do nauki programowania dla początkujących programistów. Pierwsza część zawiera zwięzłe wprowadzen...(0,00 zł najniższa cena z 30 dni)
35.40 zł
59.00 zł(-40%) -
Ta książka jest kolejnym, zaktualizowanym i uzupełnionym wydaniem kultowego podręcznika dla profesjonalnych programistów Javy. To pierwszy tom, w którym opisano podstawy języka i najważniejsze zagadnienia związane z programowaniem interfejsu użytkownika, a także kolekcje, wyrażenia lambda, techni...(0,00 zł najniższa cena z 30 dni)
90.30 zł
129.00 zł(-30%) -
Znalezienie odpowiedzi na zaprzątające umysł pytania z zakresu automatyzacji zwykle wiąże się ze spędzeniem długich godzin na wertowaniu niespójnej dokumentacji lub przeszukiwaniu forum Atlassian Community, gdzie swoimi problemami (a także autorskimi pomysłami na ich rozwiązanie) dzielą się inni ...
Atlassian Jira Server & Data Center. Programowanie rozwiązań w projektach biznesowych Atlassian Jira Server & Data Center. Programowanie rozwiązań w projektach biznesowych
(0,00 zł najniższa cena z 30 dni)48.30 zł
69.00 zł(-30%) -
Język Java jest konsekwentnie udoskonalany i unowocześniany dzięki zaangażowaniu wielu ludzi. Nowoczesny język Java staje się coraz bardziej wieloparadygmatowy, co oznacza, że stosowanie najlepszych praktyk w coraz większym stopniu determinuje jakość kodu. Obecnie napisanie kodu, który prawidłowo...(0,00 zł najniższa cena z 30 dni)
69.30 zł
99.00 zł(-30%) -
To dwunaste, rozszerzone wydanie znakomitego podręcznika do nauki Javy, w pełni przejrzane, poprawione i zaktualizowane (uwzględnia nowości wprowadzone w Javie SE 9, 10 i 11). Ułatwia zdobycie solidnych podstaw języka i płynne przejście do tworzenia programów służących do rozwiązywania konkretnyc...
Wprowadzenie do Javy. Programowanie i struktury danych. Wydanie XII Wprowadzenie do Javy. Programowanie i struktury danych. Wydanie XII
(0,00 zł najniższa cena z 30 dni)59.90 zł
199.00 zł(-70%) -
Ta książka jest ósmym wydaniem znakomitego podręcznika programowania dla początkujących, starannie zaktualizowanym i uzupełnionym o informacje dotyczące edycji 11. Zawiera podstawową wiedzę o kompilacji i uruchamianiu programu w Javie oraz o słowach kluczowych i istotnych konstrukcjach w tym języ...(0,00 zł najniższa cena z 30 dni)
69.30 zł
99.00 zł(-30%) -
To kolejne, uzupełnione i zaktualizowane wydanie przewodnika po frameworku Spring. Książka jest napisana w zwięzłym, przejrzystym i jasnym stylu, dzięki czemu szybko zrozumiesz zasady pracy ze Springiem i zbudujesz nowoczesną aplikację internetową współpracującą z bazą danych. Pokazano tu technik...(0,00 zł najniższa cena z 30 dni)
62.30 zł
89.00 zł(-30%) -
Ta książka jest jedenastym wydaniem wyczerpującego kompendium programisty Javy, w pełni zaktualizowanym, uzupełnionym o nowości wprowadzone w Java SE 11. Opisuje język kompleksowo: jego składnię, słowa kluczowe oraz najistotniejsze zasady programowania. Zawiera także informacje o najważniejszych ...(0,00 zł najniższa cena z 30 dni)
139.30 zł
199.00 zł(-30%) -
Oto kolejne, przejrzane, zaktualizowane i uzupełnione wydanie znakomitego podręcznika dla zawodowych programistów Javy. Znalazł się tu dokładny opis sposobów tworzenia interfejsu użytkownika, stosowania rozwiązań korporacyjnych, sieciowych i zabezpieczeń, a także nowości wprowadzonych w JDK 11. P...(0,00 zł najniższa cena z 30 dni)
104.30 zł
149.00 zł(-30%)
O autorze książki
1 Benjamin J Evans, James Gough, Chris NewlandBenjamin J. Evans — Java Champion, JavaOne Rockstar, współzałożyciel firmy jClarity, specjalista w zakresie oceny wydajności dla zespołów programistycznych i operacyjnych, prelegent zajmujący się tematyką platformy Java, wydajności i współbieżności.
Ebooka przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolonych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video zobaczysz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolonych urządzeniach i aplikacjach obsługujących format MP4 (pliki spakowane w ZIP)
Szczegóły książki
- ISBN Ebooka:
- 978-14-920-3927-3, 9781492039273
- Data wydania ebooka:
-
2018-04-17
Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@helion.pl.
- Język publikacji:
- angielski
- Rozmiar pliku ePub:
- 17.9MB
- Rozmiar pliku Mobi:
- 50.1MB
- Kategorie:
Programowanie » Java - Programowanie
Spis treści książki
- Foreword
- Preface
- Conventions Used in This Book
- Using Code Examples
- OReilly Safari
- How to Contact Us
- Acknowledgments
- 1. Optimization and Performance Defined
- Java PerformanceThe 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
- 2. Overview of the JVM
- Interpreting and Classloading
- Executing Bytecode
- Introducing HotSpot
- Introducing Just-in-Time Compilation
- JVM Memory Management
- Threading and the Java Memory Model
- Meet the JVMs
- A Note on Licenses
- Monitoring and Tooling for the JVM
- VisualVM
- Summary
- 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
- Kernel bypass I/O
- Mechanical Sympathy
- Virtualization
- The JVM and the Operating System
- Summary
- 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
- Types of Performance 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 Catalogue
- Distracted by Shiny
- Description
- Example comment
- Reality
- Discussion
- Resolutions
- Distracted by Shiny
- Distracted by Simple
- Description
- Example comments
- Reality
- Discussion
- Resolutions
- Performance Tuning Wizard
- Description
- Example comment
- Reality
- Discussion
- Resolutions
- Tuning by Folklore
- Description
- Example comment
- Reality
- Discussion
- Resolutions
- The Blame Donkey
- Description
- Example comment
- Reality
- Discussion
- Resolutions
- Missing the Bigger Picture
- Description
- Example comments
- Reality
- Discussion
- Resolutions
- UAT Is My Desktop
- Description
- Example Comment
- Reality
- Discussion
- Resolutions
- Production-Like Data Is Hard
- Description
- Example comments
- Reality
- Discussion
- Resolutions
- Cognitive Biases and Performance Testing
- Reductionist Thinking
- Confirmation Bias
- Fog of War (Action Bias)
- Risk Bias
- Ellsbergs Paradox
- Summary
- 5. Microbenchmarking and Statistics
- Introduction to Measuring Java Performance
- Introduction to JMH
- Dont Microbenchmark If You Can Help It (A True Story)
- Heuristics for When to Microbenchmark
- The JMH Framework
- Executing Benchmarks
- Statistics for JVM Performance
- Types of Error
- Systematic error
- Random error
- Spurious correlation
- Types of Error
- Non-Normal Statistics
- Interpretation of Statistics
- Summary
- 6. Understanding Garbage Collection
- Introducing Mark and Sweep
- Garbage Collection Glossary
- Introducing Mark and Sweep
- 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
- Summary
- 7. Advanced Garbage Collection
- Tradeoffs and Pluggable Collectors
- Concurrent GC Theory
- JVM Safepoints
- Tri-Color Marking
- CMS
- How CMS Works
- Basic JVM Flags for CMS
- G1
- G1 Heap Layout and Regions
- G1 Algorithm Design
- G1 Phases
- Basic JVM Flags for G1
- Shenandoah
- Concurrent Compaction
- Obtaining Shenandoah
- C4 (Azul Zing)
- The Loaded Value Barrier
- Balanced (IBM J9)
- J9 Object Headers
- Large Arrays in Balanced
- NUMA and Balanced
- Legacy HotSpot Collectors
- Serial and SerialOld
- Incremental CMS (iCMS)
- Deprecated and Removed GC Combinations
- Epsilon
- Summary
- 8. GC Logging, Monitoring, Tuning, and Tools
- Introduction to GC Logging
- Switching On GC Logging
- GC Logs Versus JMX
- Drawbacks of JMX
- Benefits of GC Log Data
- Introduction to GC Logging
- Log Parsing Tools
- Censum
- GCViewer
- Different Visualizations of the Same Data
- Basic GC Tuning
- Understanding Allocation
- Understanding Pause Time
- Collector Threads and GC Roots
- Tuning Parallel GC
- Tuning CMS
- Concurrent Mode Failures Due to Fragmentation
- Tuning G1
- jHiccup
- Summary
- 9. Code Execution on the JVM
- Overview of Bytecode Interpretation
- Introduction to JVM Bytecode
- Simple Interpreters
- HotSpot-Specific Details
- Overview of Bytecode Interpretation
- AOT and JIT Compilation
- AOT Compilation
- JIT Compilation
- Comparing AOT and JIT Compilation
- HotSpot JIT Basics
- Klass Words, Vtables, and Pointer Swizzling
- Logging JIT Compilation
- Compilers Within HotSpot
- Tiered Compilation in HotSpot
- The Code Cache
- Fragmentation
- Simple JIT Tuning
- Summary
- 10. Understanding JIT Compilation
- Introducing JITWatch
- Basic JITWatch Views
- Debug JVMs and hsdis
- Introducing JITWatch
- Introducing JIT Compilation
- Inlining
- Inlining Limits
- Tuning the Inlining Subsystem
- Loop Unrolling
- Loop Unrolling Summary
- Escape Analysis
- Eliminating Heap Allocations
- Locks and Escape Analysis
- Limitations of Escape Analysis
- Monomorphic Dispatch
- Intrinsics
- On-Stack Replacement
- Safepoints Revisited
- Core Library Methods
- Upper Method Size Limit for Inlining
- Improve performance with a domain-specific method
- Benefits of small methods
- Upper Method Size Limit for Inlining
- Upper Method Size Limit for Compilation
- Summary
- 11. Java Language Performance Techniques
- Optimizing Collections
- Optimization Considerations for Lists
- ArrayList
- LinkedList
- ArrayList versus LinkedList
- Optimization Considerations for Maps
- HashMap
- LinkedHashMap
- HashMap
- TreeMap
- Lack of MultiMap
- Optimization Considerations for Sets
- Domain Objects
- Avoid Finalization
- War Story: Forgetting to Clean Up
- Why Not Use Finalization to Solve the Problem?
- try-with-resources
- Method Handles
- Summary
- 12. Concurrent Performance Techniques
- Introduction to Parallelism
- Fundamental Java Concurrency
- Introduction to Parallelism
- Understanding the JMM
- Building Concurrency Libraries
- Unsafe
- Atomics and CAS
- Locks and Spinlocks
- Summary of Concurrent Libraries
- Locks in java.util.concurrent
- Read/Write Locks
- Semaphores
- Concurrent Collections
- Latches and Barriers
- Executors and Task Abstraction
- Introducing Asynchronous Execution
- Selecting an ExecutorService
- Fork/Join
- Modern Java Concurrency
- Streams and Parallel Streams
- Lock-Free Techniques
- Actor-Based Techniques
- Summary
- 13. Profiling
- Introduction to Profiling
- Sampling and Safepointing Bias
- Execution Profiling Tools for Developers
- VisualVM Profiler
- JProfiler
- YourKit
- Flight Recorder and Mission Control
- Operational Tools
- Red Hat Thermostat
- New Relic
- jClarity Illuminate
- Modern Profilers
- Allocation Profiling
- Heap Dump Analysis
- hprof
- Summary
- 14. High-Performance Logging and Messaging
- Logging
- Logging Microbenchmarks
- No logging
- Logback format
- java.util.logging format
- Log4j format
- Measurements
- Logger results
- Logging Microbenchmarks
- Logging
- Designing a Lower-Impact Logger
- Low Latency Using Real Logic Libraries
- Agrona
- Buffers
- Lists, maps, and sets
- Queues
- Ring buffers
- Agrona
- Simple Binary Encoding
- Copy-free and native type mapping
- Steady-state allocation
- Streaming access and word-aligned access
- Working with SBE
- Aeron
- Why build something new?
- Publishers
- Subscribers
- The Design of Aeron
- Transport requirements
- Latency and application principles
- How it works under the hood
- Summary
- 15. Java 9 and the Future
- Small Performance Enhancements in Java 9
- Segmented Code Cache
- Compact Strings
- New String Concatenation
- C2 Compiler Improvements
- New Version of G1
- Small Performance Enhancements in Java 9
- Java 10 and Future Versions
- New Release Process
- Java 10
- Unsafe in Java 9 and Beyond
- VarHandles in Java 9
- Project Valhalla and Value Types
- Graal and Truffle
- Future Directions in Bytecode
- Future Directions in Concurrency
- Conclusion
- Index
O'Reilly Media - inne książki
-
FinOps brings financial accountability to the variable spend model of cloud. Used by the majority of global enterprises, this management practice has grown from a fringe activity to the de facto discipline managing cloud spend. In this book, authors J.R. Storment and Mike Fuller outline the proce...(0,00 zł najniższa cena z 30 dni)
271.15 zł
319.00 zł(-15%) -
Edge AI is transforming the way computers interact with the real world, allowing IoT devices to make decisions using the 99% of sensor data that was previously discarded due to cost, bandwidth, or power limitations. With techniques like embedded machine learning, developers can capture human intu...(0,00 zł najniższa cena z 30 dni)
271.15 zł
319.00 zł(-15%) -
Why is it difficult for so many companies to get digital identity right? If you're still wrestling with even simple identity problems like modern website authentication, this practical book has the answers you need. Author Phil Windley provides conceptual frameworks to help you make sense of all ...(0,00 zł najniższa cena z 30 dni)
194.65 zł
229.00 zł(-15%) -
Python was recently ranked as today's most popular programming language on the TIOBE index, thanks to its broad applicability to design and prototyping to testing, deployment, and maintenance. With this updated fourth edition, you'll learn how to get the most out of Python, whether you're a profe...(0,00 zł najniższa cena z 30 dni)
305.15 zł
359.00 zł(-15%) -
With the accelerating speed of business and the increasing dependence on technology, companies today are significantly changing the way they build in-house business solutions. Many now use low-code and no code technologies to help them deal with specific issues, but that's just the beginning. Wit...
Building Solutions with the Microsoft Power Platform Building Solutions with the Microsoft Power Platform
(0,00 zł najniższa cena z 30 dni)271.15 zł
319.00 zł(-15%) -
Companies are scrambling to integrate AI into their systems and operations. But to build truly successful solutions, you need a firm grasp of the underlying mathematics. This accessible guide walks you through the math necessary to thrive in the AI field such as focusing on real-world application...(0,00 zł najniższa cena z 30 dni)
271.15 zł
319.00 zł(-15%) -
DevOps engineers, developers, and security engineers have ever-changing roles to play in today's cloud native world. In order to build secure and resilient applications, you have to be equipped with security knowledge. Enter security as code.In this book, authors BK Sarthak Das and Virginia Chu d...(0,00 zł najniższa cena z 30 dni)
194.65 zł
229.00 zł(-15%) -
With the increasing use of AI in high-stakes domains such as medicine, law, and defense, organizations spend a lot of time and money to make ML models trustworthy. Many books on the subject offer deep dives into theories and concepts. This guide provides a practical starting point to help develop...(0,00 zł najniższa cena z 30 dni)
271.15 zł
319.00 zł(-15%) -
Why are so many companies adopting GitOps for their DevOps and cloud native strategy? This reliable framework is quickly becoming the standard method for deploying apps to Kubernetes. With this practical, developer-oriented book, DevOps engineers, developers, IT architects, and SREs will learn th...(0,00 zł najniższa cena z 30 dni)
271.15 zł
319.00 zł(-15%) -
Learn the essentials of working with Flutter and Dart to build full stack applications that meet the needs of a cloud-driven world. Together, the Flutter open source UI software development kit and the Dart programming language for client development provide a unified solution to building applica...(0,00 zł najniższa cena z 30 dni)
228.65 zł
269.00 zł(-15%)
Dzieki opcji "Druk na żądanie" do sprzedaży wracają tytuły Grupy Helion, które cieszyły sie dużym zainteresowaniem, a których nakład został wyprzedany.
Dla naszych Czytelników wydrukowaliśmy dodatkową pulę egzemplarzy w technice druku cyfrowego.
Co powinieneś wiedzieć o usłudze "Druk na żądanie":
- usługa obejmuje tylko widoczną poniżej listę tytułów, którą na bieżąco aktualizujemy;
- cena książki może być wyższa od początkowej ceny detalicznej, co jest spowodowane kosztami druku cyfrowego (wyższymi niż koszty tradycyjnego druku offsetowego). Obowiązująca cena jest zawsze podawana na stronie WWW książki;
- zawartość książki wraz z dodatkami (płyta CD, DVD) odpowiada jej pierwotnemu wydaniu i jest w pełni komplementarna;
- usługa nie obejmuje książek w kolorze.
W przypadku usługi "Druk na żądanie" termin dostarczenia przesyłki może obejmować także czas potrzebny na dodruk (do 10 dni roboczych)
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka, którą chcesz zamówić pochodzi z końcówki nakładu. Oznacza to, że mogą się pojawić drobne defekty (otarcia, rysy, zagięcia).
Co powinieneś wiedzieć o usłudze "Końcówka nakładu":
- usługa obejmuje tylko książki oznaczone tagiem "Końcówka nakładu";
- wady o których mowa powyżej nie podlegają reklamacji;
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.


Oceny i opinie klientów: Optimizing Java. Practical Techniques for Improving JVM Application Performance Benjamin J Evans, James Gough, Chris Newland (0)
Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.