当前位置:网站首页>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编译器与混合的运行时系统。
边栏推荐
- TCP/IP协议里面的网关地址和ip地址有什么区别?
- [optimization model] Monte Carlo method of optimization calculation
- Record the pit of NETCORE's memory surge
- 潘多拉 IOT 开发板学习(HAL 库)—— 实验9 PWM输出实验(学习笔记)
- 在 .NET 6 中使用 Startup.cs 更简洁的方法
- Cf603e pastoral oddities [CDQ divide and conquer, revocable and search set]
- How many of the 10 most common examples of istio traffic management do you know?
- How does technology have the ability to solve problems perfectly
- 在字节做测试5年,7月无情被辞,想给划水的兄弟提个醒
- /usr/bin/gzip: 1: ELF: not found/usr/bin/gzip: 3: : not found/usr/bin/gzip: 4: Syntax error:
猜你喜欢
[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
[FPGA tutorial case 11] design and implementation of divider based on vivado core
在字节做测试5年,7月无情被辞,想给划水的兄弟提个醒
Database, relational database and NoSQL non relational database
C#(三十一)之自定义事件
KS008基于SSM的新闻发布系统
Fundamentals of SQL database operation
10个 Istio 流量管理 最常用的例子,你知道几个?
In Net 6 CS more concise method
C#(二十九)之C#listBox checkedlistbox imagelist
随机推荐
SSTI template injection explanation and real problem practice
记一次excel XXE漏洞
[FPGA tutorial case 11] design and implementation of divider based on vivado core
JVM的手术刀式剖析——一文带你窥探JVM的秘密
《2022年中国银行业RPA供应商实力矩阵分析》研究报告正式启动
Interface idempotency
math_极限&微分&导数&微商/对数函数的导函数推导(导数定义极限法)/指数函数求导公式推导(反函数求导法则/对数求导法)
[optimization model] Monte Carlo method of optimization calculation
Differential GPS RTK thousand search
1291_Xshell日志中增加时间戳的功能
Codeforces Round #770 (Div. 2) B. Fortune Telling
80% of the diseases are caused by bad living habits. There are eight common bad habits, which are both physical and mental
C#(二十七)之C#窗体应用
Facebook等大廠超十億用戶數據遭泄露,早該關注DID了
Esp32 (based on Arduino) connects the mqtt server of emqx to upload information and command control
P3033 [usaco11nov]cow steelchase g (similar to minimum path coverage)
2/10 parallel search set +bfs+dfs+ shortest path +spfa queue optimization
Global and Chinese markets for MRI safe implants 2022-2028: technology, participants, trends, market size and share Research Report
Web components series (VII) -- life cycle of custom components
MySQL master-slave replication