Optimizing Java: Practical Techniques for Improving JVM Application Performance

Front Cover
"O'Reilly Media, Inc.", Apr 17, 2018 - Computers - 440 pages

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
 

Selected pages

Contents

Section 16
Section 17
Section 18
Section 19
Section 20
Section 21
Section 22
Section 23

Section 9
Section 10
Section 11
Section 12
Section 13
Section 14
Section 15
Section 24
Section 25
Section 26
Section 27
Section 28
Section 29

Other editions - View all

Common terms and phrases

About the author (2018)

Ben Evans is the Co-founder and Technology Fellow of jClarity, a startup which delivers performance tools to help development & ops teams. He helps to organise the London Java Community, and represents them on the Java Community Process Executive Committee where he works to define new standards for the Java ecosystem. He is a Java Champion; JavaOne Rockstar; co-author of “The Well-Grounded Java Developer” and a regular public speaker on the Java platform, performance, concurrency, and related topics.

James Gough is a technical trainer and writer specializing in Java. He spends the majority of his time teaching advanced Java and concurrency courses to developers with varying technical backgrounds. He serves on the Java Community Process Executive Committee and contributed towards the design and testing of JSR-310, the date time system built for Java 8. James is a regular public speaker and helps organize events at the London Java Community.

Chris Newland has been working with Java since 1999 when he started his career using the language to implement intelligent agent systems. He is now a senior developer and team lead at ADVFN using Java to process stock market data in real time. Chris is the inventor of JITWatch (https://github.com/AdoptOpenJDK/jitwatch), an open-source visualiser for understanding the Just-In-Time (JIT) compilation decisions made by the HotSpot JVM. He is a keen JavaFX supporter and runs a community OpenJFX build server at https://chriswhocodes.com. Follow him on Twitter@chriswhocodes

Bibliographic information