핫스팟 (가상 머신)
| 개발자 | 오라클 (과거에는 썬 마이크로시스템즈) |
|---|---|
| 발표일 | 1999년 4월 27일[1] |
| 저장소 |
|
| 프로그래밍 언어 | C++ |
| 엔진 | |
| 운영 체제 | 크로스 플랫폼 |
| 종류 | 자바 가상 머신 |
| 라이선스 | 사유 (초기 버전), GNU GPL (현재) |
| 웹사이트 | openjdk |
핫스팟(HotSpot)은 데스크톱과 서버 컴퓨터를 위한 자바 가상 머신으로, 자바 핫스팟 퍼포먼스 엔진(Java HotSpot Performance Engine)이라는 이름으로 출시되었으며[1], 오라클에 의해 유지 보수 및 배포가 이루어지고 있다. JIT 컴파일과 적응 최적화(adaptive optimization)와 같은 방식들을 통해 성능을 개선한 것이 특징이다.
역사
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] 핫스팟은 다음을 제공한다:
같이 보기
각주
- ↑ 가 나 다 “Sun Announces Availability of the Java HotSpot Performance Engine”. 《Press Release》. Sun Microsystems. 2013년 11월 1일에 원본 문서에서 보존된 문서. 2013년 3월 26일에 확인함.
- ↑ “Sun's Gosling Previews Hotspot Java Virtual Machine”. ComputerGram. 1998년 2월 13일. 2008년 4월 20일에 확인함.
- ↑ “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.
- ↑ Lewis, J. P. (2004). “Performance of Java versus C++”. 2007년 10월 3일에 확인함.
- ↑ “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
외부 링크
- 모듈:Official_website 90번째 줄에서 Lua 오류: attempt to index field 'wikibase' (a nil value).
| 파일:Twemoji2 1f4bf.svg | 이 글은 소프트웨어에 관한 토막글입니다. 여러분의 지식으로 알차게 문서를 완성해 갑시다. |
- 스크립트 오류가 있는 문서
- 위키데이터 속성 P18을 사용하는 문서
- 위키데이터 속성 P41을 사용하는 문서
- 위키데이터 속성 P94를 사용하는 문서
- 위키데이터 속성 P117을 사용하는 문서
- 위키데이터 속성 P154를 사용하는 문서
- 위키데이터 속성 P213을 사용하는 문서
- 위키데이터 속성 P227을 사용하는 문서
- 위키데이터 속성 P242를 사용하는 문서
- 위키데이터 속성 P244를 사용하는 문서
- 위키데이터 속성 P245를 사용하는 문서
- 위키데이터 속성 P268을 사용하는 문서
- 위키데이터 속성 P269를 사용하는 문서
- 위키데이터 속성 P271을 사용하는 문서
- 위키데이터 속성 P347을 사용하는 문서
- 위키데이터 속성 P349를 사용하는 문서
- 위키데이터 속성 P350을 사용하는 문서
- 위키데이터 속성 P373을 사용하는 문서
- 위키데이터 속성 P380을 사용하는 문서
- 위키데이터 속성 P396을 사용하는 문서
- 위키데이터 속성 P409를 사용하는 문서
- 위키데이터 속성 P428을 사용하는 문서
- 위키데이터 속성 P434를 사용하는 문서
- 위키데이터 속성 P435를 사용하는 문서
- 위키데이터 속성 P436을 사용하는 문서
- 위키데이터 속성 P454를 사용하는 문서
- 위키데이터 속성 P496을 사용하는 문서
- 위키데이터 속성 P549를 사용하는 문서
- 위키데이터 속성 P650을 사용하는 문서
- 위키데이터 속성 P651을 사용하는 문서
- 위키데이터 속성 P691을 사용하는 문서
- 위키데이터 속성 P716을 사용하는 문서
- 위키데이터 속성 P781을 사용하는 문서
- 위키데이터 속성 P791을 사용하는 문서
- 위키데이터 속성 P864를 사용하는 문서
- 위키데이터 속성 P865를 사용하는 문서
- 위키데이터 속성 P886을 사용하는 문서
- 위키데이터 속성 P902를 사용하는 문서
- 위키데이터 속성 P906을 사용하는 문서
- 위키데이터 속성 P947을 사용하는 문서
- 위키데이터 속성 P950을 사용하는 문서
- 위키데이터 속성 P966을 사용하는 문서
- 위키데이터 속성 P982를 사용하는 문서
- 위키데이터 속성 P1003을 사용하는 문서
- 위키데이터 속성 P1004를 사용하는 문서
- 위키데이터 속성 P1005를 사용하는 문서
- 위키데이터 속성 P1006을 사용하는 문서
- 위키데이터 속성 P1015를 사용하는 문서
- 위키데이터 속성 P1045를 사용하는 문서
- 위키데이터 속성 P1048을 사용하는 문서
- 위키데이터 속성 P1053을 사용하는 문서
- 위키데이터 속성 P1146을 사용하는 문서
- 위키데이터 속성 P1153을 사용하는 문서
- 위키데이터 속성 P1157을 사용하는 문서
- 위키데이터 속성 P1186을 사용하는 문서
- 위키데이터 속성 P1225를 사용하는 문서
- 위키데이터 속성 P1248을 사용하는 문서
- 위키데이터 속성 P1273을 사용하는 문서
- 위키데이터 속성 P1315를 사용하는 문서
- 위키데이터 속성 P1323을 사용하는 문서
- 위키데이터 속성 P1330을 사용하는 문서
- 위키데이터 속성 P1362를 사용하는 문서
- 위키데이터 속성 P1368을 사용하는 문서
- 위키데이터 속성 P1375를 사용하는 문서
- 위키데이터 속성 P1407을 사용하는 문서
- 위키데이터 속성 P1556을 사용하는 문서
- 위키데이터 속성 P1584를 사용하는 문서
- 위키데이터 속성 P1695를 사용하는 문서
- 위키데이터 속성 P1707을 사용하는 문서
- 위키데이터 속성 P1736을 사용하는 문서
- 위키데이터 속성 P1886을 사용하는 문서
- 위키데이터 속성 P1890을 사용하는 문서
- 위키데이터 속성 P1907을 사용하는 문서
- 위키데이터 속성 P1908을 사용하는 문서
- 위키데이터 속성 P1960을 사용하는 문서
- 위키데이터 속성 P1986을 사용하는 문서
- 위키데이터 속성 P2041을 사용하는 문서
- 위키데이터 속성 P2163을 사용하는 문서
- 위키데이터 속성 P2174를 사용하는 문서
- 위키데이터 속성 P2268을 사용하는 문서
- 위키데이터 속성 P2349를 사용하는 문서
- 위키데이터 속성 P2418을 사용하는 문서
- 위키데이터 속성 P2456을 사용하는 문서
- 위키데이터 속성 P2484를 사용하는 문서
- 위키데이터 속성 P2558을 사용하는 문서
- 위키데이터 속성 P2750을 사용하는 문서
- 위키데이터 속성 P2980을 사용하는 문서
- 위키데이터 속성 P3223을 사용하는 문서
- 위키데이터 속성 P3233을 사용하는 문서
- 위키데이터 속성 P3348을 사용하는 문서
- 위키데이터 속성 P3372를 사용하는 문서
- 위키데이터 속성 P3407을 사용하는 문서
- 위키데이터 속성 P3430을 사용하는 문서
- 위키데이터 속성 P3544를 사용하는 문서
- 위키데이터 속성 P3562를 사용하는 문서
- 위키데이터 속성 P3563을 사용하는 문서
- 위키데이터 속성 P3601을 사용하는 문서
- 위키데이터 속성 P3723을 사용하는 문서
- 위키데이터 속성 P3788을 사용하는 문서
- 위키데이터 속성 P3829를 사용하는 문서
- 위키데이터 속성 P3863을 사용하는 문서
- 위키데이터 속성 P3920을 사용하는 문서
- 위키데이터 속성 P3993을 사용하는 문서
- 위키데이터 속성 P4038을 사용하는 문서
- 위키데이터 속성 P4055를 사용하는 문서
- 위키데이터 속성 P4114를 사용하는 문서
- 위키데이터 속성 P4143을 사용하는 문서
- 위키데이터 속성 P4186을 사용하는 문서
- 위키데이터 속성 P4423을 사용하는 문서
- 위키데이터 속성 P4457을 사용하는 문서
- 위키데이터 속성 P4534를 사용하는 문서
- 위키데이터 속성 P4535를 사용하는 문서
- 위키데이터 속성 P4581을 사용하는 문서
- 위키데이터 속성 P4613을 사용하는 문서
- 위키데이터 속성 P4955를 사용하는 문서
- 위키데이터 속성 P5034를 사용하는 문서
- 위키데이터 속성 P5226을 사용하는 문서
- 위키데이터 속성 P5288을 사용하는 문서
- 위키데이터 속성 P5302를 사용하는 문서
- 위키데이터 속성 P5321을 사용하는 문서
- 위키데이터 속성 P5368을 사용하는 문서
- 위키데이터 속성 P5504를 사용하는 문서
- 위키데이터 속성 P5587을 사용하는 문서
- 위키데이터 속성 P5736을 사용하는 문서
- 위키데이터 속성 P5818을 사용하는 문서
- 위키데이터 속성 P6213을 사용하는 문서
- 위키데이터 속성 P6734를 사용하는 문서
- 위키데이터 속성 P6792를 사용하는 문서
- 위키데이터 속성 P6804를 사용하는 문서
- 위키데이터 속성 P6829를 사용하는 문서
- 위키데이터 속성 P7293을 사용하는 문서
- 위키데이터 속성 P7303을 사용하는 문서
- 위키데이터 속성 P7314를 사용하는 문서
- 위키데이터 속성 P7902를 사용하는 문서
- 위키데이터 속성 P8034를 사용하는 문서
- 위키데이터 속성 P8189를 사용하는 문서
- 위키데이터 속성 P8381을 사용하는 문서
- 위키데이터 속성 P8671을 사용하는 문서
- 위키데이터 속성 P8980을 사용하는 문서
- 위키데이터 속성 P9070을 사용하는 문서
- 위키데이터 속성 P9692를 사용하는 문서
- 위키데이터 속성 P9725를 사용하는 문서
- 위키데이터 속성 P9984를 사용하는 문서
- 위키데이터 속성 P10020을 사용하는 문서
- 위키데이터 속성 P10299를 사용하는 문서
- 위키데이터 속성 P10608을 사용하는 문서
- 위키데이터 속성 P10832를 사용하는 문서
- 위키데이터 속성 P11249를 사용하는 문서
- 위키데이터 속성 P11646을 사용하는 문서
- 위키데이터 속성 P11729를 사용하는 문서
- 위키데이터 속성 P12204를 사용하는 문서
- 위키데이터 속성 P12362를 사용하는 문서
- 위키데이터 속성 P12754를 사용하는 문서
- 위키데이터 속성 P13049를 사용하는 문서
- 잘못된 파일 링크가 포함된 문서
- 소프트웨어에 관한 토막글
- 큰 토막글 문서
- 모든 토막글 문서
- 자바 가상 머신
- C++로 작성된 자유 소프트웨어
- 오라클 소프트웨어
- 썬 마이크로시스템즈 소프트웨어
- 어셈블리어 소프트웨어