Why you need to buy this book?
1) There is no other strong book on Java Performance in the market.
2) Written by experts who deal with improving the performance of the Hotspot Java VM, on a daily basis.
3) Extensive description on the internals of the Hotspot JVM. Previously the JVM was a blackbox that would run your Java applications. This book will lay out the JVM as an open book. So you have an opportunity to master the JVM.
4) It is from Addison Wesley who publish GREAT books.
My Favorite Chapters:
Chapter 3: JVM Overview.
Chapter 4: JVM Performance Monitoring
Chapter 5: Tuning the JVM, Step by Step
I have had this book for a month now. But I have not read it completely. The reason is that this is an advanced topic. The book goes into deep lengths to describe the Hotspot JVM concepts that you have to tread very slowly. I mean very very slowly.
My approach has been to go to the chapters which I am interested in. Then go back to the chapters that give background information. I strongly recommend that you keep this book close to your work area, because you will require it often, to not only brush up on your reading but also to use it as a reference, when you tune your Java applications. BUT THIS BOOK IS A DEFINITE MUST FOR YOUR COLLECTION.
Let us go chapter by chapter on the ones I have read.
Chapter 2: Operating System Performance Monitoring
I particularly liked the treatment on “monitoring CPU utilization” on various operating systems (windows, linux etc).
There is a lot of information on Memory Usage Monitoring, Disk IO Monitoring that a performance engineer will definitely need.
Chapter 3: JVM Overview
This is a brilliantly written chapter.
Right at the start, the authors state that the users of Java technology see the JVM as a blackbox. My opinion : Well, this is the irony or fact or destiny or whatever. Java Performance has been voodoo over the years. Extensive documentation (that is not confusing) along with reasonable JVM defaults, is the way to go.
The chapter does very well to talk about the ordinary object pointers (OOPS) and the new JDK6+ feature called “compressed oops” to get 32bit like performance on 64bit JVMs. The gist is that compressed oops feature will improve the cpu cache utilization.
The chapter goes into great length to talk about class loading, internal VM architecture etc. A very very good chapter. Read the section on Garbage collection. There is great discussion on the generations as well as on collectors etc.
Chapter 7: Tuning the JVM step by step
This chapter is just a beauty. There is around 70 pages devoted to this chapter. So much content just for JVM tuning. Probably, this topic requires a 1000 pages. But the authors have done the JVM tuning as part of their jobs. So they have condensed the topic in to 70 pages based on their years of experience.
I will update this review as I finish reading the other chapters. I can grumble that the book is very intense but it is a happy grumbling.
I have attended talks by Charlie Hunt over the years. Charlie is extremely knowledgeable and is very passionate about the JVM. No wonder, he has turned up a gem of a book.
Chicago Java Users Group
Java Performance on Multi-core Platforms By Hunt, Charles J./ Hohensee, Paul/ John, Binu/ Dagastine, David (Google Affiliate Ad)