이미 소장하고 있다면 판매해 보세요.
CHAPTER 1 성능과 최적화
1.1 자바 성능: 잘못된 방법 1.2 자바 성능 개요 1.3 성능은 실험과학이다 1.4 성능 분류 1.5 성능 그래프 읽기 1.6 마치며 CHAPTER 2 JVM 이야기 2.1 인터프리팅과 클래스로딩 2.2 바이트코드 실행 2.3 핫스팟 입문 2.4 JVM 메모리 관리 2.5 스레딩과 자바 메모리 모델(JMM) 2.6 JVM 구현체 종류 2.7 JVM 모니터링과 툴링 2.8 마치며 CHAPTER 3 하드웨어와 운영체제 3.1 최신 하드웨어 소개 3.2 메모리 3.3 최신 프로세서의 특성 3.4 운영체제 3.5 단순 시스템 모델 3.6 기본 감지 전략 3.7 가상화 3.8 JVM과 운영체제 3.9 마치며 CHAPTER 4 성능 테스트 패턴 및 안티패턴 4.1 성능 테스트 유형 4.2 기본 베스트 프랙티스 4.3 성능 안티패턴 개요 4.4 성능 안티패턴 카탈로그 4.5 인지 편향과 성능 테스트 4.6 마치며 CHAPTER 5 마이크로벤치마킹과 통계 5.1 자바 성능 측정 기초 5.2 JMH 소개 5.3 JVM 성능 통계 5.4 통계치 해석 5.5 마치며 CHAPTER 6 가비지 수집 기초 6.1 마크 앤 스위프 6.2 핫스팟 런타임 개요 6.3 할당과 수명 6.4 핫스팟의 가비지 수집 6.5 병렬 수집기 6.6 할당의 역할 6.7 마치며 CHAPTER 7 가비지 수집 고급 7.1 트레이드오프와 탈착형 수집기 7.2 동시 GC 이론 7.3 CMS 7.4 G1 7.5 셰난도아 7.6 C4(아줄 징) 7.7 밸런스드(IBM J9) 7.8 레거시 핫스팟 수집기 7.9 마치며 CHAPTER 8 GC 로깅, 모니터링, 튜닝, 툴 8.1 GC 로깅 개요 8.2 로그 파싱 툴 8.3 GC 기본 튜닝 8.4 Parallel GC 튜닝 8.5 CMS 튜닝 8.6 G1 튜닝 8.7 jHiccup 8.8 마치며 CHAPTER 9 JVM의 코드 실행 9.1 바이트코드 해석 9.2 AOT와 JIT 컴파일 9.3 핫스팟 JIT 기초 9.4 코드 캐시 9.5 간단한 JIT 튜닝법 9.6 마치며 CHAPTER 10 JIT 컴파일의 세계로 10.1 JITWatch란? 10.2 JIT 컴파일 개요 10.3 인라이닝 10.4 루프 펼치기 10.5 탈출 분석 10.6 단형성 디스패치 10.7 인트린직 10.8 온-스택 치환 10.9 세이프포인트 복습 10.10 코어 라이브러리 메서드 10.11 마치며 CHAPTER 11 자바 언어의 성능 향상 기법 11.1 컬렉션 최적화 11.2 List 최적화 11.3 Map 최적화 11.4 Set 최적화 11.5 도메인 객체 11.6 종료화 안 하기 11.7 메서드 핸들 11.8 마치며 CHAPTER 12 동시 성능 기법 12.1 병렬성이란? 12.2 JMM의 이해 12.3 동시성 라이브러리 구축 12.4 동시 라이브러리 정리 12.5 실행자와 태스크 추상화 12.6 최신 자바 동시성 12.7 마치며 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 마치며 CHAPTER 15 자바 9와 미래 15.1 자바 9에서 소소하게 개선된 성능 15.2 자바 10과 그 이후 버전 15.3 자바 9 Unsafe 그 너머 15.4 발할라 프로젝트와 값 타입 15.5 그랄과 트러플 15.6 바이트코드의 향후 발전 방향 15.7 동시성의 향후 발전 방향 15.8 마치며 |
저벤저민 J. 에번스
관심작가 알림신청Benjamin J. Evans
벤저민 J. 에번스의 다른 상품
저제임스 고프
관심작가 알림신청James Gough
저크리스 뉴랜드
관심작가 알림신청Chris Newland
역이일웅
관심작가 알림신청이일웅 의 다른 상품
자바는 초기 버전 탄생 이후, 엄청난 변화를 거듭해왔다. 처음부터 고성능 언어로 설계된 건 아니었지만 무한한 발전을 거치며 현재 많은 개발자에게 사랑받는 언어가 되었다. 자바가 이처럼 새로운 영역으로 가능성을 넓히는 중에 코어 자바 플랫폼, 커뮤니티, 생태계는 늘 건강하고 활기가 넘친다.
메트로폴리스, 그랄 같은 대담한 신 계획은 코어 VM을 재구성하고 있다. invokedynamic 명령어는 핫스팟이 자체 한계의 틈새를 비집고 나와 다음 10년을 향한 새로운 모습으로 탈바꿈할 수 있게 했다. 자바는 값 타입을 추가하고, 복잡하기 짝이 없는 제네릭스 문제와 다시 씨름하는 등 거침없이 변화할 준비가 되었다. 자바/JVM 성능은 아주 역동적인 분야고 아직도 여러 분야에서 진보의 노력이 진행 중이다. 자바/네이티브 코드 상호작용, 오라클 ZGC 등 새로운 가비지 수집기를 비롯해 수많은 프로젝트가 진행되고 있다. 성능 엔지니어나 개발자가 알아야 할 지식은 실로 광범위하다. 이 책이 독자를 자바 성능의 세계로 친절히 안내하고 훌륭한 이정표를 제공하는 길잡이가 되길 바란다. 주요 내용 - 최신 하드웨어 및 운영체제를 최대한 활용하는 자바 원리와 기술을 배운다. - 다양한 성능 테스트 방법과 팀원들을 애태우게 만드는 일반적인 안티패턴을 살펴본다. - 자바 성능 수치를 측정할 때 빠지기 쉬운 함정과 마이크로벤치마킹의 단점을 이해한다. - JVM 가비지 수집(로깅, 모니터링, 튜닝, 툴 등)의 세계를 탐험한다. - JIT 컴파일과 자바 언어의 성능 향상 기법을 탐구한다. - 자바 컬렉션 API를 성능 측면에서 고찰하고 자바 동시성을 알아본다. |
20년 동안 JVM 내부에서 벌어지는 일을 이해하느라 많은 시간을 보냈음에도 이 책을 읽으며 더 많은 지식을 얻을 수 있었다. 읽기 쉽게 쓰였으며, 초보와 전문가 모두에게 유용한 정보가 셀 수 없이 수록돼 있다. 이 책은 200코어에 이르는 커다란 서버에서 자바 애플리케이션을 실행하든 리소스가 제한된 리눅스 컨테이너에서 실행하든 최고의 성능을 발휘하도록 이끌 것이다. - 크리스틴 H. 플러드 (레드햇)
|
오늘날 성능 문제를 해결하려면 툴 사용법을 익혀야 합니다. 자바 언어의 작동 원리는 말할 것도 없고 애플리케이션이 상호작용하는 JVM 라이브러리, 메모리, 컴파일러, GC, 심지어 하드웨어 지식까지 총동원해야 합니다. 필자는 제이루비 프로젝트를 하는 동안 JVM에 관한 불변의 진리 한 가지를 깨달았습니다. 모든 성능 문제는 한 가지 정답이 있는 게 아니라 여러 개 정답이 있다는 사실이죠. 가능한 해결책을 찾고 그중 요건에 가장 알맞은 해결책을 조합하는 게 바로 기술입니다. 지금 여러분의 손에는 한바탕 성능 전투에 임하기 전에 필요한 비밀 병기, 즉 이 책이 들려 있습니다.
자, 동료 여러분! 지금부터 책장을 넘기며 풍성한 툴과 재미난 기법들을 하나씩 섭렵하세요. 가용 리소스를 바탕으로 균형 있게 애플리케이션을 설계하는 방법을 배우세요. JVM을 모니터링하고 튜닝하는 기술을 습득하기 바랍니다. 한물간 라이브러리, 패턴보다 훨씬 효율적인, 최신 자바 기술의 활용법을 터득하세요. 자바로 무궁무진한 가능성을 파헤쳐보시길! 지금이 자바 개발자에게 가장 흥분되는 시기 아닐까요? 지금처럼 자바 플랫폼으로 다재다능하고 응답성 좋은 애플리케이션을 구축할 기회가 많았던 적은 한 번도 없었습니다. 건투를 빕니다! - 찰리 누터 (레드햇) |