Synopses & Reviews
Modern multicore processors offer immense opportunities to improve Java performance, but they also make Java performance tuning more complex than ever. Java Performance Companion helps you systematically improve Java performance by taking a proactive approach: identifying optimization opportunities, experimenting and accurately interpreting your results, and taking effective action.
World-class Java performance experts present detailed information on common top-down (application-centric) tuning and bottom-up (hardware/OS centric) approaches, with solid coverage of Windows, Linux, and Solaris. They show how to improve performance by applying state-of-the-art software engineering practices, and how to avoid common mistakes that can mislead you into writing poorly performing software. Throughout, you'll find dozens of Java performance tips and tricks available nowhere else. Key topics include:
- Monitoring Java performance at the OS level in Windows, Linux, and Oracle Solaris environments
- Going under the hood with G1 and understanding it in unprecedented depth
- Using modern Java Virtual Machine (JVM) and OS observability tools to profile running systems with almost no performance penalty
- Integrating JVM-level and application monitoring
- Mastering Java method and heap (memory) profiling
- Tuning the Java HotSpot VM for startup, memory footprint, response time, and latency
- Optimizing modern JVM JIT compilers
- Using the HotSpot serviceability agent
- Using Java Mission Control to improve latency, throughput, and footprint
- Triaging JVM issues with the Serviceability Agent
- Implementing best performance practices for using / writing Java Lambdas
- Achieving optimal performance with dynamic languages on the JVM
- Utilizing the newest Oracle and third-party tools for monitoring and measuring performance on diverse hardware architectures and operating systems
Java Performance Companion can help you squeeze maximum performance and value from all your Java applications - no matter how complex they are, what platforms they're running on, or how long you've been running them.
Java(R) Performance Companion
shows how to systematically and proactively improve Java performance with today's advanced multicore hardware and complex operating system environments.
The authors, who are all leading Java performance and Java HotSpot VM experts, help you improve performance by using modern software engineering practices, avoiding common mistakes, and applying tips and tricks gleaned from years of real-world experience.
Picking up where Charlie Hunt and Binu John's classic Java Performance left off, this book provides unprecedented detail on two powerful Java platform innovations: the Garbage First (G1) garbage collector and the HotSpot VM Serviceability Agent.
- Leveraging G1 to overcome limitations in parallel, serial, and CMS garbage collection
- Understanding each stage of G1 GC collections, both young and old
- Getting under the hood with G1 and efficiently fine-tuning it for your application
- Identifying potential optimizations, interpreting experimental results, and taking action
- Exploring the internals of the HotSpot VM
- Using HotSpot VM Serviceability Agent to analyze, triage, and resolve diverse HotSpot VM issues
- Troubleshooting out of memory errors, Java level deadlocks, and HotSpot VM crashes
- Extending the Serviceability Agent, and using the Plugin for VisualVM
- Mastering useful HotSpot VM command line options not covered in Java(TM) Performance
Java(R) Performance Companion can help you squeeze maximum performance and value from Java with JDK 8 or 9-for any application, in any environment.
Register your product at informit.com/register for convenient access to downloads, updates, and corrections as they become available.
About the Author
Charles J. Hunt
(Chicago, IL), Java performance engineer at Oracle, works to improve the performance of Java SE (Standard Edition), Java EE, the Java HotSpot VM, and the Java SE class libraries. He speaks regularly on Java performance at events including JavaOne, QCon, Velocity, and Dreamforce; and actively participates in open source communities including Project Grizzly (as a co-project owner and contributor). Hunt co-authored Java Performance and NetBeans IDE Field Guide. He wrote his first Java application in 1998, joined Sun Microsystems in 1999 as Senior Java Architect, and has focused on Java performance ever since. As Architect of Performance Engineering at Salesforce.com, he was responsible for improving the performance of Salesforce.com's infrastructure, mobile, and UI.
Poonam Bajaj (Bengaluru Area, India) is Principal Member of Technical Staff at Oracle. She was previously Staff Engineer at Sun Microsystems, and Software Engineer at Satyam Computer Services Ltd.
Bengt Rutisson (Stockholm County, Sweden), Member of the HotSpot Group, has worked on HotSpot garbage collection for five years, and contributed 100+ changes to OpenJDK, including significant performance improvements. As Development Manager at Oracle, he specialized in JRockit garbage collection and memory management.
Monica Beckwith (Austin, TX Area), Java Performance Architect at Servergy, helps to build hyper-efficient servers that reduce energy, cooling, space, weight, water and carbon footprint by 80% or more. She led Oracle's Garbage First Garbage Collector performance team, and was named a JavaOne 2013 Rock Star.
Table of Contents
1. G1 GC Overview.
2. G1 GC Deep Dive
3. G1 GC Tuning. trust.
4. Developing micro-benchmarks
5. Triaging JVM issues with the Serviceability Agent
6. Java Mission Control
7. Invoke Dynamic/dynamic languages
8. Use of Bulk/parallel operations
9. Additional JVM command line options
10. Perm Gen to Meta Space Transition