국립세종도서관
상세검색 닫기
자료유형
본문언어
출판년도 ~
정렬
상세검색 +

기타

  • 홈으로
글씨 글씨 확대 글씨 축소
자바 최적화 : 가장 빠른 성능을 구현하는 검증된 10가지 기법 / 지은이 : 벤저민 J. 에번스,제임스 고프,크리스 뉴랜드 ;옮긴이 : 이일웅
자바 최적화 : 가장 빠른 성능을 구현하는 검증된 10가지 기법 책표지
  • ·표제/책임표시사항 자바 최적화 : 가장 빠른 성능을 구현하는 검증된 10가지 기법 / 지은이 : 벤저민 J. 에번스,제임스 고프,크리스 뉴랜드 ;옮긴이 : 이일웅
  • ·발행사항 서울 : 한빛미디어, 2019
  • ·형태사항 500 p. :천연색삽화 ;24 cm
  • ·주기사항 원표제:Optimizing Java
    원저자명: Benjamain J. Evans, James Gough, Chris Newland
    색인수록
    영어 원작을 한국어로 번역
  • ·표준번호/부호 ISBN: 9791162241776  93000: \39000 
  • ·분류기호 한국십진분류법-> 005.133  듀이십진분류법-> 005.133  
  • ·주제명 자바 프로그래밍[Java programming]
권별정보 자료위치출력 관심도서 보기 관심도서 담기

※ 좌우로 스크롤하시면 내용이 보입니다.

권별정보 안내
신청 편/권차 편제 저작자 발행년도 등록번호 청구기호 자료있는 곳 자료상태 예약자 반납예정일 매체구분
지은이: 벤저민 J. 에번스,제임스 고프,크리스 뉴랜드 ;옮긴이: 이일웅 2019 SE0000539731 005.133-19-118 일반자료실(서고) 서고 비치(온라인 신청 후 이용) 0 - 인쇄자료(책자형) 
지은이: 벤저민 J. 에번스,제임스 고프,크리스 뉴랜드 ;옮긴이: 이일웅 2019 SE0000539732 005.133-19-118=2 일반자료실(서고) 서고 비치(온라인 신청 후 이용) 0 - 인쇄자료(책자형) 
※ 신청 종류
- 대출예약신청:
자료상태가 ‘대출중’인 경우 해당 도서를 예약하여 도서 반납 시 우선적으로 대출받을 수 있는 서비스
- 청사대출신청:
정부세종청사(6-3동, 2-1동)에 위치한 무인예약도서대출반납기에서 도서 수령‧반납이 가능한 서비스
- 무인대출신청:
도서관 1문(정문)에 위치한 무인예약도서대출기에서 도서 수령이 가능한 서비스
- 서고자료신청:
서고에 보관된 자료에 대한 열람신청 서비스 이용방법: 로그인 → 자료검색 → [상세정보] 클릭 → 권별정보에서 자료 선택 →[서고자료신청] → 자료비치완료 문자 수신 → 해당 자료실에서 자료 수령
서가 둘러보기
서가둘러보기 로딩중

목차


목차

지은이 소개-4
옮긴이 소개-5
옮긴이의 말-6
감사의 말-8
들어가며-9

CHAPTER 1 성능과 최적화
1.1 자바 성능: 잘못된 방법-26
1.2 자바 성능 개요-28
1.3 성능은 실험과학이다-29
1.4 성능 분류-30
   1.4.1 처리율-31
   1.4.2 지연-31
   1.4.3 용량-32
   1.4.4 사용률-32
   1.4.5 효율-32
   1.4.6 확장성-33
   1.4.7 저하-33
   1.4.8 측정값 사이의 연관 관계-33
1.5 성능 그래프 읽기-35
1.6 마치며-39

CHAPTER 2 JVM 이야기
2.1 인터프리팅과 클래스로딩-41
2.2 바이트코드 실행-43
2.3 핫스팟 입문-48
   2.3.1 JIT 컴파일이란?-50
