Synopses & Reviews
This book addresses a vital issue for all those developing software for the Java™ platform: how to achieve maximum performance and scalability for their applications.
Drawing on the authors' knowledge of the Java programming language and their extensive experience working on performance issues, the book reveals common mistakes and misconceptions concerning the performance characteristics of Java technologies. It offers overall development strategies and concrete, battle-tested techniques to dramatically improve the performance of applications constructed with the Java programming language.
Java™ Platform Performance highlights the importance of integrating performance evaluation into the application development process and discusses measurement techniques. The book then presents practical tactics for enhancing application performance in the areas of I/O, RAM footprint, small object management, algorithms, data structures, Swing, and deployment. Specific topics covered include:
- Incorporating performance evaluation into the development process
- Profiling and benchmarking
- Building scalable, fast Swing GUIs
- Using high-speed I/O
- Computing and controlling the RAM footprint
- Reducing the number of classes
- Eliminating temporary objects
- Selecting high-performance algorithms and data structures
- Using Java native code and applet packaging efficiently
- Garbage collection
- Java HotSpot™ technology
With an understanding of the performance issues and specific techniques for reducing overhead discussed in this book, you will have the information you need to enhance the efficiency, speed, and scalability of your software.
0201709694B04062001
About the Author
Steve Wilson is the Engineering Manager of the Java Performance Team at Sun Microsystems's Java Software unit. There he leads the team that is responsible for performance tuning of the Java™ 2 Standard Edition internals and helps third-party developers improve program code performance. Mr. Wilson previously worked as a member of the Swing team, which developed the Java Foundation Classes toolkit. Prior to joining Sun, he spent several years as an independent consultant specializing in object-oriented technologies.
Jeff Kesselman is an engineer on the Java Performance Team at Sun Microsystems's Java Software unit where he works with various groups to improve Java code performance. Prior to joining Sun, he developed cutting-edge games for several PC and console platforms in the computer game industry.
0201709694AB04062001
Table of Contents
Preface.
Introduction.
I: STRATEGIES. 1. What Is Performance?
Computational Performance.
RAM Footprint.
Startup Time.
Scalability.
Perceived Performance. 2. The Performance Process.
Developing a Performance Process.
References on Object-Oriented Design. 3. Measurement Is Everything.
Benchmarking.
Profiling.
Dealing with Flat Profiles.
II: TACTICS. 4. I/O Performance.
Basic I/O.
Serialization. 5. RAM Footprint.
Computing RAM Footprint.
What Contributes to Footprint?
Class Loading. 6. Controlling Class Loading.
Eager Class Loading.
Reducing the Number of Classes.
Running Multiple Programs. 7. Object Mutability: Strings and Other Things.
Lots of Little Objects.
Handling String Objects.
Mutable Objects in AWT and Swing.
Other Mutable Object Tactics.
Mutable Object Case Study.
Small Objects and the Modern JVM.
Array Mutability. 8. Algorithms and Data Structures.
Selecting Algorithms.
Using Recursive Algorithms.
Beyond Simple Algorithms.
Selecting Data Structures.
Collections Example.
References on Algorithms and Data Structures. 9. Using Native Code.
Native Graphics Example.
Examining JNI Costs.
Native Code Case Studies. 10. Swing Models and Renderers.
Swing's Component Architecture.
Scalable Components. 11. Writing Responsive User Interfaces with Swing.
Guidelines for Responsive GUIs.
Using Threads in Swing Programs.
Using Timers in Swing Applications.
Responsive Applications Use Threads.
Example: Searching the Web. 12. Deployment.
Compiler Options.
JAR Files.
Packaging Utilities.
Dynamic Downloading.
Appendices. A. The Truth About Garbage Collection.
Why Should You Care About Garbage Collection?
The Guarantees of GC.
The Object Lifecycle.
Reference Objects.
References on Garbage Collection. B. The Java HotSpot Virtual Machine.
HotSpot Architecture.
Runtime Features.
HotSpot Server Compiler.
X Flags.
XX Flags. References.
Index 221. 0201709694T04062001.