Java™ Performance and Scalability, Volume 1
Addison Wesley (Verlag)
978-0-201-70429-7 (ISBN)
- Titel ist leider vergriffen;
keine Neuauflage - Artikel merken
Performance is now the area where Java is being put to the test, offering ever greater competitive advantage for those who master it. In this book, one of the world's leading software optimization experts presents 48 lessons that address virtually every aspect of Java server-side performance, Java Performance and Scalability, Volume I proves that, through careful attention to underlying source code and program design, the Java programming language can meet and exceed developers' greatest expectations. Dov Bulka targets the most common and critical Java performance pitfalls, offering dozens of practical tips and solutions covering each performance-critical area. Bulka has done the hard work of digging deep into the JDK to understand Java performance in unprecedented depth. This book includes not only code examples, but actual measurements quantifying the improvements they deliver. Coverage includes strings, containers, numerics, I/O, RMI, JDBC, servlets, JSP, and much more -- including a complete case study that walks through improving the performance of a Web server by a full order of magnitude.
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. 0201704293AB04062001
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. 0201704293T04062001
Erscheint lt. Verlag | 14.6.2000 |
---|---|
Verlagsort | Boston |
Sprache | englisch |
Maße | 187 x 234 mm |
Gewicht | 548 g |
Themenwelt | Informatik ► Programmiersprachen / -werkzeuge ► Java |
Mathematik / Informatik ► Informatik ► Web / Internet | |
ISBN-10 | 0-201-70429-3 / 0201704293 |
ISBN-13 | 978-0-201-70429-7 / 9780201704297 |
Zustand | Neuware |
Haben Sie eine Frage zum Produkt? |
aus dem Bereich