2.4 JVM 메모리 관리-52
2.5 스레딩과 자바 메모리 모델(JMM)-53
2.6 JVM 구현체 종류-55
   2.6.1 JVM 라이선스-57
2.7 JVM 모니터링과 툴링-58
   2.7.1 VisualVM-59
2.8 마치며-62

CHAPTER 3 하드웨어와 운영체제
3.1 최신 하드웨어 소개-64
3.2 메모리-65
   3.2.1 메모리 캐시-66
3.3 최신 프로세서의 특성-72
   3.3.1 변환 색인 버퍼(TLB)-72
   3.3.2 분기 예측과 추측 실행-73
   3.3.3 하드웨어 메모리 모델-73
3.4 운영체제-75
   3.4.1 스케줄러-76
   3.4.2 시간 문제-78
   3.4.3 컨텍스트 교환-79
3.5 단순 시스템 모델-81
3.6 기본 감지 전략-82
   3.6.1 CPU 사용률-82
   3.6.2 가비지 수집-84
   3.6.3 입출력-85
   3.6.4 기계 공감-87
3.7 가상화-88
3.8 JVM과 운영체제-90
3.9 마치며-92

CHAPTER 4 성능 테스트 패턴 및 안티패턴
4.1 성능 테스트 유형-93
   4.1.1 지연 테스트-95
   4.1.2 처리율 테스트-95
   4.1.3 부하 테스트-96
   4.1.4 스트레스 테스트-96
   4.1.5 내구 테스트-96
   4.1.6 용량 계획 테스트-97
   4.1.7 저하 테스트-97
4.2 기본 베스트 프랙티스-98
   4.2.2 테스트 환경 구축-99
   4.2.3 성능 요건 식별-100
   4.2.4 자바에 특정한 이슈-101
   4.2.5 SDLC 일부로 성능 테스트 수행하기-102
4.3 성능 안티패턴 개요-102
   4.3.1 지루함-103
   4.3.2 이력서 부풀리기-104
   4.3.3 또래 압박-104
   4.3.4 이해 부족-104
   4.3.5 이해와 있지도 않은 문제-105
4.4 성능 안티패턴 카탈로그-106
   4.4.1 화려함에 사로잡히다-106
   4.4.2 단순함에 사로잡히다-107
   4.4.3 성능 튜닝 도사-108
   4.4.4 민간 튜닝-109
   4.4.5 안되면 조상 탓-111
   4.4.6 숲을 못 보고 나무만 보다-112
   4.4.7 내 데스크톱이 UAT-114
   4.4.8 운영 데이터처럼 만들기는 어려워-116
4.5 인지 편향과 성능 테스트-118
   4.5.1 환원주의-119
   4.5.2 확증 편향-119
   4.5.3 전운의 그림자(행동 편향)-120
   4.5.4 위험 편향-121
   4.5.5 엘스버그 역설-122
4.6 마치며-123

CHAPTER 5 마이크로벤치마킹과 통계
5.1 자바 성능 측정 기초-126
5.2 JMH 소개-131
   5.2.1 될 수 있으면 마이크로벤치마크하지 말지어다<실화>-131
   5.2.2 휴리스틱: 마이크로벤치마킹은 언제 하나?-132
   5.2.3 JMH 프레임워크-134
   5.2.4 벤치마크 실행-135
5.3 JVM 성능 통계-142
   5.3.1 오차 유형-143
   5.3.2 비정규 통계학-148
5.4 통계치 해석-152
5.5 마치며-157

CHAPTER 6 가비지 수집 기초
6.1 마크 앤 스위프-160
   6.1.1 가비지 수집 용어-162
6.2 핫스팟 런타임 개요-164
   6.2.1 객체를 런타임에 표현하는 방법-165
   6.2.2 GC 루트 및 아레나-169
6.3 할당과 수명-170
   6.3.1 약한 세대별 가설-170
6.4 핫스팟의 가비지 수집-173
   6.4.1 스레드 로컬 할당-173
   6.4.2 반구형 수집-174
