[ Team LiB ] Previous Section Next Section

   
•  Table of Contents
•  Index
•  Reviews
•  Examples
•  Reader Reviews
•  Errata
Java™ Performance Tuning, 2nd Edition
By Jack Shirazi
   
Publisher : O'Reilly
Pub Date : January 2003
ISBN : 0-596-00377-3
Pages : 588


    Copyright
    Preface
      Contents of This Book
      New in the Second Edition
      Virtual Machine (VM) Versions
      Conventions Used in This Book
      Comments and Questions
      Acknowledgments
   
    Chapter 1.  Introduction
      Section 1.1.  Why Is It Slow?
      Section 1.2.  The Tuning Game
      Section 1.3.  System Limitations and What to Tune
      Section 1.4.  A Tuning Strategy
      Section 1.5.  Perceived Performance
      Section 1.6.  Starting to Tune
      Section 1.7.  What to Measure
      Section 1.8.  Don't Tune What You Don't Need to Tune
      Section 1.9.  Performance Checklist
   
    Chapter 2.  Profiling Tools
      Section 2.1.  Measurements and Timings
      Section 2.2.  Garbage Collection
      Section 2.3.  Method Calls
      Section 2.4.  Object-Creation Profiling
      Section 2.5.  Monitoring Gross Memory Usage
      Section 2.6.  Client/Server Communications
      Section 2.7.  Performance Checklist
   
    Chapter 3.  Underlying JDK Improvements
      Section 3.1.  Garbage Collection
      Section 3.2.  Tuning the Heap
      Section 3.3.  Gross Tuning
      Section 3.4.  Fine-Tuning the Heap
      Section 3.5.  Sharing Memory
      Section 3.6.  Replacing JDK Classes
      Section 3.7.  Faster VMs
      Section 3.8.  Better Optimizing Compilers
      Section 3.9.  Sun's Compiler and Runtime Optimizations
      Section 3.10.  Compile to Native Machine Code
      Section 3.11.  Native Method Calls
      Section 3.12.  Uncompressed ZIP/JAR Files
      Section 3.13.  Performance Checklist
   
    Chapter 4.  Object Creation
      Section 4.1.  Object-Creation Statistics
      Section 4.2.  Object Reuse
      Section 4.3.  Reference Objects
      Section 4.4.  Avoiding Garbage Collection
      Section 4.5.  Initialization
      Section 4.6.  Early and Late Initialization
      Section 4.7.  Performance Checklist
   
    Chapter 5.  Strings
      Section 5.1.  The Performance Effects of Strings
      Section 5.2.  Compile-Time Versus Runtime Resolution of Strings
      Section 5.3.  Conversions to Strings
      Section 5.4.  Strings Versus char Arrays
      Section 5.5.  String Comparisons and Searches
      Section 5.6.  Sorting Internationalized Strings
      Section 5.7.  Performance Checklist
   
    Chapter 6.  Exceptions, Assertions, Casts, and Variables
      Section 6.1.  Exceptions
      Section 6.2.  Assertions
      Section 6.3.  Casts
      Section 6.4.  Variables
      Section 6.5.  Method Parameters
      Section 6.6.  Performance Checklist
   
    Chapter 7.  Loops, Switches, and Recursion
      Section 7.1.  Loops
      Section 7.2.  Tuning a Loop
      Section 7.3.  Exception-Terminated Loops
      Section 7.4.  Switches
      Section 7.5.  Recursion
      Section 7.6.  Recursion and Stacks
      Section 7.7.  Performance Checklist
   
    Chapter 8.  I/O, Logging, and Console Output
      Section 8.1.  Replacing System.out
      Section 8.2.  Logging
      Section 8.3.  From Raw I/O to Smokin' I/O
      Section 8.4.  Serialization
      Section 8.5.  Clustering Objects and Counting I/O Operations
      Section 8.6.  Compression
      Section 8.7.  NIO
      Section 8.8.  Performance Checklist
   
    Chapter 9.  Sorting
      Section 9.1.  Avoiding Unnecessary Sorting Overhead
      Section 9.2.  An Efficient Sorting Framework
      Section 9.3.  Better Than O(nlogn) Sorting
      Section 9.4.  Performance Checklist
   
    Chapter 10.  Threading
      Section 10.1.  User-Interface Thread and Other Threads
      Section 10.2.  Race Conditions
      Section 10.3.  Deadlocks
      Section 10.4.  Synchronization Overhead
      Section 10.5.  Timing Multithreaded Tests
      Section 10.6.  Atomic Access and Assignment
      Section 10.7.  Thread Pools
      Section 10.8.  Load Balancing
      Section 10.9.  Threaded Problem-Solving Strategies
      Section 10.10.  Performance Checklist
   
    Chapter 11.  Appropriate Data Structures and Algorithms
      Section 11.1.  Collections
      Section 11.2.  Java 2 Collections
      Section 11.3.  Hashtables and HashMaps
      Section 11.4.  Optimizing Queries
      Section 11.5.  Comparing LinkedLists and ArrayLists
      Section 11.6.  The RandomAccess Interface
      Section 11.7.  Cached Access
      Section 11.8.  Caching Examples
      Section 11.9.  Finding the Index for Partially Matched Strings
      Section 11.10.  Search Trees
      Section 11.11.  Performance Checklist
   
    Chapter 12.  Distributed Computing
      Section 12.1.  Tools
      Section 12.2.  Message Reduction
      Section 12.3.  Comparing Communications Layers
      Section 12.4.  Caching
      Section 12.5.  Batching I
      Section 12.6.  Application Partitioning
      Section 12.7.  Batching II
      Section 12.8.  Low-Level Communication Optimizations
      Section 12.9.  Distributed Garbage Collection
      Section 12.10.  Databases
      Section 12.11.  Web Services
      Section 12.12.  Performance Checklist
   
    Chapter 13.  When to Optimize
      Section 13.1.  When Not to Optimize
      Section 13.2.  Tuning Class Libraries and Beans
      Section 13.3.  Analysis
      Section 13.4.  Design and Architecture
      Section 13.5.  Tuning After Deployment
      Section 13.6.  More Factors That Affect Performance
      Section 13.7.  Performance Planning
      Section 13.8.  Performance Checklist
   
    Chapter 14.  Underlying Operating System and Network Improvements
      Section 14.1.  Hard Disks
      Section 14.2.  CPU
      Section 14.3.  RAM
      Section 14.4.  Network I/O
      Section 14.5.  Performance Checklist
   
    Chapter 15.  J2EE Performance Tuning
      Section 15.1.  Performance Planning
      Section 15.2.  J2EE Monitoring and Profiling Tools
      Section 15.3.  Measurements: What, Where, and How
      Section 15.4.  Load Testing
      Section 15.5.  User Perception
      Section 15.6.  Clustering and Load Balancing
      Section 15.7.  Tuning JMS
      Section 15.8.  Performance Checklist
   
    Chapter 16.  Tuning JDBC
      Section 16.1.  Measuring JDBC Performance
      Section 16.2.  Tuning JDBC
      Section 16.3.  Performance Checklist
   
    Chapter 17.  Tuning Servlets and JSPs
      Section 17.1.  Don't Use SingleThreadModel
      Section 17.2.  Efficient Page Creation and Output
      Section 17.3.  Body Tags
      Section 17.4.  Cache Tags
      Section 17.5.  HttpSession
      Section 17.6.  Compression
      Section 17.7.  More Performance Tips
      Section 17.8.  Case Study: Ace's Hardware SPECmine Tool
      Section 17.9.  Performance Checklist
   
    Chapter 18.  Tuning EJBs
      Section 18.1.  Primary Design Guidelines
      Section 18.2.  Performance-Optimizing Design Patterns
      Section 18.3.  The Application Server
      Section 18.4.  More Suggestions for Tuning EJBs
      Section 18.5.  Case Study: The Pet Store
      Section 18.6.  Case Study: Elite.com
      Section 18.7.  Performance Checklist
   
    Chapter 19.  Further Resources
      Section 19.1.  The Primary Resource
      Section 19.2.  Books
      Section 19.3.  Magazines
      Section 19.4.  URLs
      Section 19.5.  Profilers
      Section 19.6.  Optimizers
   
    Colophon
    Index
Previous Section Next Section