Java Performance (Java Series) and over 2 million other books are available for Amazon Kindle . Learn more

Sign in to turn on 1-Click ordering.
Trade in Yours
For a £6.95 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Sorry, this item is not available in
Image not available for
Image not available

Start reading Java Performance (Java Series) on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Java Performance (Java (Addison-Wesley)) [Paperback]

Charlie Hunt , Binu John
4.3 out of 5 stars  See all reviews (3 customer reviews)
RRP: £38.99
Price: £31.20 & FREE Delivery in the UK. Details
You Save: £7.79 (20%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Only 3 left in stock (more on the way).
Dispatched from and sold by Amazon. Gift-wrap available.
Want it tomorrow, 2 Nov.? Choose Express delivery at checkout. Details


Amazon Price New from Used from
Kindle Edition £22.31  
Paperback £31.20  
Trade In this Item for up to £6.95
Trade in Java Performance (Java (Addison-Wesley)) for an Amazon Gift Card of up to £6.95, which you can then spend on millions of items across the site. Trade-in values may vary (terms apply). Learn more

Book Description

4 Oct 2011 0137142528 978-0137142521 1
“The definitive master class in performance tuning Java applications…if you love all the gory details, this is the book for you.”

–James Gosling, creator of the Java Programming Language


Improvements in the Java platform and new multicore/multiprocessor hardware have made it possible to dramatically improve the performance and scalability of Java software.

Java™ Performance covers the latest Oracle and third-party tools for monitoring and measuring performance on a wide variety of hardware architectures and operating systems. The authors present dozens of tips and tricks you’ll find nowhere else.

You’ll learn how to construct experiments that identify opportunities for optimization, interpret the results, and take effective action. You’ll also find powerful insights into microbenchmarking–including how to avoid common mistakes that can mislead you into writing poorly performing software. Then, building on this foundation, you’ll walk through optimizing the Java HotSpot VM, standard and multitiered applications; Web applications, and more. Coverage includes

  • Taking a proactive approach to meeting application performance and scalability goals
  • Monitoring Java performance at the OS level in Windows, Linux, and Oracle Solaris environments
  • Using modern Java Virtual Machine (JVM) and OS observability tools to profile running systems, with almost no performance penalty
  • Gaining “under the hood” knowledge of the Java HotSpot VM that can help you address most Java performance issues
  • 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
  • Determining when Java applications require rework to meet performance goals
  • Systematically profiling and tuning performance in both Java SE and Java EE applications
  • Optimizing the performance of the Java HotSpot VM

Using this book, you can 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.

Frequently Bought Together

Java Performance (Java (Addison-Wesley)) + Java Concurrency in Practice + Effective Java: Second Edition
Price For All Three: £90.38

Buy the selected items together

Product details

  • Paperback: 720 pages
  • Publisher: Addison Wesley; 1 edition (4 Oct 2011)
  • Language: English
  • ISBN-10: 0137142528
  • ISBN-13: 978-0137142521
  • Product Dimensions: 17.9 x 2.3 x 23.1 cm
  • Average Customer Review: 4.3 out of 5 stars  See all reviews (3 customer reviews)
  • Amazon Bestsellers Rank: 249,992 in Books (See Top 100 in Books)
  • See Complete Table of Contents

More About the Author

Discover books, learn about writers, and more.

Product Description

About the Author

Charlie Hunt is the JVM performance lead engineer at Oracle. He is responsible for improving the performance of the HotSpot JVM and Java SE class libraries. He has also been involved in improving the performance of the Oracle GlassFish and Oracle WebLogic Server. A regular JavaOne speaker on Java performance, he also coauthored NetBeans™ IDE Field Guide (Prentice Hall, 2005).

Binu John is a senior performance engineer at Ning, Inc., where he focuses on improving the performance and scalability of the Ning platform to support millions of page views per month. Before that, he spent more than a decade working on Java-related performance issues at Sun Microsystems, where he served on Sun’s Enterprise Java Performance team. John has contributed to developing industry standard benchmarks such as SPECjms2007 and SPECJAppServer2010; published several performance whitepapers; and contributed to’s XMLTest and WSTest benchmark projects.

Inside This Book (Learn More)
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index
Search inside this book:

What Other Items Do Customers Buy After Viewing This Item?

Customer Reviews

3 star
2 star
1 star
4.3 out of 5 stars
4.3 out of 5 stars
Most Helpful Customer Reviews
15 of 15 people found the following review helpful
4.0 out of 5 stars Superb reference manual for JVM tuning 25 Oct 2011
I found out about this books existence in the last week, and within 24 hours had ordered a copy. It didn't disappoint.
As an enterprise application admin, I look to squeeze every last drop of performance from our JVMs, and this book is a superb reference to all aspects of JVM performance.
My one (minor) gripe is the focus on SPARC hardware and the Glassfish app server in certain sections.
Given one of the authors works on Glassfish, and is an employee of Oracle, I suppose this is fair. However, I would have loved some coverage of alternative application servers, and correspondingly increased coverage on the modern developments in processor architectures outside of SPARC.
One other gripe I have is that JDK 7 is hardly referenced at all, despite its architectural and performance underpinnings being publicly documented during the books gestation over the last 3 years.
For the most part, many of the documented performance improvements for 7 have been back-ported to various 6 updates, but I believe JDK 7 deserves a distinct section at some point in the book.

If you're a Glassfish and/or SPARC user, this is most certainly a 5-star book, but for X86 and/or Tomcat users, this will form a part of a wider library.
For that reason, I'm giving it 4 stars.

All in all, an extraordinarily useful addition to my performance reference library alongside High Performance MySQL: Optimization, Backups, Replication, and More
Comment | 
Was this review helpful to you?
1 of 1 people found the following review helpful
4.0 out of 5 stars Essential for any serious Java developer 6 Dec 2012
Format:Paperback|Verified Purchase
This is a great book for experienced Java developers to improve their craft. The chapters are well organised and the topics are covered in depth that I would find hard to match anywhere else. The author wisely acknowledges differences in diagnosing performance issues across platforms and includes information for Linux, Solaris and Windows. Often in other books of this nature you will see the focus on a single OS only.

I have been developing Java for years now, doing the majority of my work in high performance spaces. This book has not only rounded out my knowledge and provided context to the effects of changes I have made to software, but also provided me with a wealth of new information.

This is not particularly a book for beginners. I would recommend that beginners get a different book as well as this one, just so once they become more familiar with Java they remember to read this.
Comment | 
Was this review helpful to you?
5.0 out of 5 stars Five Stars 11 Aug 2014
Format:Kindle Edition|Verified Purchase
Comment | 
Was this review helpful to you?
Most Helpful Customer Reviews on (beta) 4.5 out of 5 stars  34 reviews
24 of 26 people found the following review helpful
5.0 out of 5 stars Essential information hard-to-find anywhere else 11 Jan 2012
By The Last Person You'd Expect - Published on
This is an outstanding book and one of the few that, even after working through, I'll be keeping within reach at my desk. After almost a decade working on the JVM, I've only recently begun work on some software that really strains our systems, processing a million and some records a day with several instances each on multiple threads, and so until recently, performance has always been a secondary concern. While the app's code is certainly not perfect, I started wondering whether any of the mysterious extended options available to the JVM might take some of the weight off the system without having to wait until the next formal development/release cycle. This is what prompted me to look at this book, but as I'll describe, I found much more.

I was very impressed with the amount of information provided: unlike most computer-related books, this is dense with text, rather than long code samples, screenshots and diagrams. Why is this a good thing? This is not just a book on how to use the JVM and its related performance tools, but also a book on the JVM's internal architecture (including its memory model and garbage collectors) and on the art of benchmarking and performance testing. Though the prose can be dry, the authors are very patient about describing these topics to readers in a clear way, and sometimes with great detail. OTOH, as this is written with experienced developers in mind, beware that it can at times be challenging (even for someone who's done their fair share of coding!).

