book/자바 최적화

    [자바 최적화] 자바 언어의 성능 향상 기법

    [자바 최적화] 자바 언어의 성능 향상 기법

    자바 최적화 책 정리 자바 최적화(Optimizing Java) | 벤저민 J. 에번스 - 교보문고 자바 최적화(Optimizing Java) | 자바 애플리케이션 성능을 한 단계 높여줄 튜닝 이야기성능 튜닝은 실험과학이다. 추측과 구전 튜닝에 의존할 일이 아니다. 이 책은 복잡한 기술 스택을 다루는 중/고 product.kyobobook.co.kr 컬렉션 최적화 ✅ 자바 최적화의 한계 자바는 객체를 생성하면 객체를 가리키는 레퍼런스와(스택), 객체 자체(힙)를 따로 저장한다. -> 이렇게 레이아웃을 나누는 방식은 C/C++ 형식의 배열이나 벡터를 사용하는 것만큼 성능을 얻을 수 없게 한다. ✅ 자바 컬렉션 컬렉션이 애플리케이션 성능에 전체적인 영향을 끼칠 수 있다는 사실을 인식해야 한다. List 최적..

    [자바 최적화] JIT 컴파일의 세계로

    [자바 최적화] JIT 컴파일의 세계로

    자바 최적화 책 정리 자바 최적화(Optimizing Java) | 벤저민 J. 에번스 - 교보문고 자바 최적화(Optimizing Java) | 자바 애플리케이션 성능을 한 단계 높여줄 튜닝 이야기성능 튜닝은 실험과학이다. 추측과 구전 튜닝에 의존할 일이 아니다. 이 책은 복잡한 기술 스택을 다루는 중/고 product.kyobobook.co.kr JITWatch란? ✅ JITWatch 이 책의 필자 중 한 사람인 크리스 뉴랜드가 개인 프로젝트로 구축한 오픈 소스 자바FX 툴. -> 실행 중인 자바 애플리케이션이 생성한 핫스팟 컴파일 상세 로그를 파싱/분석하여 그 결과를 자바FX GUI 형태로 보여준다. -> 애플리케이션을 실행할 때 다음 플래그를 추가해야 JVM이 JITWatch에 입력할 로그를 생성..

    [자바 최적화] JVM의 코드 실행

    [자바 최적화] JVM의 코드 실행

    자바 최적화 책 정리 자바 최적화(Optimizing Java) | 벤저민 J. 에번스 - 교보문고 자바 최적화(Optimizing Java) | 자바 애플리케이션 성능을 한 단계 높여줄 튜닝 이야기성능 튜닝은 실험과학이다. 추측과 구전 튜닝에 의존할 일이 아니다. 이 책은 복잡한 기술 스택을 다루는 중/고 product.kyobobook.co.kr 바이트코드 해석 ✅ 평가 스택 JVM 인터프리터는 일종의 스택 머신처럼 작동한다. -> 작업할 값을 모두 평가 스택에 놓고 스택 최상단에 위치한 값을 변환하는 식으로 작동한다. JVM은 다음 세 공간에 주로 데이터를 담아 놓는다. 평가 스택: 메서드별로 하나씩 생성된다. 로컬 변수: 결과를 임시 저장한다(특정 메서드별로 존재한다). 객체 힙: 메서드끼리, 스..

    [자바 최적화] GC 로깅, 모니터링, 튜닝, 툴

    [자바 최적화] GC 로깅, 모니터링, 튜닝, 툴

    자바 최적화 책 정리 자바 최적화(Optimizing Java) | 벤저민 J. 에번스 - 교보문고 자바 최적화(Optimizing Java) | 자바 애플리케이션 성능을 한 단계 높여줄 튜닝 이야기성능 튜닝은 실험과학이다. 추측과 구전 튜닝에 의존할 일이 아니다. 이 책은 복잡한 기술 스택을 다루는 중/고 product.kyobobook.co.kr GC 로깅 개요 GC 로깅 켜기 ✅ GC 스위치 -Xloggc:gc.log -XX:+PrintGCDetails -XX:+PrintTenuringDistribution -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps Flag Effect -Xloggc:gc.log GC 이벤트에 로깅할 파일을 지정한다. -XX:+PrintGCD..

    [자바 최적화] 가비지 수집 고급

    [자바 최적화] 가비지 수집 고급

    자바 최적화 책 정리 자바 최적화(Optimizing Java) | 벤저민 J. 에번스 - 교보문고 자바 최적화(Optimizing Java) | 자바 애플리케이션 성능을 한 단계 높여줄 튜닝 이야기성능 튜닝은 실험과학이다. 추측과 구전 튜닝에 의존할 일이 아니다. 이 책은 복잡한 기술 스택을 다루는 중/고 product.kyobobook.co.kr 트레이드오프와 탈착형 수집기 ✅ GC의 트레이드오프 개발자는 가비지 수집기 선정 시 다음 항목을 충분히 고민해야 한다. 중단 시간 처리율 중단 빈도 회수 효율 중단 일관성 -> 애플리케이션의 특징에 따라 이러한 트레이드오프와 관심사를 면밀히 검토해야 한다. -> 또한, GC는 탈착형 서브시스템으로 취급되기 때문에, 각 JVM 구현체와 애플리케이션의 특징에 따..

    [자바 최적화] 가비지 수집 기초

    [자바 최적화] 가비지 수집 기초

    자바 최적화 책 정리 자바 최적화(Optimizing Java) | 벤저민 J. 에번스 - 교보문고 자바 최적화(Optimizing Java) | 자바 애플리케이션 성능을 한 단계 높여줄 튜닝 이야기성능 튜닝은 실험과학이다. 추측과 구전 튜닝에 의존할 일이 아니다. 이 책은 복잡한 기술 스택을 다루는 중/고 product.kyobobook.co.kr 마크 앤 스위프 ✅ 마크 앤 스위프: GC의 기본 알고리즘 할당 리스트를 순회하면서 마크 비트(mark bit)를 지운다. 할당 리스트: 할당됐지만, 아직 회수되지 않은 객체 리스트 마크 비트: 객체가 실제로 사용 중인지 표시 GC 루트부터 살아 있는 객체를 찾는다. 이렇게 찾은 객체마다 마크 비트를 세팅한다. 할당 리스트를 순회하면서 마크 비트가 세팅되지 ..

    [자바 최적화] 마이크로벤치마킹과 통계

    [자바 최적화] 마이크로벤치마킹과 통계

    자바 최적화 책 정리 자바 최적화(Optimizing Java) | 벤저민 J. 에번스 - 교보문고 자바 최적화(Optimizing Java) | 자바 애플리케이션 성능을 한 단계 높여줄 튜닝 이야기성능 튜닝은 실험과학이다. 추측과 구전 튜닝에 의존할 일이 아니다. 이 책은 복잡한 기술 스택을 다루는 중/고 product.kyobobook.co.kr 자바 성능 측정 기초 ✅ 자바 벤치마크는 어려워 우리의 목표는 벤치마크로 공정한 테스트를 하는 것 -> 가급적 시스템의 어느 한 곳만 변경하고 다른 외부 요인은 벤치마크 안에 두고 통제하고자 함 그러나 자바 코드 실행은 JIT 컴파일러, 메모리 관리, 그 밖의 서브 시스템과 완전히 떼어넣고 생각할 수 없다. -> 이처럼 자바 런타임시의 변동 요인을 고려하며 ..

    [자바 최적화] 성능 테스트 패턴 및 안티패턴

    자바 최적화 책 정리 자바 최적화(Optimizing Java) | 벤저민 J. 에번스 - 교보문고 자바 최적화(Optimizing Java) | 자바 애플리케이션 성능을 한 단계 높여줄 튜닝 이야기성능 튜닝은 실험과학이다. 추측과 구전 튜닝에 의존할 일이 아니다. 이 책은 복잡한 기술 스택을 다루는 중/고 product.kyobobook.co.kr 성능 테스트 유형 ✅ 성능 테스트를 기획하는 요령 모든 성능테스트는 그 목표가 명확해야 한다. -> 테스트로 확인하고 싶은 정량적 질문 리스트와, 그 테스트가 대상 애플리케이션 입장에서 중요한 이유를 생각해보자. 지연 테스트 ✅ Latency test: 종단 트랜잭션에 걸리는 시간은? 가장 일반적인 성능 테스트다. -> '고객이 트랜잭션을 얼마나 오래 참고 ..