Do you subscribe to email newsletters? If you're like me, you get lots of them. New ones appear in my inbox every morning. They pile up, demanding to be read. In fact, they seem to breed like rabbits, producing new offspring -- when did I express an interest in Enterprise VOIP Security Architecture issues? Sometimes in a housekeeping splurge I delete a few dozen at once, suffering a momentary twinge of anxiety at having perhaps missed something important. So usually I skim them before hitting the delete button.
TechTarget's Search Software Quality service seems to be especially prolific, but is also a regular source of interesting references -- like TheServerSide.com, the subject of a recent note. According to the site's home page:
Java Performance Management for Large-Scale Systems
There are many classes of enterprise applications that have stringent performance and scalability requirements. TheServerSide.com has assembled a collection of resources to help you better design, develop, test and manage high performance, large-scale systems - learn new and innovative approaches for performance tuning, memory management, concurrent programming, JVM clustering and more.
Pro Java EE 5 Performance Management and Optimization
One of the articles listed on TheServerSide.com was a book review of Pro Java EE 5 Peformance Management and Optimization by Steven Haines:
Pro Java EE 5 Performance Management and Optimization features proven methodology to guarantee top-performing Java EE 5 applications and explains how to measure performance in your specific environment. The book details performance integration points throughout the development and deployment lifecycles. For QA and preproduction stages, author Steven Haines guides the reader through testing and deploying Java EE 5 applications with a focus on assessing capacity and discovering saturation points. Haines also defines the concept and application of wait-based tuning.
In addition, the book explains assessing and improving the health of applications upon deployment. The topics covered include trending, forecasting, and capacity assessing and planning. Haines also walks through the creation of a formal Java EE 5 Performance Management Plan, customized to an environment to help interpret and react to changing trends in usage patterns.
Published by Apress, May 2006. ISBN: 1-59059-610-2
The review includes the option to download the full text of two chapters:
Chapter 6: Performance Tuning Methodology
... focuses on setting up a proper testing environment and explores the concept of wait-based tuning. Haines explains the steps necessary to implement a formal performance tuning methodology and guides the reader through a complete tuning example -- [pdf].
Chapter 9: Performance and Scalability Testing
... discusses the difference between the concepts of performance and scalability, and outlines the strategy of ensuring performance before testing for scalability. Haines also leads a detailed exploration into the ultimate scalability test - the capacity assessment - and explains how to assemble a formal Capacity Assessment Report -- [pdf].
Steven Haines is the author of three Java books: The Java Reference Guide (InformIT/Pearson, 2005), Java 2 Primer Plus (SAMS, 2002), and Java 2 From Scratch (QUE, 1999). In addition to contributing chapters and coauthoring other books, as well as technically editing software publications, he is the Java Host on InformIT.com. As an educator, he has taught all aspects of Java at Learning Tree University as well as at the University of California, Irvine. By day he works as a Java EE 5 Performance Architect at Quest Software, defining performance tuning and monitoring software as well as managing and performing Java EE 5 performance tuning engagements for large-scale Java EE 5 deployments, including those of several Fortune 500 companies.
Other excerpts ...
For more samples of the book's content, an article published on the JavaWorld site seems to contain most or all of Chapter 14, Solving Common Java EE Performance Problems. While Chapter 6 addresses the principles of performance tuning, this long article (13-parts) goes into a lot more technical detail. It concludes:
Solving common Java EE performance problems
While each application and each environment is different, a common set of issues tends to plague most environments. This article focused not on application code issues, but on the following environmental issues that can manifest poor performance:
- Out-of-memory errors
- Thread pool sizes
- JDBC connection pool sizes
- JDBC prepared statement cache sizes
- Cache sizes
- Pool sizes
- Excessive transaction rollbacks
In order to effectively diagnose performance problems, you need to understand how problem symptoms map the root cause of the underlying problem. If you can triage the problem to application code, then you need to forward the problem to the application support delegate, but if the problem is in the environment, then resolving it is within your control.
--Steven Haines, JavaWorld.com, June 19, 2006
Finally, the Google Books site also contains about 25 shorter excerpts, each 3 or 4 pages, that will give you a really good picture of what the book covers and how Steven approaches his subject matter.
I'd be rather surprised if, after browsing all these informative and well-written samples, you don't decide that you need to order a complete copy for yourself. I have!