나에게 필요한 지식과 기술을 검색해 보세요.

자바 퍼포먼스 튜닝 (개정판): 성능 향상을 위한 205가지 핵심 기법

지은이

잭 시라지

옮긴이

서민구

출간일

2003.10.06

레벨

중고급

평점

5(2명)

정가

28,000

판매가

25,200

총 결제 금액

10%

25,200

적립 예정

1,260P

최소의 노력으로 최고의 속도를 만드는 진짜 튜닝 기법

자바가 처음 출현한 이래, 자바 프로그램의 성능은 언제나 중요한 문제였다. 최근 수년간 자바의 성능은 극적으로 개선되었으나, 좋은 애플리케이션, 특히 J2EE 애플리케이션의 경우에는 여전히 튜닝이 중요한 문제로 남아있다. 가장 빠르게 수행되는 코드를 만드는 일은 아직도 요원하다.

『자바 퍼포먼스 튜닝』의 개정판인 이 책은 모든 종류의 자바 성능 문제를 해결하는 데 필요한 폭넓고 중요한 지침을 제공한다. 실제 세계의 예를 사용하여 튜닝 절차를 상세하게 기술하면서 객체 생성, 문자열 대신 사용하는 배열 등 코드의 성능을 높일 수 있는 갖가지 기법을 다룬다.

J2EE 애플리케이션 튜닝은 J2SE 애플리케이션 튜닝과 많은 유사점이 있지만, J2EE의 성능 향상을 위해 다뤄야하는 중요하고 특별한 고려사항이 있다. 이러한 이유로, 개정판에서는 J2EE 애플리케이션의 일반적인 튜닝, JDBC 튜닝, 서블릿과 JSP, EJB에 대한 네 가지 분야의 설명을 추가했다. 그 외에도 컬렉션 질의 최적화, 가비지 컬렉션 통계, 웹 서비스, NIO, 정규 표현식, 단언(assertion)과 같은 내용도 포함했다.

마지막으로 무엇을 튜닝해야 하는지, 무엇은 튜닝해서는 안 되는지에 대한 조언을 하고 있으며, 동시에 최소한의 코드 수정을 통해 큰 효과를 볼 수 있는 기술들을 강조한다. 이 책은 프로그램의 아키텍처를 손상시키지 않으면서 튜닝할 수 있는 핵심적인 지침을 선사한다.


[ 관련기사 ]
더 빠른 자바 애플리케이션을 만들어보고 싶다면?



[ 이 책의 주요 내용 ]
  • 성능 계획 작성
  • 프로파일링 도구를 사용한 프로그램의 행동 분석 정보 수집
  • 튜닝 이전의 병목현상 식별
  • 프로그램에서 생성하는 객체의 수 최소화(J2EE 애플리케이션에 있어서 특히 중요한 문제다)
  • 문자열, I/O, 스레드 사용의 최적화
  • 정렬을 비롯한 작업에서 사용할 수 있는 최적의 알고리즘
  • 분산 시스템 성능 최적화
  • 서블릿과 JSP 속도 개선
  • JDBC 사용의 구조 개선
  • EJB 성능 최적화를 위한 효율적인 디자인 패턴

저자

목차

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
    프로파일러
    최적화 도구

리뷰

28,000

10%

25,200