There are a few major areas covered:

1) Tuning the JVM. This usually involves applying command-line options to the JVM executable (I can almost guarantee you'll discover you have more control over the JVM than you thought you did!) The authors cover the JVM internal architecture, garbage collection and memory model to provide context on what these options actually do, as well as extensive descriptions of how and when to use the options.

2) Performance monitoring tools, profiling, heap-dump analysis. Much of the book is devoted to describing not only the tools available in the JDK, but those provided by popular OSes and 3rd parties.

3) Writing benchmarks. There is more an art to this than you might expect, especially when writing benchmarks for the JVM. Tips on benchmarking different types of applications (i.e. webapps, web services) are separated into different chapters.

The biggest downside, as another reviewer pointed out, is it's 'oracle-centricity'. For example, you'll find much said on Netbeans and Glassfish, while Eclipse and Tomcat don't get a single mention. These are tools that we all know about, but what great, more obscure, tools am I missing out on due to this obvious bias? This seriously damages the credibility of the authors as far as tool-selection is concerned, but in the end, it's the JVM and the performance testing concepts that are most important. Once I learn the vocabulary, I'll be able to figure out through Google which tools are best.
16 of 19 people found the following review helpful
4.0 out of 5 stars Good, but rather Oracle Centric 23 Nov 2011
By Shakespeare - Published on
The last book to cover this topic n any detail was Steve Wilson et al's "Java Platform Performance", which was published in 2000. HotSpot has moved on a fair bit since then, so its good to see a new book covering the subject.