6.5 병렬 수집기-176
   6.5.1 영 세대 병렬 수집-176
   6.5.2 올드 세대 병렬 수집-178
   6.5.3 병렬 수집기의 한계-179
6.6 할당의 역할-181
6.7 마치며-187

CHAPTER 7 가비지 수집 고급
7.1 트레이드오프와 탈착형 수집기-190
7.2 동시 GC 이론-191
   7.2.1 JVM 세이프포인트-192
   7.2.2 삼색 마킹-194
7.3 CMS-197
   7.3.1 CMS 작동 원리-198
   7.3.2 CMS 기본 JVM 플래그-201
7.4 G1-201
   7.4.1 G1 힙 레이아웃 및 영역-202
   7.4.2 G1 알고리즘 설계-204
   7.4.3 G1 단계-205
   7.4.4 G1 기본 JVM 플래그-206
7.5 셰난도아-207
   7.5.1 동시 압착-209
   7.5.2 셰난도아 얻기-209
7.6 C4(아줄 징)-210
   7.6.1 로드값 배리어-212
7.7 밸런스드(IBM J9)-214
   7.7.1 J9 객체 헤더-215
   7.7.2 밸런스드에서 큰 배열 처리하기-217
   7.7.3 NUMA와 밸런스드-218
7.8 레거시 핫스팟 수집기-219
   7.8.1 Serial 및 Serial Old-219
   7.8.2 증분 CMS(iCMS)-219
   7.8.3 디프리케이트되어 사라진 GC 조합-220
   7.8.4 엡실론-221
7.9 마치며-222

CHAPTER 8 GC 로깅, 모니터링, 튜닝, 툴
8.1 GC 로깅 개요-223
   8.1.1 GC 로깅 켜기-224
   8.1.2 GC 로그 vs JMX-225
   8.1.3 JMX의 단점-226
   8.1.4 GC 로그 데이터의 장점-227
8.2 로그 파싱 툴-228
   8.2.1 센섬-228
   8.2.2 GCViewer-231
   8.2.3 같은 데이터를 여러 가지 형태로 시각화하기-232
8.3 GC 기본 튜닝-233
   8.3.1 할당이란?-235
   8.3.2 중단 시간이란?-238
   8.3.3 수집기 스레드와 GC 루트-239
8.4 Parallel GC 튜닝-242
8.5 CMS 튜닝-243
   8.5.1 단편화로 인한 CMF-246
8.6 G1 튜닝-247
8.7 jHiccup-249
8.8 마치며-252

CHAPTER 9 JVM의 코드 실행
9.1 바이트코드 해석-254
   9.1.1 JVM 바이트코드 개요-257
   9.1.2 단순 인터프리터-264
   9.1.3 핫스팟에 특정한 내용-266
9.2 AOT와 JIT 컴파일-268
   9.2.1 AOT 컴파일-268
   9.2.2 JIT 컴파일-269
   9.2.3 AOT 컴파일 vs JIT 컴파일-270
9.3 핫스팟 JIT 기초-272
   9.3.1 kiass 워드, vtable, 포인터 스위즐링-272
   9.3.2 JIT 컴파일 로깅-273
   9.3.3 핫스팟 내부의 컴파일러-275
   9.3.4 핫스팟의 단계별 컴파일-276
9.4 코드 캐시-277
   9.4.1 단편화-278
9.5 간단한 JIT 튜닝법-279
9.6 마치며-280

CHAPTER 10 JIT 컴파일의 세계로
10.1 JITWatch란?-281
   10.1.1 기본적인 JITWatch 뷰-283
   10.1.2 디버그 JVM과 hsdis-288
10.2 JIT 컴파일 개요-289
10.3 인라이닝-290
   10.3.1 인라이닝 제한-291
   10.3.2 인라이닝 서브시스템 튜닝-293
10.4 루프 펼치기-294
   10.4.1 루프 펼치기 정리-297
10.5 탈출 분석-297
   10.5.1 힙 할당 제거-298
   10.5.2 락과 탈출 분석-300
   10.5.3 탈출 분석의 한계-302
