Home > Store

larger cover

Add To My Wish List

Java Performance

Register your product to gain access to bonus material or receive a coupon.

  • Description
  • Extras
  • Reviews
  • Sample Content

Product Author Bios

Charlie Hunt (Libertyville, IL) is a Java performance engineer working on both Java SE and Java EE optimization issues. Dave Dagastine (Cobleskill, NY), Java SE Performance Engineering tech lead is actively involved in developing Java benchmarks at SPEC. Paul Hohensee (Nashua, NH) is Senior Staff Engineer for Sun Microsystems in Burlington, MA.

“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.

Customer Reviews

15 of 17 people found the following review helpful
5.0 out of 5 stars Essential information hard-to-find anywhere else, January 11, 2012
By 
The Last Person You'd Expect (Seattle, WA United States) - See all my reviews
(VINE VOICE)   
This review is from: Java Performance (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... Read more
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


5 of 5 people found the following review helpful
1.0 out of 5 stars lacks supportive data to corroborate the theories, January 19, 2013
This review is from: Java Performance (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... Read more
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


12 of 15 people found the following review helpful
4.0 out of 5 stars Good, but rather Oracle Centric, November 23, 2011
This review is from: Java Performance (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... Read more
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


Share your thoughts with other customers:
 See all 23 customer reviews...

Online Sample Chapter

Java Application Profiling Tips and Tricks

Table of Contents

Foreword by James Gosling         xi

Foreword by Steve Wilson         xiii

Preface         xv

Acknowledgments         xix

About the Authors         xxi

 

Chapter 1:  Strategies, Approaches, and Methodologies   1

Forces at Play   2

Two Approaches, Top Down and Bottom Up   5

Choosing the Right Platform and Evaluating a System   8

Bibliography   11

 

Chapter 2: Operating System Performance Monitoring         13

Definitions   14

CPU Utilization   14

CPU Scheduler Run Queue   28

Memory Utilization   32

Network I/O Utilization   41

Disk I/O Utilization   46

Additional Command Line Tools   49

Monitoring CPU Utilization on SPARC T-Series Systems   50

Bibliography   53

 

Chapter 3: JVM Overview   55

HotSpot VM High Level Architecture   56

HotSpot VM Runtime   58

HotSpot VM Garbage Collectors   80

HotSpot VM JIT Compilers   92

HotSpot VM Adaptive Tuning   100

References   106

 

Chapter 4: JVM Performance Monitoring         107

Definitions   108

Garbage Collection   108

JIT Compiler   146

Class Loading   147

Java Application Monitoring   150

Bibliography   153

 

Chapter 5: Java Application Profiling         155

Terminology   157

Oracle Solaris Studio Performance Analyzer   159

NetBeans Profiler   189

References   209

 

Chapter 6: Java Application Profiling Tips and Tricks         211

Performance Opportunities   211

System or Kernel CPU Usage   212

Lock Contention   222

Volatile Usage   234

Data Structure Resizing   235

Increasing Parallelism   243

High CPU Utilization   246

Other Useful Analyzer Tips   247

Bibliography   249

 

Chapter 7: Tuning the JVM, Step by Step          251

Methodology   252

Application Systemic Requirements   255

Rank Systemic Requirements   257

Choose JVM Deployment Model   58

Choose JVM Runtime   259

GC Tuning Fundamentals   262

Determine Memory Footprint   268

Tune Latency/Responsiveness   278

Tune Application Throughput   307

Edge Cases   316

Additional Performance Command Line Options   316

Bibliography   321

 

Chapter 8: Benchmarking Java Applications         323

Challenges with Benchmarks   324

Design of Experiments   347

Use of Statistical Methods   348

Reference   355

Bibliography   355

 

Chapter 9: Benchmarking Multitiered Applications         357

Benchmarking Challenges   357

Enterprise Benchmark Considerations   360

Application Server Monitoring   382

Profiling Enterprise Applications   399

Bibliography   401

 

Chapter 10: Web Application Performance         403

Benchmarking Web Applications   404

Web Container Components   405

Web Container Monitoring and Performance Tunings   408

Best Practices   427

Bibliography   450

 

Chapter 11: Web Services Performance         453

XML Performance   454

Validation   460

Resolving External Entities   462

Partial Processing of XML Documents   465

Selecting the Right API   468

JAX-WS Reference Implementation Stack   471

Web Services Benchmarking   473

Factors That Affect Web Service Performance   477

Performance Best Practices   486

Bibliography   503

 

Chapter 12: Java Persistence and Enterprise Java Beans Performance         505

EJB Programming Model   506

The Java Persistence API and Its Reference Implementation   507

Monitoring and Tuning the EJB Container   511

Transaction Isolation Level   521

Best Practices in Enterprise Java Beans   522

Best Practices in Java Persistence   540

Bibliography   551

 

Appendix A: HotSpot VM Command Line Options of Interest         553

 

Appendix B: Profiling Tips and Tricks Example Source Code         573

Lock Contention First Implementation   573

Lock Contention Second Implementation   583

Lock Contention Third Implementation   593

Lock Contention Fourth Implementation   603

Lock Contention Fifth Implementation   613

First Resizing Variant   624

Second Resizing Variant   636

Increasing Parallelism Single-Threaded Implementation   647

Increasing Parallelism Multithreaded Implementation   657

 

Index         669

Sample Pages

Download the sample pages (includes Chapter 6 and Index)

 
Best Value

Book + eBook Bundle  $107.98  $64.79

Book Price $47.99
eBook Price $16.80
eBook formats included

Buy

This book includes free shipping!

Buy

Book  $59.99  $47.99

Usually ships in 24 hours.

This book includes free shipping!

Buy

eBook (Watermarked)  $47.99  $38.39

Includes EPUB, MOBI, and PDF
About eBook Formats

This eBook includes the following formats, accessible from your Account page after purchase:

ePubEPUBThe open industry format known for its reflowable content and usability on supported mobile devices.

MOBIMOBIThe eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

Adobe ReaderPDFThe popular standard, used most often with the free Adobe® Reader® software.

This eBook requires no passwords or activation to read. We customize your eBook by discretely watermarking it with your name, making it uniquely yours.

Purchase Reward: One Month Free Subscription
By completing any purchase on InformIT, you become eligible for an unlimited access one-month subscription to Safari Books Online.

Get access to thousands of books and training videos about technology, professional development and digital media from more than 40 leading publishers, including Addison-Wesley, Prentice Hall, Cisco Press, IBM Press, O'Reilly Media, Wrox, Apress, and many more. If you continue your subscription after your 30-day trial, you can receive 30% off a monthly subscription to the Safari Library for up to 12 months. That's a total savings of $199.