James White (LinkedIn) – James has over 10 years of experience in developing and maintaining Java Architectures. As part of prior roles James has experience managing both on and off shore teams. He’s also recently been certified as an Accenture Certified Technical Architect and currently leads Performance Engineering teams within Accenture. The views in this article are purely those of the authors and not those of his employer.
Overview – The Java Performance Book is very near and dear to me. It was just over three years ago, when I was looking for a good book on Java Diagnostics and how to go about tuning the JVM that I happened to stumble across “Java Performance” by Charlie Hunt and Binu John. This book provided me good insight into Java Performance and how to go about optimizing the Java Virtual Machine for high performance. I sincerely felt that this was the first book on Java diagnostics that truly spoke to me as a developer.
Much of what I read up to that point seemed abstract and didn’t seem to provide immediate help on the issue at hand. “Java Performance” by Charlie Hunt and Binu John helped me understand the issues i was facing and helped me identify root causes of the issues only after going through the first few chapters. I primarily focused on the Java SE and JVM portions of the book, because that was pretty much what I needed for the tasks at hand, at that point in time. However, I found myself compelled to go back and read this book cover to cover and found the coverage on other aspects of Java such as Java EE, EJB 2.1 & 3.0, Web Services, etc. were also highly useful and informative.
Designed For The Java Performance Engineer – I would highly recommend, “Java Performance” by Charlie Hunt and Binu John to every Java expert out there who has a responsibility to diagnose, trouble shoot and tune Java Applications along with the underlying software and hardware that runs them. This book does an excellent job of providing deep information on how to benchmark and profile applications, along with how to “warm-up” the JVM for optimal performance. While this is good, it goes a step further by providing the reader good, solid Java code examples that allow you to experiment and gain deeper knowledge of finding performance issues.
The Table Of Content for “Java Performance” includes –
- Strategies, Approaches, and Methodologies
- Operating System Performance Monitoring
- JVM Overview
- JVM Performance Monitoring
- Java Application Profiling
- Java Application Profiling Tips and Tricks
- Tuning the JVM, Step by Step
- Benchmarking Java Applications
- Benchmarking Multitier Applications
- Web Application Performance
- Web Services Performance
- Java Persistence and EJB
- Appendix A – JVM Command Line Options of Interest
- Appendix B – Source Code for Profiling Tips and Tricks
Caveats – “Java Performance” by Charlie Hunt and Binu John provides a wealth of information on topics related to Java Diagnostics, Tuning and Optimization. The book will help anyone who is tasked with troubleshooting, diagnosing and optimizing the system for high performance. However there were a few things in “Java Performance” that might not appeal to everyone:
- Focuses on Oracle/Sun Products – The testing tool used in the book is Solaris Studios Performance Analyzer. Performance Analyzer only works in UNIX environments and is only supported in a small subset of UNIX operating systems. However, VisualVM and JConsole are also discussed which do work in Windows environments. For the Java EE and web server based examples Glassfish and its tool set are the only ones discussed.
- Very UNIX centered – There are a few pages dedicated to Windows performance monitoring, but 95 percent of this book is dedicated to Unix. With that said the code examples can be applied on any operating system that runs Java.
- Slightly dated material – This book is awesome if you are working with Java SE 6 or Java EE 5/6, but becomes slightly outdated for Java 7 and 8 based programming. REST based web services are not discussed in the Web Services Chapter.
- If you are into specific formulas you probably won’t find them – While there are chapters that get into the statistical analysis and formulas. You won’t find long detailed explanations of Little’s Law or Queuing Theory. This book focuses on what you need to test and diagnosis Java based issues.
Overall, if you want to learn the tips and tricks that come with JVM tuning and writing better performing code, for Java SE, Java EE, Web Services, and EJB programming, “Java Performance” by Charlie Hunt and Binu John is a must read. Most of what you will pick up from this book will carry forward to Java 7 & 8, and the code examples are worth the price of the book alone. This book should be a part of any Java Developer or Java based Performance Engineer’s library, especially if the applications you work with are written in Java 6.
James White (LinkedIn) – James has over 10 years of experience in developing and maintaining Java Architectures. As part of prior roles James has experience managing both on and off shore teams. He’s also recently been certified as an Accenture Certified Technical Architect. Prior to Accenture, James worked as a senior developer for Delta Dental where he was the primary developer for the company’s most critical application which processed billions of dollars worth of dental claims annually. James has also worked as part of the performance testing team and has experience in developing test scripts for load and stress testing.
The views in this article are purely those of the authors and not the views of his employer.