-
JDK 1.0
- Classic VM,纯解释执行
- 想要使用JIT,就需要外挂
- 外挂后,虚拟机执行系统被JIT接管,解释器不再工作
- Sun提供的外挂JIT是sunwjit
- 编译器和解释器不能配合工作,导致所有代码都需要编译,编译优化被极大削弱,影响执行效率,Java比C/C++慢的映象就是这个时候出现的
-
JDK 1.2
- 在Solaris平台上发布Exact VM
- 执行系统已具备现代高性能虚拟机的雏形,如两级即时编译器,编译解释混合工作模式
- 准确式内存管理,Exact Memory Management,也叫Non-Conservative Memory Management
- 虚拟机可以知道内存中某个位置数据类型
- Exact VM抛弃了Classic VM中基于handler的对象查找方式
- 不过Exact VM还没来得及出Windows和Linux版本就被HotSpot VM取代了
-
HotSpot VM和Exact VM
- 存在一定相似性,比如都有准确式内存,及热点探测
-
JDK 1.2之前
- Classic VM
-
JDK 1.2
- Classic VM与HotSpot并存,默认Classic VM
-
JDK 1.3
- 并存,默认HotSpot
-
JDK 1.4
- Classic VM退出
-
HotSpot VM
- Longview Technologies(一家小公司,1997被Sun收购)设计,最初并非为了Java而开发设计,而是源于Strongtalk VM
-
Strongtalk VM
- 源于另一款为Self语言而开发的虚拟机
网友评论