When do we need to care about Performance ?
- Requirement: Indentify what is "fast-enough";
- Design: The archetecture and design of an application will have a considerable impact on performance;
- After debugging: Engineers should measure where the program is spending its time, and try to speed up any parts that consume nontrivial amounts of time.
During implementation, we do NOT need to care about Performance, because it is hard to indentify performance bottlenecks in the code before a program is working completely.
The cheapest, fastest, and most reliable components are those that aren't there.
Simple designs often show better performance than more complicated designs.
Pipelining turns a problem whose performance is limited by latency into a problem whose performance is limited by throughput.
利用 吞吐量 来解决 延迟 带来的性能不足。