The sections on JVM tuning and profiling are particularly strong. There's also a decent section on HotSpot Garbage Collectors, though I would have liked to see some more discussion on alternative GC algorithms such as IBM's Balanced Garbage Collector and Azul's C4.

It should be noted that there is a definite bias towards Oracle's tools and hardware. For example the section on "Choosing the Right CPU architecture" concentrated mainly on Oracle's SPARC chips. Also the two profilers featured are the Oracle Solaris Studio Performance Analysiser Tool, and the NetBeans profiler. Likewise in the Java EE Section all the examples are based on Glassfish.

The book doesn't provide a recipe for solving every problem, but does provide enough information for non-performance specialist developers and others involved in application performance tuning work, to solve the majority of commonly encountered performance problems.
10 of 11 people found the following review helpful
3.0 out of 5 stars not as great as some claimed 9 April 2013
By joe - Published on
I read somebody recommend this book and compare with Effective Java and Java Concurrency in Practice, so I started to read it. I am into chapter 3 now and found it is definitely NOT in the same tier with other two. The writing quality (especially in terms of being coherent to a theme, and explaining well what needs to be explained) is far inferior. It is still a book worth reading, but not as valuable as a classic.
7 of 8 people found the following review helpful
5.0 out of 5 stars Must read for any Java programmer 14 Mar 2012
By Amazon Customer - Published on
The authors have spent an enormous amount of time and effort putting together a comprehensive and very thorough book on Java internals. I have read a similar book on C++ called the C++ Object Model, and have been waiting for a Java equivalent for years.

The book starts with the "basics" - which is considered advanced by many other texts, and covers system monitoring. Think of an entire book on system monitoring summarized in one chapter. You will know everything you need to know as a programmer about how to monitor and detect issues with your environment. The fun starts in chapter 3 with an overview of JVM and the VM's internals - including basics of memory management, process management, thread management, etc. Different types of Garbage collectors are then covered in detail; how they work, how objects are cleaned up, how objects are promoted, etc. By the end of this chapter, you will know GC. There is more, much more, but chapter 3 is a definite favorite.

There are many causes of application's performance issues, the authors spend chapter 6 on how to profile an application and how to actually detect whether GC is the issue. It could be IO, or your choice of a bad data structure, etc. The point is, there are options available to you as a programmer and you will know how to at least check if not fix the major and most common performance issues.

After the application, it is time for tuning the JVM. The Java VM has added many bells and whistles over the years to help you tune how it behaves under certain scenarios. These options are explained, and examples are shown to aid you with the learning process.

With the growth and penetration of multi-threaded applications mostly due to multicore systems, your know-how will be helpful in benchmarking and detecting performance issues. Examples are depicted throughout the chapter to show the output from tuning and changing options.

The following couple of chapters are dedicated to java web applications including SOA, EJB, and general Web services. A section called "Factors that Affect Web Service Performance" goes into great detail, and covers the topic extremely well.

The summary of all the JVM commands end the book - each with fairly detailed explanation.

You cannot call yourself a Java "expert" unless you have read this book cover-to-cover. In fact, if the terms Eden Space, survivor space, minor GC, Full GC, Concurrent GC and many more until now obscure terms make you scratch your head, you need to read this book.
14 of 19 people found the following review helpful
1.0 out of 5 stars lacks supportive data to corroborate the theories 20 Jan 2013
By j.p.s. - Published on
This book is essentially a compilation of all internal product documentations and freely available online tutorials without good examples to corroborate the theories presented throughout the book. It discusses JVM tuning as an infinite set of variables, which look more like infinite variety and challenges to the reader than anything concrete and useful. It is an "okay" book if you just want to "read" about Java performance, but if you have a real project and a real Java performance issue to deal with, you'll have to try out all the permutations and find out yourself which ones are helpful and which ones are not - only if you have infinite amount of time to do so. In reality, sometimes we just want to get a Java performance issue resolved as quickly as possible so that we can move on to the next task on our busy agenda. This book has clearly failed to meet the basic criterion of being data-driven to be a practical, useful guide to helping readers resolve their Java performance issues they encounter with their projects. I hope the lead author can help improve it if he gets a chance to update this book in future.
Were these reviews helpful?   Let us know
Search Customer Reviews
Only search this product's reviews

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
First post:
Prompts for sign-in

Search Customer Discussions
Search all Amazon discussions

Look for similar items by category