핫스팟 (가상 머신)

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

자바 핫스팟 가상 머신
개발자오라클 (과거에는 썬 마이크로시스템즈)
발표일1999년 4월 27일(25년 전)(1999-04-27)[1]
안정화 버전
23.25-b01 / 2016년 1월 1일(8년 전)(2016-01-01)
프로그래밍 언어C++
운영 체제크로스 플랫폼
종류자바 가상 머신
라이선스사유 (초기 버전), GNU GPL (현재)
웹사이트openjdk.java.net/groups/hotspot

역사

편집

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

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

기능

편집

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

핫스팟은 C++로 작성되어 있다. 소스 코드는 대략 250,000줄의 코드를 포함하고 있다.[5] 핫스팟은 다음을 제공한다:

같이 보기

편집

각주

편집
  1. “Sun Announces Availability of the Java HotSpot Performance Engine”. 《Press Release》. Sun Microsystems. 2013년 11월 1일에 원본 문서에서 보존된 문서. 2013년 3월 26일에 확인함. 
  2. “Sun's Gosling Previews Hotspot Java Virtual Machine”. ComputerGram. 1998년 2월 13일. 2008년 4월 20일에 확인함. 
  3. “Cliff Click on Azul's Pauseless GC, Zing, JVM Languages”. InfoQ. 2011년 1월 20일. 2016년 5월 10일에 확인함. [...] Anamorphic was acquired by Sun so the original team was at a company called Anamorphic, they came in with a technology that was targeted at Smalltalk and they re-targeted it for Java and they hired me shortly afterwards to do a new JIT for their virtual machine. 
  4. Lewis, J. P. (2004). “Performance of Java versus C++”. 2007년 10월 3일에 확인함. 
  5. “The HotSpot Group”. Sun Microsystems. 2007. 2007년 10월 3일에 확인함. There are nearly 1500 C/C++ header and source files, comprising almost 250,000 lines of code 

외부 링크

편집