5.13 Life in the Real World: Performance Improvement Techniques
- High-level design
- 적절한 알고리즘과 자료구조를 이용하기
- Basic coding principles
- 컴파일러가 효율적인 코드를 만들어내도록 optimization blocker를 피하기
- Eliminate excessvie function calls
- 계산을 loop안에서 가능한한 옮기기
- Eliminate unnecessary memory references
- 임시 변수를 도입하여 중간 결과를 저장하기
- 마지막 값이 계산되었을 때만 결과를 array나 global variable에 저장하기
- Low-level optimizations
- Unroll loop
- instruction-level parallelism
- conditional operation을 함수형 스타일로 재작성하기