Book Detail : Java Performance: The Definitive Guide

Book Title: 
Java Performance: The Definitive Guide
Resource Category: 
Author: 
Publisher: 
Publication Year: 
2 014
Number of Pages: 
426
ISBN: 
978-1-44935-845-7
Language: 
English
WishList: 
yes
Available at Shelf: 
No
Description: 

Coding and testing are often considered separate areas of expertise. In this comprehensive guide, author and Java expert Scott Oaks takes the approach that anyone who works with Java should be equally adept at understanding how code behaves in the JVM, as well as the tunings likely to help its performance.

You'll gain in-depth knowledge of Java application performance, using the Java Virtual Machine (JVM) and the Java platform, including the language and API. Developers and performance engineers alike will learn a variety of features, tools, and processes for improving the way Java 7 and 8 applications perform.

Table of Contents (Summary): 

1. Introduction

2. An Approach to Performance Testing

3. A Java Performance Toolbox

4. Working with the JIT Compiler

5. An Introduction to Garbage Collection

6. Garbage Collection Algorithms

7. Heap Memory Best Practices

8. Native Memory Best Practices

9. Threading and Synchronization Performance

10. Java Enterprise Edition Performance

11. Database Performance Best Practices

12. Java SE API Tips

A. Summary of Tuning Flags

Index

Table of Contents (Expanded): 

1. Introduction

  • A Brief Outline
  • Platforms and Conventions
    • JVM Tuning Flags
  • The Complete Performance Story
    • Write Better Algorithms
    • Write Less Code
    • Oh Go Ahead, Prematurely Optimize
    • Look Elsewhere: The Database Is Always the Bottleneck
    • Optimize for the Common Case
  • Summary

2. An Approach to Performance Testing

  • Test a Real Application
    • Microbenchmarks
    • Macrobenchmarks
    • Mesobenchmarks
    • Common Code Examples
  • Understand Throughput, Batching, and Response Time
    • Elapsed Time (Batch) Measurements
    • Throughput Measurements
    • Response Time Tests
  • Understand Variability
  • Test Early, Test Often
  • Summary

3. A Java Performance Toolbox

  • Operating System Tools and Analysis
    • CPU Usage
    • The CPU Run Queue
    • Disk Usage
    • Network Usage 
  • Java Monitoring Tools
    • Basic VM Information
    • Thread Information
    • Class Information
    • Live GC Analysis
    • Heap Dump Postprocessing
  • Profiling Tools
    • Sampling Profilers
    • Instrumented Profilers
    • Blocking Methods and Thread Timelines
    • Native Profilers
  • Java Mission Control
    • Java Flight Recorder
    • Enabling JFR
    • Selecting JFR Events
  • Summary

4. Working with the JIT Compiler

  • Just-in-Time Compilers: An Overview
    • Hot Spot Compilation
  • Basic Tunings: Client or Server (or Both)
    • Optimizing Startup
    • Optimizing Batch Operations
    • Optimizing Long-Running Applications
  • Java and JIT Compiler Versions
  • Intermediate Tunings for the Compiler
    • Tuning the Code Cache
    • Compilation Thresholds
    • Inspecting the Compilation Process
  • Advanced Compiler Tunings
    • Compilation Threads
    • Inlining
    • Escape Analysis
  • Deoptimization
    • Not Entrant Code
    • Deoptimizing Zombie Code
  • Tiered Compilation Levels
  • Summary

5. An Introduction to Garbage Collection

  • Garbage Collection Overview
    • Generational Garbage Collectors
    • GC Algorithms
    • Choosing a GC Algorithm
  • Basic GC Tuning
    • Sizing the Heap
    • Sizing the Generations
    • Sizing Permgen and Metaspace
    • Controlling Parallelism
    • Adaptive Sizing
  • GC Tools
  • Summary

6. Garbage Collection Algorithms

  • Understanding the Throughput Collector
    • Adaptive and Static Heap Size Tuning
  • Understanding the CMS Collector
    • Tuning to Solve Concurrent Mode Failures
    • Tuning CMS for Permgen
    • Incremental CMS
  • Understanding the G1 Collector
    • Tuning G1
  • Advanced Tunings
    • Tenuring and Survivor Spaces
    • Allocating Large Objects
    • AggressiveHeap
    • Full Control Over Heap Size
  • Summary

7. Heap Memory Best Practices

  • Heap Analysis
    • Heap Histograms
    • Heap Dumps
    • Out of Memory Errors
  • Using Less Memory
    • Reducing Object Size
    • Lazy Initialization
    • Immutable and Canonical Objects
    • String Interning
  • Object Lifecycle Management
    • Object Reuse
    • Weak, Soft, and Other References
  • Summary

8. Native Memory Best Practices

  • Footprint
    • Measuring Footprint
    • Minimizing Footprint
    • Native NIO Buffers
    • Native Memory Tracking
  • JVM Tunings for the Operating System
    • Large Pages
    • Compressed oops
  • Summary

9. Threading and Synchronization Performance

  • Thread Pools and ThreadPoolExecutors
    • Setting the Maximum Number of Threads
    • Setting the Minimum Number of Threads
    • Thread Pool Task Sizes
    • Sizing a ThreadPoolExecutor
  • The ForkJoinPool
    • Automatic Parallelization
  • Thread Synchronization
    • Costs of Synchronization
    • Avoiding Synchronization
    • False Sharing
  • JVM Thread Tunings
    • Tuning Thread Stack Sizes
    • Biased Locking
    • Lock Spinning
    • Thread Priorities
  • Monitoring Threads and Locks
    • Thread Visibility
    • Blocked Thread Visibility
  • Summary

10. Java Enterprise Edition Performance

  • Basic Web Container Performance
    • HTTP Session State
  • Thread Pools
  • Enterprise Java Session Beans
    • Tuning EJB Pools
    • Tuning EJB Caches
    • Local and Remote Instances
  • XML and JSON Processing
    • Data Size
    • An Overview of Parsing and Marshalling
    • Choosing a Parser
    • XML Validation
    • Document Models
    • Java Object Models
  • Object Serialization
    • Transient Fields
    • Overriding Default Serialization
    • Compressing Serialized Data
    • Keeping Track of Duplicate Objects
  • Java EE Networking APIs
    • Sizing Data Transfers
  • Summary

11. Database Performance Best Practices

  • JDBC
    • JDBC Drivers
    • Prepared Statements and Statement Pooling
    • JDBC Connection Pools
    • Transactions
    • Result Set Processing
  • JPA
    • Transaction Handling
    • Optimizing JPA Writes
    • Optimizing JPA Reads
    • JPA Caching
    • JPA Read-Only Entities
  • Summary

12. Java SE API Tips

  • Buffered I/O
  • Classloading
  • Random Numbers
  • Java Native Interface
  • Exceptions
  • String Performance
  • Logging
  • Java Collections API
    • Synchronized Versus Unsynchronized
    • Collection Sizing
    • Collections and Memory Efficiency
  • AggressiveOpts
    • Alternate Implementations
    • Miscellaneous Flags
  • Lambdas and Anonymous Classes
    • Lambda and Anonymous Classloading
  • Stream and Filter Performance
    • Lazy Traversal
  • Summary

A. Summary of Tuning Flags

Index

Tags: 
2.38846
Average: 2.4 (65 votes)

Search the Web

Custom Search

Searches whole web. Use the search in the right sidebar to search only within javajee.com!!!