Java Performance - Charlie Hunt, Binu John

Java Performance

, (Autoren)

Buch | Softcover
720 Seiten
2011
Addison Wesley (Verlag)
978-0-13-714252-1 (ISBN)
73,75 inkl. MwSt
  • Titel ist leider vergriffen;
    keine Neuauflage
  • Artikel merken
“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.

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 java.net’s XMLTest and WSTest benchmark projects.

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

Erscheint lt. Verlag 14.10.2011
Reihe/Serie Java Series
Verlagsort Boston
Sprache englisch
Maße 179 x 232 mm
Gewicht 910 g
Themenwelt Informatik Programmiersprachen / -werkzeuge Java
Mathematik / Informatik Informatik Web / Internet
ISBN-10 0-13-714252-8 / 0137142528
ISBN-13 978-0-13-714252-1 / 9780137142521
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich