HotSpot(가상 머신)
HotSpot (virtual machine)원저작자 | Sun Microsystems |
---|---|
개발자 | 오라클 코퍼레이션 |
초기 릴리즈 | 1999년 4월 27일, [1] | 전(
안정된 릴리스 | 23.25-b01 / 2016년 1월 , 전( |
기입처 | C++, 어셈블리 |
운영 체제 | 크로스 플랫폼 |
유형 | Java 가상 머신 |
면허증. | 독자 사양(이전 버전), GNU General Public License(현재 버전) |
웹 사이트 | openjdk |
Java HotSpot Performance [1]Engine으로 출시된 HotSpot은 데스크톱 및 서버 컴퓨터용 Java 가상 머신으로, Sun Microsystems가 개발하여 현재 Oracle Corporation에서 유지 관리 및 배포하고 있습니다.JIT 컴파일 및 적응형 최적화 등의 방법을 통해 향상된 성능을 제공합니다.
역사
Java HotSpot Performance Engine은 1999년 [1]4월 27일 출시되었으며, 원래는 Animorphic으로 거래된 Longview Technologies에 의해 개발된 Strongtalk라는 이름의 프로그래밍 언어 구현 기술을 기반으로 합니다.Longview 가상 머신은 셀프 가상 머신을 기반으로 하며 인터프리터가 퍼스트 앤 덤프 컴파일러를 대체했습니다.Sun이 Self 프로젝트를 취소했을 때, 두 명의 핵심 인물인 Urs Hölzle과 Lars Bak은 Longview를 시작하기 위해 Sun을 떠났다.1997년에 Sun Microsystems는 Animorphic을 [2]인수했다.
Animorphic 인수 직후 Sun은 Java 가상 [3]머신용 새로운 JIT(Just-In-Time) 컴파일러를 작성하기로 결정했습니다.이 새로운 컴파일러는 소프트웨어의 동작에서 따온 HotSpot이라는 이름을 갖게 되었습니다.HotSpot은 Java 바이트 코드를 실행할 때 자주 또는 반복적으로 실행되는 핫스팟에 대해 프로그램의 성능을 지속적으로 분석합니다.그런 다음 최적화를 목표로 하여 성능 중요도가 낮은 코드로 최소한의 오버헤드로 고성능 실행을 실현합니다.한 보고서에서 JVM은 일부 벤치마크에서 [4]일부 C++ 또는 C 코드를 능가했습니다.
처음에 Java 1.2의 애드온으로 [5]사용 가능했던 HotSpot은 Java 1.[6]3의 기본 Sun JVM이 되었습니다.
특징들
JRE(원래는 Sun에서, 현재는 Oracle에서)에는 2개의 가상 머신(클라이언트라고 하는 머신과 다른 서버)이 있습니다.클라이언트 버전은 빠른 로드를 위해 조정되어 있습니다.그것은 해석을 이용한다.서버 버전은 로딩 속도가 느리고 성능이 향상되도록 최적화된 JIT 컴파일을 만드는 데 더 많은 노력을 기울입니다.두 VM 모두 자주 실행되는 메서드만 컴파일하고 구성 가능한 호출 카운트 임계값을 사용하여 컴파일할 메서드를 결정합니다.
Java 7에서 도입된 옵션인 계층형 컴파일러는 클라이언트 컴파일러와 서버 컴파일러를 동시에 사용하여 서버 컴파일러보다 부팅 시간이 빠르지만 최대 성능은 [7]비슷하거나 더 우수합니다.Java 8부터는 서버 [8]VM의 디폴트로 계층형 컴파일이 사용됩니다.
핫스팟은 C++와 어셈블리로 작성되어 있다.2007년에 Sun은 약 250,000줄의 소스 [9]코드를 구성했다고 추정했습니다.핫스팟은 다음을 제공합니다.
- Java 클래스로더
- 템플릿 Java 바이트 코드 인터프리터
- 클라이언트 및 서버 저스트 인 타임 컴파일러(각 용도에 맞게 최적화)
- 여러 개의 쓰레기 수집기(초저일시정지 시간 ZGC 및 무정지 Shenandoah 포함)[10][11]
- 지원되는 런타임 라이브러리 세트
JVM 플래그
HotSpot은 가상 시스템 실행 옵션에 대해 많은 명령줄 인수를 지원합니다.일부는 표준이며 호환되는 Java 가상 머신에서 찾을 수 있어야 하며, 다른 일부는 핫스팟에 고유하며 다른 JVM에서는 찾을 수 없습니다(-X 또는 -XX로 시작하는 옵션은 [12][13][14][15]표준이 아닙니다.
면허증.
2006년 11월 13일, HotSpot JVM과 Java Development Kit(JDK)는 GNU General Public License(GPL) 버전 [16]2에 근거해 라이센스되었습니다.이것은 Java [17]7의 일부가 된 코드입니다.
지원되는 플랫폼
Oracle에 의해 유지 보수
전체 Java Development Kit(JDK)와 마찬가지로 HotSpot은 오라클 Corporation에서 윈도우즈, 리눅스 및 MacOS에서 지원됩니다.지원되는 Instruction Set Architecture(ISA; 명령 집합 아키텍처)는 x86-64 및 AArch64입니다.[18]JDK 15 이후 Solaris 및 SPARC는 [19]지원되지 않게 되었습니다.
서드파티별 포트 수
포트는 서드파티에 의해 다른 다양한 Unix 운영체제에서도 사용할 수 있습니다.x86, PowerPC, SPARC(Solaris만 해당) 등 다양한 하드웨어 아키텍처가 지원됩니다.
HotSpot의 대부분은 어셈블리 언어로 거의 광범위하게 [20]작성되어 있지만, HotSpot의 일부 섹션은 순전히 표준에 부합하는 ISO C++로 작성되어 있기 때문에 이식하는 것은 어렵습니다.이를 해결하기 위해 IceTea 프로젝트는 조립 코드가 거의 없는 제로 어셈블러 핫스팟(또는 제로)이라는 HotSpot 인터프리터의 범용 포트를 개발했습니다.이 포트는 HotSpot의 인터프리터 컴포넌트를 Linux 프로세서 아키텍처에 쉽게 적용할 수 있도록 설계되었습니다.제로 어셈블러 핫스팟 코드는 버전 1.6 [21][22][23]이후 HotSpot(PowerPC, Itanium(IA-64), S390 및 ARM)의 모든 비x86 아키텍처 포트에 사용됩니다.
「 」를 참조해 주세요.
- Java 가상 시스템 목록
- Java 가상 시스템 비교
- 자바 퍼포먼스
- Open JDK
- Da Vinci Machine, 동적 프로그래밍 언어 지원을 추가하기 위한 JVM 확장 프로토타입 프로젝트
레퍼런스
- ^ a b c "Sun Announces Availability of the Java HotSpot Performance Engine". Press Release. Sun Microsystems. Archived from the original on 1 August 2013. Retrieved 26 March 2013.
- ^ Services, Chronicle Staff and News (1997-02-19). "SUN MICRO BUYS LONGVIEW". SFGATE. Retrieved 2020-11-05.
- ^ "Cliff Click on Azul's Pauseless GC, Zing, JVM Languages". InfoQ. 2011-01-20. Retrieved 2016-05-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++". Archived from the original on 2020-04-24. Retrieved 2007-10-03.
- ^ Shankland, Stephen (18 February 1999). "HotSpot finally makes its mark". Cnet.
- ^ "Sun Microsystems releases fastest client-side Java platform to date". Sun Microsystems. 2000-05-08. Retrieved 2007-10-03.
- ^ "Java ™ HotSpot Virtual Machine Performance Enhancements". docs.oracle.com.
- ^ "Java ™ HotSpot Virtual Machine Performance Enhancements". docs.oracle.com.
- ^ "The HotSpot Group". Sun Microsystems. 2007. Retrieved 2007-10-03.
There are nearly 1500 C/C++ header and source files, comprising almost 250,000 lines of code
- ^ "Main - ZGC". OpenJDK Wiki.
- ^ "HotSpot Virtual Machine Garbage Collection Tuning Guide (Java 14)". Oracle Help Center.
- ^ "Java HotSpot VM Options". Sun Microsystems. Retrieved 2009-02-08.
- ^ Mocker, Joseph D. (2007-08-28). "A Collection of JVM Options". Archived from the original on 2011-04-30. Retrieved 2009-02-08.
- ^ Maximovich, Dmitri. "The most complete list of -XX options for Java 6 JVM". Archived from the original on 2010-01-30. Retrieved 2009-02-08.
- ^ Nutter, Charles (2009-01-29). "My Favorite Hotspot JVM Flags". Retrieved 2009-02-08.
- ^ "Sun Open Sources Java Technology and Releases Source Code Under GPL Version Two License Via NetBeans and Java.net Communities". Sun Microsystems. 2006-11-13. Archived from the original on 2009-02-09. Retrieved 2017-05-06.
- ^ JDK7, Sun.
- ^ "Oracle JDK 17 Certified System Configurations". Oracle Corporation. Retrieved 2021-02-01.
- ^ "JEP 381: Remove the Solaris and SPARC Ports". openjdk.java.net.
- ^ Benson, Gary (2007-11-06). "Gary's guide to porting IcedTea". Archived from the original on 2012-07-12. Retrieved 2008-01-26.
- ^ Benson, Gary (2008-02-01). "1st February 2008". Archived from the original on 2012-07-10. Retrieved 2008-02-03.
- ^ Haley, Andrew (2008-01-31). "Making zero-assembler the default on ppc". Retrieved 2022-02-01.
- ^ Angel, Lilian (2008-02-13). "IcedTea 1.6 Released with Zero-assembler and JNLP support!". Red Hat. Retrieved 2008-02-13.
외부 링크
- 공식 웹사이트
- HotSpot VMOptions 목록
- Java 가상 시스템 사양
- 오리지널 Strongtalk-HotSpot 팀의 이력
- "Sun announces availability of the Java Hotspot Performance Engine". Archived from the original on December 18, 2006. Retrieved March 27, 2014.
{{cite web}}
: CS1 maint: bot: 원래 URL 상태를 알 수 없습니다(링크). - JDK8용 HotSpot Mercurial 소스 코드 개발 저장소(버전 관리 시스템)