아무 생각 없이 짠 코드가 얼마나 프로그램의 성능을 저하시키는지 일깨워준 책이었습니다.
앞으로는 버그 없는 프로그램 뿐만이 아닌 성능 좋은 프로그램 개발에도 관심을 가져야쥐~~~
디버깅은 쉽게, 속도는 빠르게!
자바가 처음 등장했을 때부터 성능은 자바 개발자에게 최대 관심사였다. 최근에는 초창기보다 많이 개선되었지만, 여전히 성능은 좋은 프로그램을 만들기 위한 본질적인 문제로 남아 있다. 튜닝은 좋은 디자인과 프로그래밍 기법을 따르고, 병목현상을 피해 자바를 충분히 빠른 속도로 수행하도록 하는 것이므로, 최상의 결과를 내기 위해서는 반드시 필요하다.
이 책에서는 포괄적이면서 꼭 필요한 튜닝 기법을 제시하여 성능 문제를 해결할 수 있도록 하고 있다. 즉, 예제에서 실용적인 튜닝 기법을 보여주고 있다는 것이 큰 특징이다. 세부적으로는 객체 생성을 줄여야 한다든지, 스트링을 배열로 바꾼다든지, 그 외 코드를 최적화할 수 있는 기법을 알려준다.
또한 이 책은 어떤 부분을 최적화하고, 어떤 부분을 하지 말아야 할 것인지에 관해 다양한 조언을 한다. 능률적이고 효과적으로 일하는 방법을 제시하여 코드가 좀더 견고하고, 관리하기 쉽고, 빠른 속도를 낼 수 있도록 한다.
주요 내용
역자서문
차례
서문
1장. 서론
왜 느린가?
최적화란 게임
시스템의 한계와 최적화할 부분
최적화 방책
감지하는 성능
최적화의 시작
측정 단위는?
필요한 부분만 최적화
성능 확인표
2장. 분석 도구
측정과 시간
가비지 컬렉션
메소드 호출
객체 생성 분석
메모리 사용량 감시
클라이언트/서버 통신
성능 확인표
3장. JDK 개선점
가비지 컬렉션
JDK 클래스 대치
더 빠른 가상 머신
최적화를 더 잘하는 컴파일러
썬의 최적화 컴파일러와 최적화한 수행 환경
기계어로 컴파일
네이티브 메소드 호출
무압축 ZIP/JAR 파일
성능 확인표
4장. 객체 생성
객체 생성의 통계수치
객체 재사용
가비지 컬렉션 피하기
초기화
미리 초기화와 추후 초기화
성능 확인표
5장. 스트링
스트링의 성능 효과
컴파일시, 실행시 스트링 값 부여 비교
스트링으로 변환
스트링과 문자열
스트링 비교와 검색
국제화한 스트링 정렬
성능 확인표
6장. 예외 처리, 캐스팅, 변수
예외처리
캐스팅
변수
메소드 매개변수
성능 확인표
7장. 루프와 스위치
Java.io.Reader 변환기
예외로 종료되는 루프
스위치
재귀
재귀와 스택
성능 확인표
8장. I/O, 로깅, 콘솔 출력
System.out 대치
로깅
I/O를 더 빠르게
직렬화
객체 클러스터링과 I/O 회수 계산
압축
성능 확인표
9장. 정렬
불필요한 정렬 오버헤드 피하기
효율적인 정렬 프레임워크
O(nlogn)보다 더 나은 정렬
성능 확인표
10장. 스레딩
사용자 인터페이스 스레드와 기타 스레드
레이스 컨디션
데드락
동기화 오버헤드
멀티스레드 실험 시간 측정
아토믹 액세스와 값 부여
스레드 풀
로드 조절
스레드를 이용한 문제 해결법
성능 확인표
11장. 적합한 데이터 구조체와 알고리즘
컬렉션
자바 2 컬렉션
해시 테이블과 해시맵
캐시의 이용
캐싱 예제 I
캐싱 예제 II
부분적으로 동일한 스트링에서 인덱스 찾기
서치 트리
성능 확인표
12장. 분산 컴퓨팅
도구
메시지 감소
통신층 비교
캐시의 이용
일괄 처리 I
애플리케이션 분할
일괄 처리 II
저레벨 통신 최적화
분산 가비지 컬렉션
데이터베이스
성능 확인표
13장. 최적화할 시기는?
최적화하면 안될 때
최적화 클래스 라이브러리와 빈
분석
디자인과 구성
배포 후 최적화
성능에 영향을 미치는 기타 요인
성능 확인표
14장. 운영체제와 네트워크 성능 향상
하드 디스크
CPU
RAM
네트워크 I/O
성능 확인표
15장. 추가 자료
서적
잡지
URL
분석기
최적기
찾아보기
자료명 | 등록일 | 다운로드 |
---|---|---|
예제소스 | 2016-04-06 | 다운로드 |