Java 최적화 - Chapter 1

이유진·2024년 1월 8일
post-thumbnail

2024년 1월부터 3개월 동안 진행되는 스터디에 참가했다.
우리팀은 Java 최적화(Optimizing Java)를 주제로 정했다.

Chapter1만 읽어도 내용이 쉬워보이지는 않는다.
책 내용을 정리하기 보단, 책을 읽으면서 부족한 배경지식을 정리하려고 한다!

메서드 디스패치 (Method Dispatch)

어떤 메서드를 호출할지 결정하고 실행하는 과정

자동 인라이닝 (Automatic Managed Inlining)

메서드 호출대신, 메서드 호출부에 직접 삽입하는 것

GPT의 말을 정리하자면,

  • JVM에서 핫 스폿 메서드(자주 호출되는 메서드)를 식별하고, 해당 메서드를 호출하는 곳에 직접 삽입한다
  • 이렇게 되면 메서드 호출 오버헤드를 줄여 성능향상에 도움이 된다
  • 너무 복잡한 메서드는 자동 인라이닝에 적합하진 않다

JIT(Just-In-Time, 적시) Compiler

JIT (Just-In-Time) 컴파일러는 런타임 시 기본 시스템 코드로 바이트 코드를 컴파일하여 Java™ 애플리케이션의 성능을 향상시키는 런타임 환경의 컴포넌트입니다 (출처: IBM Docs)

바이트 코드를 시스템 코드로 컴파일

Java 프로그램 작동 순서

Java code(.java) ➡️ (javac. java compiler) ➡️ byte code(.class, JVM이 이해할 수 있는 코드) ➡️ (JIT Compiler) ➡️ native code(시스템 코드. CPU가 이해할 수 있는 코드)

profile
BackEnd Developer

0개의 댓글