/
Java Open j9 과 HS(Hotspot) JVM 차이점

Java Open j9 과 HS(Hotspot) JVM 차이점

j9 이란?

sdk man 으로 설치 가능한 JDK 를 검색하면 다음과 같이 Identifier 에 j9 과 hs 가 붙는 제품들이 있습니다.

$ sdk list java

================================================================================
 Vendor        | Use | Version      | Dist    | Status     | Identifier
--------------------------------------------------------------------------------
 AdoptOpenJDK  |     | 16.0.1.j9    | adpt    |            | 16.0.1.j9-adpt      
               |     | 16.0.1.hs    | adpt    |            | 16.0.1.hs-adpt      
               |     | 11.0.11.j9   | adpt    |            | 11.0.11.j9-adpt     
               |     | 11.0.11.hs   | adpt    |            | 11.0.11.hs-adpt     
               |     | 8.0.292.j9   | adpt    |            | 8.0.292.j9-adpt     
               |     | 8.0.292.hs   | adpt    |            | 8.0.292.hs-adpt     
 Corretto      |     | 16.0.2.7.1   | amzn    |            | 16.0.2.7.1-amzn     
               |     | 11.0.12.7.1  | amzn    |            | 11.0.12.7.1-amzn    
               |     | 8.302.08.1   | amzn    |            | 8.302.08.1-amzn

j9 은 JVM 의 또 다른 구현물로 eclipse 재단에서 개발했으며 재단의 OpenJDK 구현물인 AdoptOpenJDK 에 적용되어 있습니다.


기존 HotSpot(hs) 방식의 JVM 과 달리 Cloud 환경에 최적화 되어 있으며 더 빠르고 효율적으로 동작한다고 재단은 주장하고 있습니다. (성능 비교표 보기)


주의할 점은 j9 은 JVM 의 또 다른 구현물이며 JDK 의 버전과는 바로 매칭되지 않으며 AdoptOpenJDK 는 2 개의 JVM(j9, hs) 이 따로 패키징 되어 있습니다.

즉 "JDK 11 ➕  j9 JVM" 구성이나 "JDK 11 ➕ hs JVM" 구성이 가능하며 sdk man 에서 보는 Identifier 를 통해서도 확인할 수 있습니다.


개인적인 생각으로는 Cloud 에서 Java 로 개발한 app 을 서비스한다면 Cloud 서비스 업체가 구현한 JDK(JVM) 가 가장 최적화되어 있지 않을까 생각되며 저도 그렇게 사용하고 있습니다.


즉 AWS 를 쓴다면 Amazon 의 JDK인 Corretto를 사용하고 Azure 에서는 Microsoft 의 OpenJDK 를 쓰려고 합니다.

같이 보기


Ref

Related content

CentOS 와 Ubuntu 에 JDK/JRE 설치시 JAVA_HOME 변수 설정
CentOS 와 Ubuntu 에 JDK/JRE 설치시 JAVA_HOME 변수 설정
More like this
리눅스 명령창에서 oracle jdk 다운받기(Downloading Java JDK on Linux Command Line)
리눅스 명령창에서 oracle jdk 다운받기(Downloading Java JDK on Linux Command Line)
More like this
SDKMan! 으로 commandline에서 JDK 와 개발 도구를 설치/관리하기
SDKMan! 으로 commandline에서 JDK 와 개발 도구를 설치/관리하기
More like this
Oracle JDBC URL
Oracle JDBC URL
More like this
handlebars 와 spring mvc 연동
handlebars 와 spring mvc 연동
More like this