5.13 Life in the Real World: Performance Improvement Techniques(실제상황: 성능개선 기술)
여기에선 지금까지 언급했던 성능 최적화 기술에 대해 간략하게 언급만 다시 하고 넘어갈 것이다.
- High-level Design
- 알맞은 알고리즘과 자료구조를 선택 → 점근적으로 봤을 때 빈약한 성능의 알고리즘을 피해야 한다.
- Basic coding principles
- 불필요한 함수 호출을 제거 → 성능(효율)을 위해 프로그램 모듈성과 어느정도의 타협을 봐라
- 불필요한 메모리 접근을 제거 → 임시 변수를 사용하여 중간단계의 결과를 유지해라.
- Low-level Optimizations (하드웨어 능력을 이용하는 코드를 구성)
- Unroll Loops → 루프의 오버헤드를 줄이고 더 높은 최적화를 달성하게 해줌
- instruction-level parallelism을 향상시키는 방법을 찾아라 → 예) multiple accumulators(k X k loop unrolling), reassociation(k X 1a loop unrolling) 등
- conditional 연산을 재작성해라 → conditional move(conditional data transfers)를 생성하도록 하는 functonal style로 재작성해라.
'Computer Science > 컴퓨터 구조' 카테고리의 다른 글
[CSAPP] 6.1 Storage Technologies(저장장치 기술) (0) | 2023.02.09 |
---|---|
[CSAPP] Chapter 06. The Memory Hierarchy(메모리 계층구조) (0) | 2023.02.09 |
[CSAPP] 5.12 Understanding Memory Performance(메모리 성능의 이해) (0) | 2023.02.08 |
[CSAPP] 5.11 Some Limiting Factors(일부 제한 요인들) (0) | 2023.02.08 |
[CSAPP] 5.10 Summary of Results for Optimizing Combining Code (최적화 코드의 결과 요약) (0) | 2023.02.08 |