JVM Specification
링크 : https://docs.oracle.com/javase/specs/jvms/se20/html/index.html
우아한 테크 10분 테코톡
https://www.youtube.com/watch?v=6reapO0gLPs
JVM Specification : JVM의 표준
JVM : JVM Specification에 정의되어 있는 대로 구현 시킨 무언가.
그래서 원칙적으로는 누구나 JVM을 만들 수 있음.
그리고 이런 JVM을 만드는 조직들을 Vendors라고 부름.
기존의 JVM은 레거시라고 판단해 완전히 갈아엎는 프로젝트들도 진행되고 있다.
저 SPEC에 정의된 기능을 할 수 있다면 무엇이든 JVM이 될 수 있다.
이전엔 JVM의 실행 엔진을 하드웨어로 구현한 적도 있다.
결론 : JVM은 누구든 만들 수 있고 구현된 형태에 대해서는 어떠한 제약도 없다.
+) JVM Specification 관련하여
Spec 자체는 600P에 달함.
이것을 대략적으로 개괄도로 그린 것이 아래 그림.
그런데 살펴보면
Garbage Collection이나 JIT Compiler에 대한 내용은 들어가 있지 않음.
그 내용은 Spec의 Chapter 2 시작 부분에서 설명함.
즉, JVM Spec 자체는 많은 부분이 추상화 되어 있고,
이를 구현하는 vendor들이 고도의 테크닉을 사용해 뛰어난 JVM을 만들어 냈다.
그 결과가 현재 JVM에 구현된 garbage-collection 알고리즘이나 메모리 레이아웃, JIT 컴파일러.
JVM 별 GC 종류
- Oracle HotSpot JVM:
- Serial GC
- Parallel GC
- G1 GC (Garbage-First GC)
- ZGC (Z Garbage Collector)
- OpenJ9 JVM (Eclipse OpenJ9):
- Balanced GC
- OptAvgPause GC
- GenCon GC
- Azul Zing JVM:
- C4 GC (C4 Garbage Collector)
- IBM J9 JVM :
- Balanced GC
- OptAvgPause GC
- Corretto JVM :
- G1 GC (Garbage-First GC)
'CS > JAVA' 카테고리의 다른 글
this() 키워드로 다른 생성자 호출 시 맨 앞에 나와야 하는 이유 (0) | 2024.07.09 |
---|---|
Java Virtua Machine (0) | 2023.08.23 |