JVM 구현의 차이점
-
09-09-2019 - |
문제
JVM 구현은 어디에서 다릅니 까? 라이센스 제외). 모든 JVM이 일반 취급을위한 유형 삭제를 구현합니까?
다음의 차이점은 다음과 같습니다.
- jrockit
- IBM JVM
- Sun JVM
- JDK를 열었습니다
- 블랙 다운
- 카페
..... 그들 중 하나를 꼬리 통과 최적화로 처리합니까?
해결책
JVM 구현은 JIT 컴파일, 최적화, 쓰레기 수집, 지원되는 플랫폼, Java 지원 버전 등을 구현하는 방식이 다를 수 있습니다. 모두 Java 바이트 코드를 올바르게 실행할 수 있도록 일련의 기능과 동작을 충족해야합니다.
기술적 차이에 이르기까지, 그것들은 수년에 걸쳐 덜 중요 해졌습니다. 옛날 옛적에 IBM과 JROCKIT JVM은 참조 SUN 구현보다 훨씬 뛰어난 성능을 보였습니다. 이는 런타임 최적화 유형, 가비지 수집의 차이 및 기본 코드의 차이 (및 다양한 클래스가 사용하는 기본 코드의 차이)의 상당한 차이로 인한 것입니다. 이러한 성능 차이는 더 이상 중요하지 않습니다.
다른 팁
타입 지우기는 a입니다 컴파일러 기능
JIT 컴파일은 JVM : S가없는 것 중 하나입니다.
JVM이 Java라고 주장하면 TCK를 통과하여 많은 재고를 제공해야합니다.
차이점은 쓰레기 수집, Sun JVM의 JConsole/VisualVM, 사전 컴파일 등과 같은 비 코어 장소에 있습니다.
설명 : TCK는 공식적으로 Java를 준수하기 위해 가상 머신이 통과 해야하는 테스트 스위트입니다.
JVMS의 또 다른 차이점은 문서화되지 않은 API의 동작입니다. (예 : com.sun.xxx) 예를 들어, Sun의 JVM과 IBM의 JVM은 신호 처리에 대해 약간 다른 동작을 가지고 있습니다. (IBM의 JVM은 애플리케이션이 특정 경우 "int"신호를 가두도록 허용하지 않습니다.)
Tail-Call 최적화는 아직 Java에 의해 지원되지 않습니다. John Rose는 이것을 향후 릴리스에 포함시키려는 노력을 주도하고 있으며 접근 및 일부 문제 관련된.