핫스팟 (가상 머신)

핫스팟(HotSpot)은 데스크톱과 서버 컴퓨터를 위한 자바 가상 머신으로, 자바 핫스팟 퍼포먼스 엔진(Java HotSpot Performance Engine)이라는 이름으로 출시되었으며, 오라클에 의해 유지 보수 및 배포가 이루어지고 있다. JIT 컴파일과 적응 최적화(adaptive optimization)와 같은 방식들을 통해 성능을 개선한 것이 특징이다.

역사 
1999년 4월 27일 첫 출시된 자바 핫스팟 퍼포먼스 엔진은 본래 롱뷰 테크놀로지스(Longview Technologies)가 "Animorphic"로 개발한 스트롱토크(Strongtalk)라는 이름의 스몰토크 프로그래밍 언어의 구현체의 기술을 기반으로 한다. 썬 연구 프로젝트의 하나인 셀프라는 언어는 일찍이 Animorphic의 가상 머신 기술을 성공적으로 사용하였다. 1997년, 썬 마이크로시스템즈는 Animorphic을 구매하였다.

Animorphic을 인수한 직후에 썬은 자바 가상 머신을 위한 새로운 JIT 컴파일러를 작성하기로 결정한다. 이 새로운 컴파일러는 소프트웨어의 동작에서 착안하여 핫스팟(HotSpot)이라는 이름을 사용하기로 한다: 자바 바이트코드를 실행하므로, 종종 또는 반복적으로 실행되는 핫스팟을 위한 프로그램 성능을 계속적으로 분석한다. 그 뒤 최적화를 목표로 함으로써 성능에 덜 민감한 코드에 대해 부하를 최소화하여 고성능 실행을 이룩한다. 한 보고서에 따르면 JVM은 일부 벤치마크에서 일부 C++, C 코드의 성능에 필적한다.

기능 
썬의 JRE는 2개의 가상 머신을 갖추고 있는데, 하나는 클라이언트, 나머지 하나는 서버이다. 클라이언트 버전은 빠른 로딩을 위해 튜닝되어 있다. 해석하는 역할을 담당한다. 서버 버전은 더 느리게 로드하며, 더 높은 성능을 위해 매우 최적화된 JIT 컴파일을 생성하는데 온 노력을 집중한다.

핫스팟은 C++로 작성되어 있다. 소스 코드는 대략 250,000줄의 코드를 포함하고 있다. 핫스팟은 다음을 제공한다:
 자바 클래스로더
 자바 바이트코드 인터프리터
 클라이언트 및 서버 가상 머신. 자신들의 개별 용도에 최적화됨.
 일부 쓰레기 수집기
 지원 런타임 라이브러리 집합

같이 보기 
 OpenJDK

각주

외부 링크 
 

자바 가상 머신
C++로 작성된 자유 소프트웨어
오라클 소프트웨어
썬 마이크로시스템즈 소프트웨어
어셈블리어 소프트웨어