CHAPTER 1 최적화란
__1.1 최적화는 소프트웨어 개발의 일부입니다
__1.2 최적화는 효과적입니다
__1.3 최적화해도 괜찮습니다
__1.4 여기에 나노초, 저기에 나노초
__1.5 C++ 코드 최적화 전략 요약
__1.6 마치며
CHAPTER 2 컴퓨터 하드웨어와 최적화
__2.1 C++은 컴퓨터의 거짓말을 믿습니다
__2.2 컴퓨터의 진실
__2.3 C++도 거짓말을 합니다
__2.4 마치며
CHAPTER 3 성능 측정
__3.1 사고방식 최적화
__3.2 실험 수행
__3.3 프로그램 실행 프로파일
__3.4 시간이 오래 걸리는 코드
__3.5 코드 비용 추정하기
__3.6 최적화할 코드를 찾는 다른 방법
__3.7 마치며
CHAPTER 4 문자열 최적화
__4.1 문자열이 왜 문제인가요
__4.2 문자열 최적화 첫 번째 시도
__4.3 문자열 최적화 두 번째 시도
__4.4 문자열 변환 연산 제거하기
__4.5 마치며
CHAPTER 5 알고리즘 최적화
__5.1 알고리즘의 시간 비용
__5.2 검색과 정렬을 최적화하는 툴킷
__5.3 효율적인 검색 알고리즘
__5.4 효율적인 정렬 알고리즘
__5.5 최적화 패턴
__5.6 마치며
CHAPTER 6 동적 할당 변수 최적화
__6.1 C++ 변수
__6.2 C++ 동적 변수 API
__6.3 동적 변수 사용 줄이기
__6.4 동적 변수의 재할당 줄이기
__6.5 불필요한 복사 제거하기
__6.6 이동 문법 구현하기
__6.7 평평한 자료구조
__6.8 마치며
CHAPTER 7 문장 최적화
__7.1 반복문에서 코드 제거하기
__7.2 함수에서 코드 제거하기
__7.3 표현식 최적화
__7.4 제어 흐름 최적화
__7.5 마치며
CHAPTER 8 라이브러리 최적화
__8.1 표준 라이브러리 최적화
__8.2 기존 라이브러리 최적화
__8.3 최적화된 라이브러리 설계
__8.4 마치
C++은 자동화와 표현력부터 성능을 향상시키는 세밀한 제어까지, 다양한 옵션을 제공한다. 그래서 C++로 만든 프로그램에는 최적화할 여지가 곳곳에 숨어 있다. ‘코드를 제대로 작성하고 있는 걸까?’ 의심이 든다면 지금 최적화를 시작해보자. 프로그램 속도를 느리게 하는 ‘유력 용의자’를 검거하는 방법은 알고 보면 놀라울 정도로 간단하고 명쾌하다. 저자가 소개하는 풍부한 팁과 예제를 활용해 연습하다 보면 금세 뛰어난 성능을 내면서 가독성까지 높은 코드를 작성할 수 있다.
[이 책에서 다루는 10가지 최적화]
_1. 성능에 영향을 주는 컴퓨터 하드웨어 기본 지식
_2. 프로파일러와 소프트웨어 타이머를 활용한 측정 기법
_3. 최신 C++에서 문자열의 기능을 최적으로 조합하는 방법
_4. 비효율적인 알고리즘을 개선하고 C++ 코드의 행동 패턴을 참조해 최적화하는 방법
_5. 동적 할당 변수를 제대로 사용하고 메모리 관리자의 호출 횟수를 줄이는 방법
_6. 실행에 불필요한 명령어를 제거하여 문장 수준에서 최적화를 이루는 방법
_7. 처음부터 고성능을 목표로 하는 라이브러리를 설계하는 방법
_8. C++ 컨테이너 클래스의 장점과 단점을 이해하고 활용하는 방법
_9. C++ 스트리밍 입출력 함수를 효율적으로 사용하는 방법
_10. 그 외 성능 저하를 일으키는 요인을 찾아내고 수정하는 방법