Java Performance
Addison Wesley (Verlag)
978-0-13-714252-1 (ISBN)
- Titel ist leider vergriffen;
keine Neuauflage - Artikel merken
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? |
aus dem Bereich