 |
One of the biggest "missing
links" in the development
cycle, in my opinion, is a rigorous performance analysis regimen. That's
why I was so pleased to see a book like Performance Testing coming
out of MS Press. The book was written by key members of the Microsoft
Application Consulting and Engineering (ACE) Team, whose job it is
to provide performance analysis leadership and world - class tuning
services to some of the biggest and most heavily trafficked web sites
run by Microsoft. |
I've had "close to the metal" personal experience with performance analysis
and the .NET platform. While working for a major banking software firm
within the last 2 years, I was a developer lead on a .NET conversion
project that was jointly sponsored by Microsoft where we converted a
suite of COM - based middleware talking to SQL Server and AS-400 back
ends to the .NET platform, as well as providing a .NET and WebService
front end to the product.
I had the pleasure of spending several weeks at the MS Testing Lab in
Charlotte, NC under the direction of Dennis Bass and his team at Microsoft.
While there, I learned how important stress testing and performance analysis
really are - especially when they are begun early on in the development
process.
Because of many of the lessons learned at the Lab, we were able
to obtain a nearly 1000 percent improvement in throughput in the .NET
version vs the previous COM - based version. We learned a lot about data
caching, both in IIS as well as on the middle tier, and we also learned
how to zero in on exceptions that our originally "crappy" code was generating,
and how to prevent them. We used internal MS tools such as AD Plus and
Mutex Black Box, and were able to see things about the execution of our
code that most developers never get to see. One thing many developers
new to .NET need to learn is that you must do everything you
can to
PREVENT exceptions
when
you
code.
Exceptions are expensive, and they should never be used to handle business
logic.
This book is laid out in ten progressive chapters:
Chapter 1, "Laying the Performance Analysis Ground
Work",
explains where in the development cycle performance analysis comes in,
and provides the background for the methodology used in the book.
Chapter 2, "Preparing and Planning for the Performance
Test", gives an overview of the different kinds of information the tester(s)
will need and where to get it.
Chapter 3, "Stress Testing with Microsoft Application
Center Test (ACT)" is a detailed overview of the ACT application
and how it is used. One seemingly glaring omission here is that there
is
no mention at all of the Web Application Stress Tool (affectionately
known as "HOMER"), which remains the only tool available from
Microsoft that can control multiple simultaneous test clients, and is
actually the
tool that I prefer over ACT. HOMER has a COM interface which allows for
extensive scripting with VBScript.
Chapter 4, "Monitoring Application Performance with System Monitor",
details SysMon and show most of the commonly used performance counters
used in stress testing and what they are used for.
Chapter 5, "Application Network Analysis", shows how
to use Network Monitor to capture traffic and analyze it to extrapolate
response times, bytes transferred, and network round trips.
Chapter 6, "Analyzing and Performance Tuning the Web
Tier", deals with information obtained from IIS logs and PerfMon logs
and how to use this data.
Chapter 7, "Profiling Managed Code", is a section on
all the major details of the CLR and also covers Compuware DevPartner
(which has a very nice freeware "Community edition" which I have used,
and AppMetrics, another testing application.
Chapter 8, "Analyzing the SQL Tier", has more information about
testing and tuning SQL Server than I've seen in any other single book,
and in
my opinion, this chapter alone is worth double the $39.95 list price
of the book.
Chapter 9, "Estimating IIS Tier capacity with Transaction
Cost Analysis", is a complete treatise on TCA, a patented technical set
of formulae used for measuring a web site's capacity to host users as
well as for measuring performance improvements made to an application.
A special spreadsheet is provided in the CD ROM that accompanies the
book (which also has a fully searchable CHM copy of the entire book,
along with many other materials).
Chapter 10, "Performance Monitoring, Tools for Predicting Performance",
is a high - level overview of an overall architecture for examining proposed
systems in their entirety.
In summary, the ACE team at Microsoft proves that they are indeed world
class performance analysts, and the details and information they provide
in this book is a clear testament to their dedication and professionalism.
If you are a developer or manager whose job it is to design and deploy
world class web-based applications, you should have a copy of this book.
If you are very sophisticated, you may know some of the things you'll
find here, but there will surely be many more that you do not know. Highly
recommended.
| Peter Bromberg is a C# MVP, MCP, and .NET consultant who has worked in the banking and financial industry for 20 years. He has architected and developed web - based corporate distributed application solutions since 1995, and focuses exclusively on the .NET Platform. Pete's samples at GotDotNet.com have been downloaded over 41,000 times. You can read Peter's UnBlog Here. --><-- NOTE: Post QUESTIONS on FORUMS! |  |
Do you have a question or comment about this article? Have a programming problem you need to solve? Post it at eggheadcafe.com forums and receive immediate email notification of responses.
|