Chapter 15. Performance
Optimization: Objectives and Objections
CPU Time, I/O Time, Contention, Etc.
Limits on Speedup
Benchmarks and Repeatable Testing
The Lessons of NFS
In which we make things faster, look at general performance issues, political performance issues,
an Your program is not a commodity;nd thread specific performance issues. We conclude with a
discussion of the actual performance of multithreaded NFS.
Optimization: Objectives and Objections
Performance is an incredibly wide topic that means different things to different people. It is often
referred to broadly and vaguely as an obvious requirement for all programs, without ever defining
exactly what it is. We are not aware of any truly good and comprehensive texts on the subject.[1] In
one short chapter, about all we can do is point out the things you probably already know.
There are a number of topics discussing kernel tuning, many discussing algorithmic issues for
general programs, and numerous texts and papers do detailed analyses of theoretical
limits.These are all fundamental and important places to start, but they are all weak on many
important aspects of actual implementation.
Before you begin optimizing your program, you must answer the fundamental question: What do
you really want? We're not being silly. This is not an easy question. Major factors surrounding
performance tuning include:
Time to market
Available human resources and programming costs
User perception
Targeted machine configuration
CPU time, I/O time, contention, etc.
In general, your customers' only objective is going to be: "Do my work for the least cost." They
really do not (well, should not) care about any of the details. They have their job to do and that's
the sole value of your software to them. Many of us engineering types have a tendency to skip
over all this touchy-feely stuff and jump straight into the code. Let us resist for a moment and
consider these details that affect our pay checks so much. We may not like this, but it really is
vitally important.
Time to Market
Most optimization issues are ultimately marketing issues. These marketing aspects are important
and have to be hashed out with management. It's no use having a program that runs twice as fast if
your company's out of business. We'll get to the techniques in a moment, but we wish to
emphasize this point. The amount of optimization to do on a program is a marketing issue.
Search WWH :
Custom Search
Previous Page
Multithreaded Programming with JAVA - Topic Index
Next Page
Multithreaded Programming with JAVA - Bookmarks