在学习csapp, 看完了第五章。标记一下, 所以直接引用csapp书中内容了:
Life in the Real World: Performance Improvement Techniques
Although we have only considered a limited set of applications, we can draw important lessons on how to
write efficient code. We have described a number of basic strategies for optimizing program performance:
1. High-level design. Choose appropriate algorithms and data structures for the problem at hand. Be especially
vigilant to avoid algorithms or coding techniques that yield asymptotically poor performance.
2. Basic coding principles. Avoid optimization blockers so that a compiler can generate efficient code.
(a) Eliminate excessive function calls. Move computations out of loops when possible. Consider
selective compromises of program modularity to gain greater efficiency.
(b) Eliminate unnecessary memory references. Introduce temporary variables to hold intermediate
results. Store a result in an array or global variable only when the final value has been computed.
3. Low-level optimizations.
(a) Try various forms of pointer versus array code.
(b) Reduce loop overhead by unrolling loops.
(c) Find ways to make use of the pipelined functional units by techniques such as iteration splitting.