최소의 노력으로 최고의 속도를 만드는 진짜 튜닝 기법
자바가 처음 출현한 이래, 자바 프로그램의 성능은 언제나 중요한 문제였다. 최근 수년간 자바의 성능은 극적으로 개선되었으나, 좋은 애플리케이션, 특히 J2EE 애플리케이션의 경우에는 여전히 튜닝이 중요한 문제로 남아있다. 가장 빠르게 수행되는 코드를 만드는 일은 아직도 요원하다.1장. 개요
왜 느린가
튜닝 게임
시스템 제한 사항, 튜닝 대상
튜닝 전략
성능 인지
튜닝 시작
측정 기준
불필요한 튜닝 방지
성능 점검 목록
2장. 프로파일링 도구
측정과 런타임
가비지 컬렉션
메소드 호출
객체 생성 프로파일링
잘못된 메모리 사용 모니터링
클라이언트/서버 통신
성능 점검 목록
3장. JDK 개선
가비지 컬렉션
힙 튜닝
전체적인 튜닝
힙 튜닝 방법
메모리 공유
JDK 클래스 대체
더 빠른 가상 머신
더 나은 컴파일러
썬의 컴파일러와 런타임 최적화
고유 머신 코드 컴파일 50
고유 메소드 호출
무압축 ZIP/JAR 파일
성능 점검 목록
4장. 객체 생성
객체 생성 통계
객체 재사용
참조 객체
가비지 컬렉션 피하기
초기화
빠른/늦은 초기화
성능 점검 목록
5장. 문자열
컴파일과 런타임시 문자열 값 부여 비교
컴파일과 런타임할 때 해결할 문자열
문자열 변환
문자열과 문자 배열
문자열 비교와 검색
국제화 문자열 정렬
성능 점검 목록
6장. 예외, 단언, 캐스트, 변수
예외
단언(assert)
캐스트
변수
메소드 매개변수
성능 점검 목록
7장. 반복문, 스위치, 재귀
반복
반복문 수행
예외로 인해 종료된 반복문
스위치
재귀
재귀와 스택
성능 점검 목록
8장. 입출력, 로깅, 콘솔 출력
System.out 대체
로깅
입출력 개선
직렬화
객체 클러스터링과 입출력 연산 횟수 계산
압축
NIO
성능 점검 목록
9장. 구현
불필요한 정렬 과부하 방지
효율적인 정렬 프레임워크
O(nlogn)보다 너 나은 정렬
성능 점검 목록
10장. 스레딩
사용자 인터페이스 스레드와 기타 스레드
경쟁 조건(race condition)
교착상태(deadlock)
동기화 과부하
멀티스레드 시간 측정
원자적 접근과 할당
스레드 풀
로드 밸런싱
스레드 문제해결 전략
성능 점검 목록
11장. 적절한 데이터 구조와 알고리즘
컬렉션
자바 2 컬렉션
Hashtables과 HashMaps
질의 최적화
LinkedLists와 ArrayLists의 비교
RandomAccess 인터페이스
접근 캐싱
캐싱 예
부분적으로 일치하는 문자열의 인덱스 검색
검색 트리
성능 점검 목록
12장. 분산 컴퓨팅
도구(Tools)
메시지 축소
통신 레이어 비교
캐싱
일괄 처리 I
애플리케이션 파티셔닝
일괄 처리 II
저수준 통신 최적화
분산 가비지 콜렉션
데이터베이스
웹 서비스
성능 점검 목록
13장. 언제 최적화해야 하는가
최적화를 하지 않아야 할 때
클래스 라이브러리와 빈즈 튜닝
분석
디자인과 아키텍처
배포 후의 튜닝
성능에 영향을 미치는 또 다른 요소
성능 계획
성능 점검 목록
14장. 운영체제와 네트워크 성능 향상
하드 디스크
CPU
램
네트워크 입출력
성능 점검 목록
15장. J2EE 성능 튜닝
성능 계획
J2EE 모니터링/프로파일링 도구들
측정 : 무엇을, 어디서, 어떻게
부하 테스팅
사용자 지각
클러스터링과 로드 밸런싱
JMS 튜닝
성능 점검 목록
16장. JDBC 튜닝
JDBC 성능 측정
JDBC 튜닝
성능 점검 목록
17장. 서블릿과 JSP 튜닝
SingleThreadModel을 사용하지 마라
효율적인 페이지 생성과 출력
바디 태그
캐시 태그
HttpSession
압축
그외의 성능 향상 팁
케이스 스터디: Ace"의 하드웨어 SPECmine 도구
성능 점검 목록
18장. EJB 튜닝
주요 디자인 지침
성능 최적화 디자인 패턴
애플리케이션 서버
EJB 튜닝 조언
사례 연구: 펫 스토어(The Pet Store)
사례 연구: 엘리트 닷 컴(Elite.com)
성능 점검 목록
19장. 추가자료
주요 자료
서적
잡지
인터넷 URL
프로파일러
최적화 도구
자료명 | 등록일 | 다운로드 |
---|---|---|
![]() |
2016-04-06 | 다운로드 |