Java Performance Book Review
|Being new to Java I am interested in finding out the low level nettigritty details of the Java HotSpot VM. This book was definitely the right choice for that.|
I must admit being a veteran .NET developer helped when digging into the different concepts and there are a ton of them. One of the things I really liked about the book is that although it leaned towards Oracle, it also included Windows and Solaris.
There are 12 chapters. Chapter 1: Strategies, Approaches, and Methodologies, Chapter 2: Operating System Performance Monitoring, Chapter 3: JVM Overview, Chapter 4: JVM Performance Monitoring, Chapter 5: Java Application Profiling, Chapter 6: Java Application Profiling Tips and Tricks, Chapter 7: Tuning the JVM, Step by Step, Chapter 8: Benchmarking Java Applications, Chapter 9: Benchmarking Multitiered Applications, Chapter 10: Web Application Performance, Chapter 11: Web Services Performance, and Chapter 12: Java Persistence and Enterprise Java Beans Performance.
The book ends with two great appendices. HotSpot VM Command Line Options of Interest and Profiling Tips and Tricks Example Source Code.
The authors do a great job of introducing a lot of different tools as well as the useful commands lines needed for performance monitoring, profiling, and tuning. Although there are a few that only work on Solaris and Linux the author provides alternatives for Windows and Mac users where possible. They do a great job introducing VisualVM and NetBeans Profiler. The coverage of Adaptive Tuning and Garbage Collection in these sections was really great.
The chapters on Benchmarking are great. This is often an overlooked process. It is really important to have proper benchmarks in place so when performance issues creep up you have a baseline to narrow the problem down with. I have seen plenty of enterprises without them and when performance issues come up they are looking for a needle in a haystack… in the dark.
The web application and web service chapters are also packed with great advice. Although Glassfish is used a lot of the advice applies to most application servers.
I really like Appendix A: HotSpot VM Command Line Options of Interest. It contains a really nice list of the HotSpot command lines options that are related to performance.
My one gripe is that Appendix B contains some really nice code examples, but it does not appear there are any plans to make the code available for download.
I found the authors writing style made the book a really easy read especially for such low level complex topics.
All in all if you have anything to do with Java development this book has got to be on your shelf.