
Java Performance and Scalability
Volume I : Server-Side Programming Techniques
Résumé
Presented in 48 concise lessons that target the most common and critical performance pitfalls, this book offers a plethora of practical tips and solutions for boosting the performance of your programs. These lessons cover performance-critical areas such as memory management, garbage collection, caching, and multithreading.
Specific lessons include:
- Reserving StringBuffer capacity
- Avoiding premature object creation
- Creating an efficient vector class
- Designing caching into your API
- The cost of synchronization
- Parallel subtasks
- JNI efficiency
- Varying the server workload and RMI network plumbing
- Using ServletOutputStream
- Caching JDBC? connections
In addition to providing hard numbers that quantify the optimizations, the author concludes the book with an application demonstrating the effectiveness of the performance optimizations. The exercise takes a typical program and increases its performance fourfold through a series of steps that tie together the lessons learned throughout the book. He offers both the means and the proof to better coding.
Table of contents
- List of Figures
- Preface
- Introduction
1 Java Strings- Optimization 1: String Concatenation
- Optimization 2: Fight Object Overpopulation
- Optimization 3: String Equality
- Optimization 4: Characters to Bytes and Back
- Optimization 5: StringTokenizer
- Optimization 6: charAt()
- Optimization 7: Prefer charAt() to startsWith()
- Optimization 8: Reserve StringBuffer Capacity
- Key Points
2 Pure Overhead- Optimization 9: Useless Computations
- Optimization 10: Don't Trace Trivial Methods
- Optimization 11: Making Overhead Vanish
- Optimization 12: Premature Object Creation
- Optimization 13: Don't Initialize Twice
- Optimization 14: Do You Really Need to Zero-Out a Buffer?
- Optimization 15: The 80-20 Principle
- Optimization 16: Purge Obsolete Code
- Key Points
3 Vectors and Hashtables- Optimization 17: Vector Add and Remove
- Optimization 18: Vector Capacity
- Optimization 19: Vector Enumeration
- Optimization 20: Efficient Vector Class
- Optimization 21: Using the API Wisely
- Optimization 22: Hashtable Parameters
- Optimization 23: Speed Up hashCode()
- Optimization 24: Speed Up equals()
- Key Points
4 Caching- Optimization 25: Cache File Contents
- Optimization 26: Design Caching into Your API
- Optimization 27: Precompute
- Optimization 28: Relax Granularity
- Optimization 29: Inheritance
- Key Points
5 I/O Streams- Example I/O Code
- Optimization 30: Output Buffering
- Optimization 31: Don't Flush Prematurely
- Optimization 32: Prefer Byte Stream to Unicode
- Optimization 33: Input Buffering
- Optimization 34: Byte-to-Char Conversions
- Optimization 35: Binary I/O
- Key Points
6 Recycling- Optimization 36: Object Recycling
- Optimization 37: Object Pools
- Optimization 38: Last In, First Out
- Key Points
7 Scalability and Multithreading- Scalability Basics
- The SMP Architecture
- Amdahl's Law
- Multithreaded and Synchronization Terminology
- The Cost of Synchronization
- Optimization 39: Parallel Subtasks
- Optimization 40: Synchronization False Sharing
- Optimization 41: Lock Fusion
- Optimization 42: Code Motion
- Optimization 43: Share Nothing
- Optimization 44: Partial Sharing
- Optimization 45: Read/Write Locks
- Key Points
8 JNI- Optimization 46: JNI Surprise
- Optimization 47: JNI to the Rescue
- Optimization 48: Prefer System.arraycopy()
- Key Points
9 RMI- The RMI Network Plumbing
- Varying the Server Workload
- RMI Server on Remote Machine
- Serializing Heavyweight Objects
- Key Points
10 Servlets- Servlets Using PrintWriter
- Servlets Using ServletOutputStream
- Precomputing Message Bytes
- Pumping More Data
- PingServlet--A Performance Upper Bound
- Extending PingServlet
- Session State
- PingJdbc
- Caching JDBC Connections
- JSP--Java Server Pages
- RMI
- Key Points
11 A Java Web Server- Version 1: The Original Server
- Version 2
- Version 3
- Version 4
- Version 5
- Version 6
- Key Point
A Caching JDBC Connections- CacheDriver.java
- CacheConnection.java
- CacheStatement.java
- CacheCallableStatement.java
- CachePreparedStatement.java
- CacheDriver.properties
B Simple Java Web Server- Server.java
- FileInfo.java
- UrlCache.java
- LazyDate.java
- MyGetBytes.java
- server.properties
- Bibliography
- Index
L'auteur - Dov Bulka
has spent fifteen years in the trenches of software development, delivering large-scale software products to market. He was the performance architect of the IBM Domino-Go Web server that has powered some of the biggest Web sites ever hosted on the Internet, including that of the 1996 Atlanta Olympics. He received his Ph.D. in computer science from Duke University.
Caractéristiques techniques
PAPIER | |
Éditeur(s) | Addison Wesley |
Auteur(s) | Dov Bulka |
Parution | 25/06/2000 |
Nb. de pages | 287 |
Format | 19 x 23,4 |
Couverture | Broché |
Poids | 544g |
Intérieur | Noir et Blanc |
EAN13 | 9780201704297 |
Avantages Eyrolles.com
Consultez aussi
- Les meilleures ventes en Graphisme & Photo
- Les meilleures ventes en Informatique
- Les meilleures ventes en Construction
- Les meilleures ventes en Entreprise & Droit
- Les meilleures ventes en Sciences
- Les meilleures ventes en Littérature
- Les meilleures ventes en Arts & Loisirs
- Les meilleures ventes en Vie pratique
- Les meilleures ventes en Voyage et Tourisme
- Les meilleures ventes en BD et Jeunesse