목차
CHAPTER 1 최적화와 성능 정의
_1.1 잘못된 자바 성능 최적화 방법
_1.2 자바 성능 개요
_1.3 실증 과학으로서의 성능
_1.4 성능을 위한 분류 체계
_1.5 성능 그래프 읽기
_1.6 클라우드 시스템의 성능
_1.7 요약
CHAPTER 2 성능 테스트 방법론
_2.1 성능 테스트 종류
_2.2 모범 사례 개론
_2.3 성능 안티 패턴의 원인
_2.4 자바 가상 머신 성능을 위한 통계
_2.5 통계 해석
_2.6 인지적 편향과 성능 테스트
_2.7 요약
CHAPTER 3 자바 가상 머신 개요
_3.1 인터프리팅과 클래스 로딩
_3.2 바이트코드 실행
_3.3 핫스팟 소개
_3.4 JIT 컴파일 소개
_3.5 자바 가상 머신 메모리 관리
_3.6 스레딩과 자바 메모리 모델
_3.7 자바 가상 머신 모니터링 또는 도구
_3.8 자바 구현, 배포 또는 릴리스
_3.9 요약
CHAPTER 4 가비지 컬렉션 이해하기
_4.1 마크 앤 스윕 소개
_4.2 가비지 컬렉션 용어집
_4.3 핫스팟 런타임 소개
_4.4 할당과 수명 주기
_4.5 약한 세대 가설
_4.6 핫스팟의 프로덕션 가비지 컬렉션 기술
_4.7 병렬 컬렉터
_4.8 할당의 역할
_4.9 요약
CHAPTER 5 고급 가비지 컬렉션
_5.1 트레이드오프와 플러그형 컬렉터
_5.2 동시 가비지 컬렉션 이론
_5.3 G1
_5.4 셰넌도어
_5.5 ZGC
_5.6 Balanced(이클립스 OpenJ9)
_5.7 니치 핫스팟 컬렉터
_5.8 요약
CHAPTER 6 자바 가상 머신에서 코드 실행
_6.1 전통적인 자바 애플리케이션 수명 주기
_6.2 바이트코드 해석 개요
_6.3 핫스팟에서의 JIT 컴파일
_6.4 자바 프로그램 실행의 진화
_6.5 요약
CHAPTER 7 하드웨어와 운영 시스템
_7.1 현대 하드웨어 소개
_7.2 메모리
_7.3 현대 프로세서의 특징
_7.4 운영 체제
_7.5 간단한 시스템 모델
_7.6 요약
CHAPTER 8 클라우드 스택의 구성 요소
_8.1 클라우드 스택을 위한 자바 표준
_8.2 클라우드 네이티브 컴퓨팅 재단
_8.3 가상화
_8.4 이미지와 컨테이너
_8.5 네트워킹
_8.6 Fighting Animals 예제 소개
_8.7 요약
CHAPTER 9 클라우드에서의 자바 배포
_9.1 로컬 환경에서 컨테이너 작업하기
_9.2 컨테이너 오케스트레이션
_9.3 배포 기술
_9.4 자바 특화 고려 사항
_9.5 요약
CHAPTER 10 관측성 소개
_10.1 관측성이 중요한 이유
_10.2 세 가지 핵심 요소
_10.3 관측성 아키텍처 패턴과 안티 패턴
_10.4 관측성 기반의 애플리케이션 문제 진단
_10.5 상용 솔루션과 오픈 소스 소프트웨어
_10.6 요약
CHAPTER 11 자바에서 관측성 구현
_11.1 마이크로미터 소개
_11.2 자바 개발자를 위한 프로메테우스 소개
_11.3 오픈텔레메트리 소개
_11.4 자바에서 오픈텔레메트리 추적 적용
_11.5 자바에서 오픈텔레메트리 지표 적용
_11.6 자바에서 오픈텔레메트리 로그 적용
_11.7 요약
CHAPTER 12 프로파일링
_12.1 프로파일링 소개
_12.2 GUI 기반 프로파일링 도구
_12.3 샘플링과 세이프포인트 편향
_12.4 최신 프로파일러
_12.5 JDK Flight Recorder(JFR)
_12.6 프로파일링의 운영적 측면
_12.7 메모리 프로파일링
_12.8 요약
CHAPTER 13 동시성 성능 기법
_13.1 병렬 처리 소개
_13.2 자바 메모리 모델의 이해
_13.3 동시성 라이브러리 구축
_13.4 동시성 라이브러리 요약
_13.5 실행기와 작업 추상화
_13.6 가상 스레드
_13.7 요약
CHAPTER 14 분산 시스템 기법과 패턴
_14.1 기본적인 분산 데이터 구조
_14.2 합의 프로토콜
_14.3 분산 시스템 예제
_14.4 Fighting Animals 개선
_14.5 요약
CHAPTER 15 현대적 성능과 미래
_15.1 새로운 동시성 패턴
_15.2 파나마
_15.3 라이덴
_15.4 발할라
_15.5 결론
Appendix A 마이크로벤치마킹
Appendix B 성능 안티 패턴