Almost every application must be made to run faster; some sooner, some
later. Performance tuning of applications has long been a dark art,
understood by few and riddled with terrible pitfalls. Stories abound
of optimization projects that took weeks but yielded a pathetic 2%
decrease in total run time. Don't let this happen to you.
The class will begin with a brief introduction to the basic concepts
of performance tuning. We'll then take an extensive look at modules
for benchmarking and profiling and see several common blunders that
even experts commit when benchmarking. We'll finish with a discussion
of a few of the most important optimizations.
Throughout, the class will emphasize both high- and low-level
approaches to performance tuning: when to tune and when to try
something different; if tuning is necessary, how to focus your efforts
where they will do the most good. We'll learn how to rationally
evaluate programming situations and when to try alternative
approaches.