当前位置:网站首页>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编译器与混合的运行时系统。
边栏推荐
- MySql数据库root账户无法远程登陆解决办法
- [PSO] Based on PSO particle swarm optimization, matlab simulation of the calculation of the lowest transportation cost of goods at material points, including transportation costs, agent conversion cos
- 【PSO】基于PSO粒子群优化的物料点货物运输成本最低值计算matlab仿真,包括运输费用、代理人转换费用、运输方式转化费用和时间惩罚费用
- 【leetcode】22. bracket-generating
- MySql數據庫root賬戶無法遠程登陸解决辦法
- The Research Report "2022 RPA supplier strength matrix analysis of China's banking industry" was officially launched
- Maxay paper latex template description
- 《2022年中国银行业RPA供应商实力矩阵分析》研究报告正式启动
- Le compte racine de la base de données MySQL ne peut pas se connecter à distance à la solution
- How does technology have the ability to solve problems perfectly
猜你喜欢

math_极限&微分&导数&微商/对数函数的导函数推导(导数定义极限法)/指数函数求导公式推导(反函数求导法则/对数求导法)

JVM的手术刀式剖析——一文带你窥探JVM的秘密

User datagram protocol UDP

KS003基于JSP和Servlet实现的商城系统

Yyds dry goods inventory hcie security Day11: preliminary study of firewall dual machine hot standby and vgmp concepts

MySQL about self growth

Viewing and verifying backup sets using dmrman

lora网关以太网传输

Fundamentals of SQL database operation

10個 Istio 流量管理 最常用的例子,你知道幾個?
随机推荐
Why do you want to start pointer compression?
TCP/IP协议里面的网关地址和ip地址有什么区别?
C#(三十)之C#comboBox ListView treeView
Error 1045 (28000): access denied for user 'root' @ 'localhost' (using password: no/yes
mysql关于自增长增长问题
How to execute an SQL statement in MySQL
[001] [stm32] how to download STM32 original factory data
Blue Bridge Cup - day of week
10 exemples les plus courants de gestion du trafic istio, que savez - vous?
Alibaba testers use UI automated testing to achieve element positioning
【按鍵消抖】基於FPGA的按鍵消抖模塊開發
如何修改表中的字段约束条件(类型,default, null等)
Global and Chinese markets for MRI safe implants 2022-2028: technology, participants, trends, market size and share Research Report
【可调延时网络】基于FPGA的可调延时网络系统verilog开发
脚本生命周期
记一次excel XXE漏洞
How many of the 10 most common examples of istio traffic management do you know?
[FPGA tutorial case 11] design and implementation of divider based on vivado core
How can programmers resist the "three poisons" of "greed, anger and ignorance"?
Chinese brand hybrid technology: there is no best technical route, only better products