Optimizing Java. Practical Techniques for Improving JVM Application Performance
- Autorzy:
- Benjamin J Evans, James Gough, Chris Newland
- Ocena:
- Bądź pierwszym, który oceni tę książkę
- Stron:
- 440
- Dostępne formaty:
-
ePubMobi
Opis ebooka: 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
-
To dziewiąte wydanie znakomitego podręcznika programowania dla początkujących, starannie zaktualizowane i uzupełnione o informacje dotyczące Java Platform, Standard Edition 17. Książka rozpoczyna się od solidnej dawki wiedzy o kompilacji i uruchamianiu programu w Javie, słowach kluczowych i istot...(83.85 zł najniższa cena z 30 dni)
90.30 zł
129.00 zł(-30%) -
Dzięki tej książce zrozumiesz bazowe koncepcje programowania funkcyjnego i przekonasz się, że możesz włączać je do kodu bez rezygnacji z paradygmatu obiektowego. Dowiesz się również, kiedy w swojej codziennej pracy używać takich opcji jak niemutowalność i funkcje czyste i dlaczego warto to robić....
Java. Podejście funkcyjne. Rozszerzanie obiektowego kodu Javy o zasady programowania funkcyjnego Java. Podejście funkcyjne. Rozszerzanie obiektowego kodu Javy o zasady programowania funkcyjnego
(56.55 zł najniższa cena z 30 dni)60.90 zł
87.00 zł(-30%) -
Oto kolejne wydanie zwięzłego podręcznika dla programistów Javy, który ma ułatwić maksymalne wykorzystanie technologii tego języka w wersji 17. Treść została skrupulatnie przejrzana i uzupełniona o materiał dotyczący nowości w obiektowym modelu Javy. Pierwsza część książki obejmuje wprowadzenie d...(57.84 zł najniższa cena z 30 dni)
62.30 zł
89.00 zł(-30%) -
Oto zaktualizowane i uzupełnione wydanie zwięzłego wprowadzenia do Javy SE 17, przeznaczonego dla profesjonalnych programistów Javy. Przedstawiono w nim wszystkie istotne zagadnienia, łącznie z takimi koncepcjami jak wyrażenia lambda i strumienie, nowoczesnymi konstrukcjami, jak rekordy i klasy z...
Java. Przewodnik doświadczonego programisty. Wydanie III Java. Przewodnik doświadczonego programisty. Wydanie III
(57.84 zł najniższa cena z 30 dni)62.30 zł
89.00 zł(-30%) -
Oto dwunaste wydanie wyczerpującego kompendium, w pełni zaktualizowane, uzupełnione o nowości wprowadzone w Java SE 17. Opisano w nim cały język Java: jego składnię, słowa kluczowe i najistotniejsze zasady programowania. Znalazły się tu także informacje dotyczące biblioteki Java API, takie jak op...(129.35 zł najniższa cena z 30 dni)
139.30 zł
199.00 zł(-30%) -
Architect robust solutions like a pro with real-world insights and cutting-edge design techniques. Delve into advanced analytics, machine learning, generative AI, cloud-native architecture, and the key soft skills to excel as a solutions architect.
Solutions Architect's Handbook. Kick-start your career with architecture design principles, strategies, and generative AI techniques - Third Edition Solutions Architect's Handbook. Kick-start your career with architecture design principles, strategies, and generative AI techniques - Third Edition
Saurabh Shrivastava, Neelanjali Srivastav, Rajesh Sheth, Kamal Arora, Rohan Karmarkar
-
Build Your Own Programming Language provides a hands-on approach to designing and implementing programming language features in a simple compiler and programming environment. This book will help you create new or domain-specific languages.
Build Your Own Programming Language. A developer's comprehensive guide to crafting, compiling, and implementing programming languages - Second Edition Build Your Own Programming Language. A developer's comprehensive guide to crafting, compiling, and implementing programming languages - Second Edition
-
Java. Podręcznik na start to pozycja idealna dla każdego, kto chce podjąć takie kroki. W przystępny sposób zaznajamia nie tylko z językiem, ale też z podstawowymi koncepcjami stosowanymi podczas programowania - w obrazowy sposób przyrównuje je do sytuacji znanych spoza świata wirtualnego. Autor n...(44.85 zł najniższa cena z 30 dni)
48.30 zł
69.00 zł(-30%) -
Java należy do najpopularniejszych języków programowania na świecie. Używana przez miliony programistów, jest na tyle uniwersalna, że znajduje zastosowanie zarówno w aplikacjach desktopowych, mobilnych, jak i serwerowych, a także w zaawansowanych systemach zarządzania bazami danych. Z jej zalet k...
Java 21. Kurs video. Od "Hello World!" do programowania obiektowego Java 21. Kurs video. Od "Hello World!" do programowania obiektowego
-
Kariera zawodowa programisty jest związana z nieustanną nauką i doskonaleniem zdobytych umiejętności. Jednym z podstawowych etapów rozwoju programisty Java jest zaznajomienie się z dobrymi praktykami programistycznymi, co obejmuje także wzorce projektowe – i to im właśnie poświęcony jest te...
Wzorce projektowe w Javie. Kurs video. Programowanie efektywnych rozwiązań Wzorce projektowe w Javie. Kurs video. Programowanie efektywnych rozwiązań
O autorach ebooka
Benjamin 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.
James Gough jest mistrzem Javy i architektem API. Był członkiem Java Community Process Executive Committee i rozwijał implementację OpenJDK.
Benjamin J Evans, James Gough, Chris Newland - pozostałe książki
-
This updated edition of the Nutshell guide not only helps experienced Java programmers get the most out of versions through Java 17, it also serves as a learning path for new developers. Chock-full of examples that demonstrate how to take complete advantage of modern Java APIs and development bes...(203.15 zł najniższa cena z 30 dni)
211.65 zł
249.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...(29.49 zł najniższa cena z 30 dni)
32.45 zł
59.00 zł(-45%) -
Ten przewodnik, który docenią programiści i architekci, zawiera wyczerpujące omówienie zagadnień projektowania, funkcjonowania i modyfikowania architektury API. Od strony praktycznej przedstawia strategie budowania i testowania API REST umożliwiającego połączenie oferowanej funkcjonalności na poz...
Architektura API. Projektowanie, używanie i rozwijanie systemów opartych na API Architektura API. Projektowanie, używanie i rozwijanie systemów opartych na API
(44.85 zł najniższa cena z 30 dni)48.30 zł
69.00 zł(-30%) -
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...(186.15 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%)
Ebooka "Optimizing Java. Practical Techniques for Improving JVM Application Performance" przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook, Onyx Boox 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 "Optimizing Java. Practical Techniques for Improving JVM Application Performance" posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video "Optimizing Java. Practical Techniques for Improving JVM Application Performance" zobaczysz:
-
w aplikacjach Ebookpoint i Videopoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych z dostępem do najnowszej wersji Twojej przeglądarki internetowej
Szczegóły ebooka
- 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@ebookpoint.pl.
- Język publikacji:
- angielski
- Rozmiar pliku ePub:
- 17.9MB
- Rozmiar pliku Mobi:
- 50.1MB
Spis treści ebooka
- 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
-
Software as a service (SaaS) is on the path to becoming the de facto model for building, delivering, and operating software solutions. Adopting a multi-tenant SaaS model requires builders to take on a broad range of new architecture, implementation, and operational challenges. How data is partiti...(237.15 zł najniższa cena z 30 dni)
245.65 zł
289.00 zł(-15%) -
Great engineers don't necessarily make great leaders—at least, not without a lot of work. Finding your path to becoming a strong leader is often fraught with challenges. It's not easy to figure out how to be strategic, successful, and considerate while also being firm. Whether you're on the...(118.15 zł najniższa cena z 30 dni)
126.65 zł
149.00 zł(-15%) -
Data science happens in code. The ability to write reproducible, robust, scaleable code is key to a data science project's success—and is absolutely essential for those working with production code. This practical book bridges the gap between data science and software engineering,and clearl...(211.65 zł najniższa cena z 30 dni)
220.15 zł
259.00 zł(-15%) -
With the massive adoption of microservices, operators and developers face far more complexity in their applications today. Service meshes can help you manage this problem by providing a unified control plane to secure, manage, and monitor your entire network. This practical guide shows you how th...(194.65 zł najniższa cena z 30 dni)
211.65 zł
249.00 zł(-15%) -
Get practical advice on how to leverage AI development tools for all stages of code creation, including requirements, planning, design, coding, debugging, testing, and documentation. With this book, beginners and experienced developers alike will learn how to use a wide range of tools, from gener...(164.25 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%) -
Rust's popularity is growing, due in part to features like memory safety, type safety, and thread safety. But these same elements can also make learning Rust a challenge, even for experienced programmers. This practical guide helps you make the transition to writing idiomatic Rust—while als...(164.25 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%) -
Advance your Power BI skills by adding AI to your repertoire at a practice level. With this practical book, business-oriented software engineers and developers will learn the terminologies, practices, and strategy necessary to successfully incorporate AI into your business intelligence estate. Je...(211.65 zł najniższa cena z 30 dni)
220.15 zł
259.00 zł(-15%) -
Microservices can be a very effective approach for delivering value to your organization and to your customers. If you get them right, microservices help you to move fast by making changes to small parts of your system hundreds of times a day. But if you get them wrong, microservices will just ma...(203.15 zł najniższa cena z 30 dni)
211.65 zł
249.00 zł(-15%) -
JavaScript gives web developers great power to create rich interactive browser experiences, and much of that power is provided by the browser itself. Modern web APIs enable web-based applications to come to life like never before, supporting actions that once required browser plug-ins. Some are s...(186.15 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%) -
How will software development and operations have to change to meet the sustainability and green needs of the planet? And what does that imply for development organizations? In this eye-opening book, sustainable software advocates Anne Currie, Sarah Hsu, and Sara Bergman provide a unique overview...(169.14 zł najniższa cena z 30 dni)
169.14 zł
199.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.
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.
Książka drukowana
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.