JVM과 HotSpot의 차이점
HotSpot이란 정확히 무엇이며 JVM 및 OpenJDK와 어떤 관계가 있습니까?도서관인가요?그게 정확히 뭘 하는데?
또한 OpenJDK와 HotSpot의 차이점은 무엇입니까?
Java Virtual Machine이 정확히 무엇인지에 대한 정의는 Java Virtual Machine 사양에 설명되어 있습니다.
JVM은 정의상 가상 머신, 즉 실제 머신의 동작을 시뮬레이트하는 소프트웨어 머신입니다.실제 기계와 마찬가지로 명령어 세트, 가상 컴퓨터 아키텍처 및 실행 모델이 있습니다.이 가상 명령 세트로 작성된 코드를 실행할 수 있습니다.실제 머신이 머신 코드를 실행할 수 있는 것과 비슷합니다.
HotSpot은 JVM 개념을 구현한 것입니다.원래 Sun에 의해 개발되었으며 현재는 Oracle이 소유하고 있습니다.JVM 규격에는 JRockit, IBM J9 등의 구현이 있습니다.
OpenJDK는 HotSpot(및 컴파일러, API, 도구 등 JDK의 다른 많은 부분)의 오픈 소스 구현을 개발하는 프로젝트입니다.
주의: Adapt OpenJDK는 2020-06년 말 Eclipse Foundation으로 이전한 후 사명을 Adaptium으로 변경했다.
JVM과 HotSpot의 차이점
Java Virtual Machine(JVM; Java 가상 머신)은 물리적으로 하드웨어로 구축되지 않은 가상 컴퓨터입니다.JVM은 바이트 코드로 알려진 중간 표현으로 스토리지에 기록된 가상 명령 집합으로 컴파일된 프로그램을 실행합니다.
실행 시 바이트 코드는 가상 명령 집합에서 호스트 머신의 CPU의 실제 명령 집합으로 변환되어야 합니다.이것은 통역사가 즉석에서 할 수 있다.또는 JIT(Just-In-Time) 컴파일이라고 불리는 프로세스에서 바이트 코드를 완전히 컴파일하고 캐시하여 인터프리터를 경유하는 것보다 빠르게 실행할 수 있습니다.
수십 년 동안 JVM은 많은 구현이 이루어졌습니다.대부분은 떨어져 나갔습니다.
핫스팟은 JIT 테크놀로지의 구현 중 하나로 인터프리터드 실행부터 시작하여 앱의 실제 성능을 관찰합니다.그런 다음 앱의 일부를 선택하여 네이티브 코드로 완전히 컴파일하고 캐시하여 훨씬 더 빠르게 실행할 수 있습니다.핫스팟은 Sun에서 상용 제품으로 개발되었습니다.Sun을 인수한 후 오라클은 경쟁 제품인 JRockit의 중요한 부품을 결합함으로써 HotSpot을 더욱 발전시켰습니다.현재 HotSpot은 Open JDK 프로젝트를 통해 오픈소싱되고 있으며 무료로 이용할 수 있습니다.
IBM이 개발하고 Eclipse Foundation을 통해 오픈 소싱되어 무료로 이용할 수 있는 Open J9의 또 다른 구현입니다.OpenJDK를 기반으로 구축된 일부 JVM 디스트리뷰션은 Java SE 클래스 라이브러리 등 나머지 OpenJDK를 사용하면서 HotSpot을 OpenJ9로 대체합니다.예를 들어, Adapt Open에서 사용할 수 있는 사전 구축 배포일부 하드웨어에서는 JDK를 통해 HotSpot 또는 OpenJ9 중 하나를 선택할 수 있습니다.
HotSpot과 JRockit의 Marge와 OpenJ9의 이력을 AdapeOpenJDK에서 확인할 수 있습니다.
HotSpot이란 정확히 무엇이며 JVM 및 OpenJDK와 어떤 관계가 있습니까?도서관인가요?그게 정확히 뭘 하는데?
OpenJ9은 일반적으로 시작 속도가 훨씬 빠르고 초기에 메모리 사용량이 훨씬 적은 것으로 알려져 있지만, HotSpot은 장기적으로 실행되는 애플리케이션의 경우 전반적으로 더 효율적으로 실행될 수 있습니다.둘 다 잘 알려져 있고 오래되었으며 OpenJDK 배포와 함께 사용할 수 있습니다.
Open JDK는 Java 플랫폼을 정의하는 Java 사양, JSR 및 JEP를 완전히 구현하는 오픈 소스 프로젝트입니다.현재 제가 알고 있는 모든 JVM 구현은 OpenJDK 코드베이스 전체 또는 대부분을 기반으로 하며 HotSpot 또는 OpenJ9 기술을 사용합니다.
JVM 이외에도 OpenJDK는 Java.lang, java.util, java.time 및 기타 패키지 등 Java SE 사양에 필요한 모든 클래스에 소스 코드를 구현합니다.
또한 OpenJDK와 HotSpot의 차이점은 무엇입니까?
HotSpot의 소스 코드는 OpenJDK 프로젝트의 일부로 저장, 유지 관리 및 개발됩니다.대체 제품인 OpenJ9은 Eclipse Foundation에 수용, 유지 보수 및 추가 개발되었으며 OpenJDK의 일부 배포판에서 HotSpot을 대체했습니다.
Java 테크놀로지의 일부 디스트리뷰션에서는 HotSpot과 함께 출하됩니다.일부 배포에서는 HotSpot인 OpenJDK 코드베이스 부분을 대체 OpenJ9로 대체하도록 선택합니다.
다음은 Java 플랫폼 배포 벤더를 선택하는 데 도움이 되는 흐름도 그래픽입니다.
OpenJDK(Open Java Development Kit)는 Java Platform Standard Edition(Java SE)의 무료 오픈 소스 구현입니다.openjdk는 Sun Microsystems가 시작한 프로젝트로, 현재 많은 기업과 커뮤니티에서 Java Development Kit를 완전히 오픈 소스로 구축하기 위해 노력하고 있습니다.공식 문서에 따라.
OpenJDK는 Java Platform Standard Edition(Java SE) 사양의 오픈 소스 구현입니다.2007년 5월 Sun은 Java SE용 완전 빌드 가능한 Java Development Kit(JDK) 버전을 GNU General Public License 버전 2(GPLv2)에 따라 자유 소프트웨어로 OpenJDK 커뮤니티에 출시했습니다.Sun은 OpenJDK 커뮤니티를 위한 임시 이사회를 발표했습니다.Sun은 OpenJDK 기반의 구현에서는 Java SE 6 Technical Compatibility Kit(JCK)를 사용하여 Java SE 6 사양과의 호환성을 확립할 수 있다고 발표했습니다.
OpenJDK 프로젝트는 HotSpot(가상 머신), Java Class Library 및 javac Java 컴파일러 등 다양한 컴포넌트로 구성됩니다.자세한 것은, 사이트를 봐 주세요.
Sun/Oracle에서 제공하는 현재 JVM은 "Just-In-Time" 최적화를 위해 코드의 핫스팟(코드가 더 많이 사용되는 곳)을 모색하기 때문에 HotSpot이라고 불립니다.Wikipedia에서 "Java HotSpot Performance Engine"으로 출시된 HotSpot은 Oracle Corporation에 의해 유지 관리 및 배포되는 데스크톱 및 서버용 Java 가상 머신입니다.
HotSpot은 앞서 설명한 바와 같이 Java Virtual Machine(JVM) Concept의 크로스 플랫폼 구현으로 GNU General Public License에 따라 OpenJDK(Java Developer Kit)와 함께 배포됩니다.HotSpot은 주로 C++로 작성되며, 원래 Sun Microsystems에서 개발되었습니다.현재 OpenJDK 프로젝트(www.java.net에서 개발되고 있습니다.HotSpot JVM은 Java 1.2의 애드온으로 제공되었으며 이후 Java 1.3에서 기본 Sun JVM으로 사용되었습니다.JVM은 현재 버전 7, 빌드 b147에 있으며 그 배후에 활발한 개발 커뮤니티가 있습니다.
자세한 내용은http://https://www.java.net/ 를 참조해 주세요.
해피 코딩!
JVM은 추상 머신(사양)입니다.HotSpot, OpenJDK 및 JRockit 등의 JVM 구현입니다.
무료 오픈 소스 구현
HotSpot, Java VM의 주요 레퍼런스 구현
OpenJDK - Open Java Development Kit는 링크 예외를 제외하고 GNU General Public License(GNU GPL)에 따라 라이센스가 부여된 무료 오픈 소스 구현입니다.
독자 사양의 실장
- Linux, Windows 및 Solaris용 Oracle에 의해 취득된 JRockit(원래는 어필 가상 머신)
더 많은 구현을 위해
링크에 HotSpot과 JRocket의 차이점이 설명되어 있습니다.
HotSpot은 C++ 해킹의 고급 형태이며, 이를 사용하려면 가장 간단한 것까지 컴파일하기 위해 HotSpot을 구축해야 합니다.컴파일러를 조정하거나 처음부터 다시 작성하지 않는 한 말입니다.HotSpot은 기본적으로 소스 코드를 C++ 코드로 변환한 후 이를 네이티브 코드로 컴파일하여 jit이라는 용어를 컴파일하는 방법입니다.
언급URL : https://stackoverflow.com/questions/16568253/difference-between-jvm-and-hotspot
'sourcecode' 카테고리의 다른 글
임의의 번호의 Java 반올림 (0) | 2022.07.28 |
---|---|
Java에서 Array List를 초기화하려면 어떻게 해야 하나요? (0) | 2022.07.28 |
권장되는 VueJS 애플리케이션 API 및 Vuex 설계 패턴이 있습니까? (0) | 2022.07.28 |
C++ 프로그램에 대한 C 라이브러리 사용 (0) | 2022.07.27 |
값별 트리 맵 정렬 (0) | 2022.07.27 |