럿고의 개발 노트
자바 속도 해결 방안(JIT 컴파일러, HotSpot) 본문
자바 속도 해결 방안
JIT 컴파일러
외부 메커니즘없이 코드의 무효화, 재 컴파일 및 저장을 관리하므로 훨씬 빠른 실행이 가능
JIT 컴파일 장점
JIT compilation works transparently(투명하게 동작)
JIT compilation speeds up the performance of Java classes
(클래스 성능 향상)JIT stored compiled code avoids recompilation of Java programs across sessions or instances when it is known that semantically the Java code has not changed.
(저장된 컴파일 코드는 의미적으로 Java코드가 변경되지 않은 것으로 알려진 경우 세션 또는 인스턴스에서 Java 프로그램을 다시 컴파일 하지 않음)JIT compilation does not require a C compiler
(C컴파일러가 필요하지 않음)JIT compilation eliminates some of the array bounds checking
(배열 범위 검사 중 일부를 제거)JIT compilation eliminates common sub-expressions within blocks
(배열 범위 검사 중 일부를 제거)JIT compilation eliminates empty methods
(빈 메소드를 제거)JIT compilation defines the region for register allocation of local variables
(로컬 변수의 레지스터 할당 영역을 정의)JIT compilation eliminates the need of flow analysis
(흐름 분석의 필요성을 제거)JIT compilation limits inline code
(인라인 코드를 제한)
HotSpot
C++로 작성된 클라이언트와 서버 컴퓨터를 위한 자바 가상 머신으로, Java HotSpot Performance Engine이라는 이름으로 출시되었다.
Java HotSpot Client VM : 응용프로그램 시작 시간과 메모리 공간을 줄여 클라이언트 환경에서 응용 프로그램을 실행할 때 최상의 성능을 발휘하도록 조정
Java HotSpot Server VM : 서버 환경에서 실행되는 응용 프로그램의 최대 프로그램 실행 속도를 위해 설계
HotSpot에서는 모든 객체들을 Garbage Collection에 의해 직접 접근됨.
Java HotSpot VM Architecture
Uniform object model(균등한 객체 모델)
Interpreted, compiled, and native frames all use the same stack
(인터프리터, 컴파일러, 기본 프레임은 모두 같은 스택을 사용)Preemptive multithreading based on native threads
(기본 스레드의 기반의 선점형 멀티 스레딩)Accurate generational and compacting garbage collection
(엄격한 세대, 압축된 가바지 컬렉션)Ultra-fast thread synchronization
(초고속 빠른 스레드 동기화)Dynamic deoptimization and aggressive compiler optimizations
(동적 복원, 적극적인 컴파일러 최적화)System-specific runtime routines generated at VM startup time
(VM 시작시 생성되는 시스템 별 런타임 루틴)Compiler interface supporting parallel compilations
(병렬 컴파일을 지원하는 컴파일러 인터페이스)Run-time profiling focuses compilation effort only on "hot" methods
(런타임 프로파일링은 'Hot'메소드에만 컴파일 노력을 집중)
출처
'Java Note' 카테고리의 다른 글
MVC Pattern 이란? (0) | 2020.02.17 |
---|---|
Java API (0) | 2020.01.30 |
JVM, JDK, JRE (0) | 2020.01.25 |
자바(Java)란? (0) | 2020.01.23 |
템플릿 메소드 패턴(Template Method Pattern) (0) | 2019.12.26 |