10.6 단형성 디스패치-305
10.7 인트린직-310
10.8 온-스택 치환-312
10.9 세이프포인트 복습-315
10.10 코어 라이브러리 메서드-316
   10.10.1 인라이닝하기 적합한 메서드 크기 상한-316
   10.10.2 컴파일하기 적합한 메서드 크기 상한-321
10.11 마치며-323

CHAPTER 11 자바 언어의 성능 향상 기법
11.1 컬렉션 최적화-326
11.2 List 최적화-328
   11.2.1 ArrayList-329
   11.2.2 LinkedList-330
   11.2.3 ArrayList vs LinkedList-330
11.3 Map 최적화-332
   11.3.1 HashMap-332
   11.3.2 TreeMap-335
   11.3.3 MultiMap은 없어요-336
11.4 Set 최적화-336
11.5 도메인 객체-337
11.6 종료화 안 하기-341
   11.6.1 무용담: 정리하는 걸 깜빡하다-343
   11.6.2 왜 종료화로 문제를 해결하지 않을까?-343
   11.6.3 try-with-resources-347
11.7 메서드 핸들-352
11.8 마치며-356

CHAPTER 12 동시 성능 기법
12.1 병렬성이란?-359
   12.1.1 자바 동시성 기초-361
12.2 JMM의 이해-364
12.3 동시성 라이브러리 구축-370
   12.3.1 Unsafe-372
   12.3.2 아토믹스와 CAS-373
   12.3.3 락과 스핀락-375
12.4 동시 라이브러리 정리-376
   12.4.1 java.utill.concurrent 락-376
   12.4.2 읽기/쓰기 락-378
   12.4.3 세마포어-380
   12.4.4 동시 컬렉션-381
   12.4.5 래치와 배리어-382
12.5 실행자와 태스크 추상화-384
   12.5.1 비동기 실행이란?-384
   12.5.2 ExecutorService 선택하기-386
   12.5.3 포크/조인-387
12.6 최신 자바 동시성-389
   12.6.1 스트림과 병렬 스트림-390
   12.6.2 락-프리 기법-391
   12.6.3 액터 기반 기법-392
12.7 마치며-394

CHAPTER 13 프로파일링
13.1 프로파일링 개요-398
13.2 샘플링과 세이프포인팅 편향-399
13.3 개발자용 프로파일링 툴-102
   13.3.1 VisualVM 프로파일러-402
   13.3.2 JProfiler-403
   13.3.3 YourKit-409
   13.3.4 JFR/JMC-410
   13.3.5 운영 틀-413
13.4 최신 프로파일러-417
13.5 할당 프로파일링-422
13.6 힙 덤프 분석-429
   13.6.1 hprof-431
13.7 마치며-432

CHAPTER 14 고성능 로깅 및 메시징
14.1 로깅-434
   14.1.1 로깅 벤치마크-435
14.2 성능에 영향이 적은 로거 설계하기-439
14.3 리얼 로직 라이브러리를 이용해 지연 줄이기-442
   14.3.1 아그로나-443
   14.3.2 단순 바이너리 인코딩-450
   14.3.3 에어론-454
   14.3.4 에어론의 설계 개념-457
14.4 마치며-463

CHAPTER 15 자바 9와 미래
15.1 자바 9에서 소소하게 개선된 성능-466
   15.1.1 코드 캐시 세그먼트화-466
   15.1.2 콤팩트 스트링-467
   15.1.3 새로운 스트링 연결-468
   15.1.4 C2 컴파일러 개선-470
   15.1.5 G1 새 버전-472
15.2 자바 10과 그 이후 버전-472
   15.2.1 새로운 릴리즈 절차-472
   15.2.2 자바 10-473
15.3 자바 9 Unsafe 그 너머-475
   15.3.1 자바 9의 VarHandle-477
15.4 발할라 프로젝트와 값 타입-478
15.5 그랄과 트러플-483
15.6 바이트코드의 향후 발전 방향-485
15.7 동시성의 향후 발전 방향-488
15.8 마치며-490