This document discusses improving application performance. It begins by explaining why performance matters, such as making applications more attractive to users and helping users get things done more efficiently. It then discusses how to improve performance using the Theory of Constraints approach: 1) identify bottlenecks, 2) decide how to address bottlenecks, 3) optimize code, and 4) repeat until goals are met. Specific techniques discussed include profiling applications to find hot spots, optimizing at the design, source code, and compile levels, and considering trade-offs such as memory usage.