Chapter 1 소프트웨어 효율성이 중요한 이유1.1 성능의 뒷면1.2 효율성에 관한 일반적인 오해1.3 코드의 성능을 끌어올리는 열쇠1.4 마치며Chapter 2 효율적인 Go 언어2.1 Go에 대해 알아야 할 기본 사항들 2.2 고급 언어 요소 2.3 Go는 정말 빠를까? 2.4 마치며 Chapter 3 효율성 완전 정복3.1 낭비 제거 이상의 최적화는 제로섬 게임3.2 최적화 작업의 어려움3.3 목표에 대한 확실한 이해3.4 효율성 문제에 대처하는 태도3.5 최적화 설계 수준들3.6 효율성 인식 개발 절차3.7 마치며Chapter 4 Go의 CPU 자원 사용법4.1 최신 컴퓨터 구조의 CPU 4.2 어셈블리어 4.3 Go 컴파일러 이해 4.4 CPU와 메모리 벽 문제 4.5 스케줄러 4.6 언제 동시성을 사용할 것인가? 4.7 마치며 Chapter 5 Go의 메모리 자원 사용법5.1 메모리 관련성 5.2 메모리 문제 유무 파악 5.3 물리적 메모리 5.4 운영체제 메모리 관리 5.5 Go 메모리 관리 5.6 마치며 Chapter 6 효율성 관찰 가능성6.1 관찰 가능성 6.2 [예시] 레이턴시 계측 6.3 효율성 메트릭의 의미 체계6.4 마치며 Chapter 7 데이터 기반 효율성 평가7.1 복잡도 분석7.2 벤치마킹의 기술7.3 실험의 신뢰성7.4 벤치마킹 수준 7.5 마치며Chapter 8 벤치마킹8.1 마이크로벤치마크8.2 마이크로벤치마킹 팁과 트릭 8.3 매크로벤치마크 8.4 일반적인 매크로벤치마킹 워크플로 8.5 마치며 Chapter 9 데이터 기반 병목 현상 분석9.1 효율성을 위한 근본 원인 분석 9.2 Go에서의 프로파일링 9.3 프로파일링 시그널 추출 9.4 공통 계측 프로파일링 9.5 조언과 요령 9.6 마치며 Chapter 10 최적화 예제10.1 Sum 예제 10.2 레이턴시 최적화하기 10.3 메모리 사용량 최적화하기 10.4 동시성을 이용한 레이턴시 최적화10.5 추가 사항: 고정관념 벗어나기 10.6 마치며 Chapter 11 최적화 패턴11.1 일반 패턴 11. 2 ‘세 가지 R’ 최적화 방법 11.3 리소스 누수 방지 11.4 사전 할당의 중요성 11.5 배열로 인한 문제: 메모리 남용11.6 메모리 재사용과 풀링11.7 마치며 11.8 다음 나아갈 단계는? APPENDIX A 레이턴시 냅킨 수학 계산찾아보기