Java Performance (Java Series) and over 2 million other books are available for Amazon Kindle . Learn more
FREE Delivery in the UK.
Only 2 left in stock (more on the way).
Dispatched from and sold by Amazon.
Gift-wrap available.
Java Performance (Java (A... has been added to your Basket
+ £2.80 UK delivery
Used: Good | Details
Sold by anybookltd
Condition: Used: Good
Comment: This is an ex-library book and may have the usual library/used-book markings inside.This book has soft covers. In good all round condition.
Trade in your item
Get a £6.25
Gift Card.
Have one to sell?
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See this image

Java Performance (Java (Addison-Wesley)) Paperback – 4 Oct 2011

See all 2 formats and editions Hide other formats and editions
Amazon Price New from Used from
Kindle Edition
"Please retry"
"Please retry"
£20.54 £15.99

Frequently Bought Together

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

Buy the selected items together

Trade In this Item for up to £6.25
Trade in Java Performance (Java (Addison-Wesley)) for an Amazon Gift Card of up to £6.25, which you can then spend on millions of items across the site. Trade-in values may vary (terms apply). Learn more

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.8 x 2.2 x 23.2 cm
  • Average Customer Review: 4.3 out of 5 stars  See all reviews (3 customer reviews)
  • Amazon Bestsellers Rank: 376,835 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

4.3 out of 5 stars
5 star
4 star
3 star
2 star
1 star
See all 3 customer reviews
Share your thoughts with other customers

Most Helpful Customer Reviews

15 of 15 people found the following review helpful By David Corley on 25 Oct. 2011
Format: Paperback
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? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
1 of 1 people found the following review helpful By David Smith on 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? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
By MR JAMES G LOMAS on 11 Aug. 2014
Format: Kindle Edition Verified Purchase
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

Most Helpful Customer Reviews on (beta) 35 reviews
26 of 28 people found the following review helpful
Essential information hard-to-find anywhere else 11 Jan. 2012
By The Last Person You'd Expect - Published on
Format: Paperback
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 18 people found the following review helpful
Good, but rather Oracle Centric 23 Nov. 2011
By Shakespeare - Published on
Format: Paperback
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.
7 of 8 people found the following review helpful
Must read for any Java programmer 14 Mar. 2012
By Amazon Customer - Published on
Format: Paperback
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.
10 of 12 people found the following review helpful
not as great as some claimed 9 April 2013
By joe - Published on
Format: Paperback
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.
14 of 19 people found the following review helpful
lacks supportive data to corroborate the theories 20 Jan. 2013
By j.p.s. - Published on
Format: Paperback
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