From Amazon
Now that Java is doing more and more in the field, improving its speed and efficiency is crucial for many working developers. Written by two Sun insiders,
Java Platform Performance gives the experienced Java programmer plenty of useful strategies and tips for getting the most out of Java code.
This concise title offers plenty of concrete suggestions for improving real-world programs, but it also helps you think about performance as you design and test Java software.
A strength of this book is that the authors share their expertise, garnered from optimising the Swing classes for Sun. This text shows you how to benchmark and profile Java code and where to look for problem hot spots--and once these are solved, where to go next for even better performance. You learn how to reduce object creation and class loading, which can allow your programs to load faster and consume less memory.
Also notable here is a solution for letting multiple Java programs share a single JVM for reduced memory overhead. The authors do a good job of dismantling the notion that using the Java Native Interface (JNI) is a quick fix for better performance. They also show how memory leaks still can exist in Java, and how to find them. The book closes with a guide to Java garbage collection and the latest on Sun's HotSpot Virtual Machine.
If anything, this book will convince you that good performance in Java doesn't happen by accident. It takes planning, expertise, and plenty of testing. It will also get you thinking about performance in new ways with some excellent tips and strategies that can help you write faster and more efficient Java code. --Richard Dragan, Amazon.com
Topics covered:
- Measuring Java performance (computational speed, RAM footprint, start-up time, scalability, perceived performance)
- Engineering performance into the software design process
- Benchmarking techniques (micro- and macro-benchmarks)
- Profiling
- Techniques to improve I/O performance
- Reducing RAM footprint (including minimising object creation and detecting memory leaks)
- Controlling class loading (eager class loading and patterns for reducing the number of classes)
- Running multiple Java programs within the same virtual machine
- Optimising String objects
- Object mutability and performance
- Choosing the right algorithm and data structure
- The Java Collection classes and arrays compared
- Four patterns for the Java Native Interface (JNI)
- Why native code is often slower
- Swing custom models and renderers for improved performance and scalability
- JDK 1.3 and Swing Timers for more responsive user interfaces
- Deployment and performance hints
- Tutorial on Java garbage collection
- The Java HotSpot Virtual Machine
Book Description
Suns Java Performance Team presents the most complete, authoritative guide to Java optimization!
Performance is one to the most important areas today - and these are the key strategies.
Coverage on every aspect of Java performance!
Performance tactics for I/O, serialization, class loading, algorithms and data structures, native code, Swing, compilation, JAR files, and much more. Direct from Suns Java™ Performance Team, this is a comprehensive field manual full of battle-tested strategies and tactics for developing high-performance applications and applets with Java technology. It covers every aspect of Java performance, including speed, scalability, RAM footprint, startup time, and user-perceived performance factors. Part I covers the crucial process issues associated with Java optimization, outlining how performance tuning fits into the software development process, showing how to use benchmarks and profiling tools to identify hot spots and bottlenecks, and presenting general strategies for enhancing the performance of Java technology-based systems. In Part II, the authors present a wide array of concrete optimization techniques. The book contains detailed appendices on garbage collection and the Java HotSpot™ Virtual Machine, written to address key performance questions.
Steve Wilson is Engineering Manager of the Java Performance Team at Sun Microsystems Java Software unit, where he leads a team responsible for performance tuning the internals of the Java 2 Standard Edition. He previously worked as a member of the Swing team developing the Java Foundation Classes toolkit. Jeff Kesselman is an engineer on the Java Performance Team at Sun Microsystems Java Software unit where he works with various groups to improve code performance. Prior to joining Sun, Jeff worked on cutting-edge games for various PC and console platforms.