当前位置:网站首页>HotSpot VM
HotSpot VM
2022-07-06 04:05:00 【春风化作秋雨】
提起HotSpot VM,相信所有Java程序员都知道,它是Sun JDK和OpenJDK中所带的虚拟机,也是目前使用范围最广的Java虚拟机。但不一定所有人都知道的是,这个目前看起来“血统纯正”的虚拟机在最初并非由Sun公司开发,而是由一家名为“Longview Technologies”的小公司设计的;甚至这个虚拟机最初并非是为Java语言而开发的,它来源于Strongtalk VM,而这款虚拟机中相当多的技术又是来源于一款支持Self语言实现“达到C语言50%以上的执行效率”的目标而设计的虚拟机,Sun公司注意到了这款虚拟机在JIT编译上有许多优秀的理念和实际效果,在1997年收购了Longview Technologies公司,从而获得了HotSpot VM。
HotSpot VM 既继承了Sun之前两款商用虚拟机的优点(如前面提到的准确式内存管理),也有许多自己新的技术优势,如它名称中的HotSpot指的就是它的热点代码探测技术(其实两个VM基本上是同时期的独立产品,HotSpot还稍早一些,HotSpot一开始就是准确式GC,而Exact VM之中也有与HotSpot几乎一样的热点探测。为了Exact VM和HotSpot VM哪个成为Sun主要支持的VM产品,在Sun公司内部还有过争论,HotSpot打败Exact并不能算技术上的胜利),HotSpot VM的热点代码探测能力可以通过执行计数器找出最具有编译价值的代码,然后通知JIT编译器以方法为单位进行编译。如果一个方法被频繁调用,或方法中有效循环次数很多,将会分别触发标准编译和OSR(栈上替换)编译动作。通过编译器与解释器恰当地协同工作,可以在最优化的程序响应时间与最佳执行性能中取得平衡,而且无须等待本地代码输出才能执行程序,即时编译的时间压力也相对减小,这样有助于引入更多的代码优化技术,输出质量更高的本地代码。
在2006年的JavaOne大会上,Sun公司宣布最终会把Java开源,并在随后的一年,陆续将JDK的各个部分(其中当然也包括了HotSpot VM)在GPL协议下公开了源码,并在此基础上建立了OpenJDK。这样,HotSpot VM便成为了Sun JDK和OpenJDK两个实现极度接近的JDK项目的共同虚拟机。
在2008年和2009年,Oracle公司分别收购了BEA公司和Sun公司,这样Oracle就同时拥有了两款优秀的Java虚拟机:JRockit VM和HotSpot VM。Oracle公司宣布在不久的将来(大约应在发布JDK 8的时候)会完成这两款虚拟机的整合工作,使之优势互补。整合的方式大致上是在HotSpot的基础上,移植JRockit的优秀特性,譬如使用JRockit的垃圾回收器与MissionControl服务,使用HotSpot的JIT编译器与混合的运行时系统。
边栏推荐
- 软考 系统架构设计师 简明教程 | 总目录
- Chinese brand hybrid technology: there is no best technical route, only better products
- Serial port-rs232-rs485-ttl
- Global and Chinese markets for endoscopic drying storage cabinets 2022-2028: Research Report on technology, participants, trends, market size and share
- C mouse event and keyboard event of C (XXVIII)
- TCP/IP协议里面的网关地址和ip地址有什么区别?
- STC8H开发(十二): I2C驱动AT24C08,AT24C32系列EEPROM存储
- Le compte racine de la base de données MySQL ne peut pas se connecter à distance à la solution
- /usr/bin/gzip: 1: ELF: not found/usr/bin/gzip: 3: : not found/usr/bin/gzip: 4: Syntax error:
- Solution to the problem that the root account of MySQL database cannot be logged in remotely
猜你喜欢
C#(二十八)之C#鼠标事件、键盘事件
Fundamentals of SQL database operation
[Massey] Massey font format and typesetting requirements
MySql數據庫root賬戶無法遠程登陸解决辦法
Basic knowledge of binary tree, BFC, DFS
MySQL reads missing data from a table in a continuous period of time
MySql数据库root账户无法远程登陆解决办法
DM8 archive log file manual switching
自动化测试的好处
What is the difference between gateway address and IP address in tcp/ip protocol?
随机推荐
Prime protocol announces cross chain interconnection applications on moonbeam
Path of class file generated by idea compiling JSP page
MySQL master-slave replication
Pandora IOT development board learning (HAL Library) - Experiment 9 PWM output experiment (learning notes)
C (thirty) C combobox listview TreeView
Conditionally [jsonignore]
Scalpel like analysis of JVM -- this article takes you to peek into the secrets of JVM
How many of the 10 most common examples of istio traffic management do you know?
asp. Core is compatible with both JWT authentication and cookies authentication
math_极限&微分&导数&微商/对数函数的导函数推导(导数定义极限法)/指数函数求导公式推导(反函数求导法则/对数求导法)
【leetcode】1189. Maximum number of "balloons"
自动化测试的好处
Redis (replicate dictionary server) cache
Align items and align content in flex layout
潘多拉 IOT 开发板学习(HAL 库)—— 实验9 PWM输出实验(学习笔记)
Prime Protocol宣布在Moonbeam上的跨链互连应用程序
Differential GPS RTK thousand search
C#(二十九)之C#listBox checkedlistbox imagelist
【PSO】基于PSO粒子群优化的物料点货物运输成本最低值计算matlab仿真,包括运输费用、代理人转换费用、运输方式转化费用和时间惩罚费用
Record an excel xxE vulnerability