当前位置:网站首页>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编译器与混合的运行时系统。
边栏推荐
- 自动化测试怎么规范部署?
- C (thirty) C combobox listview TreeView
- How does technology have the ability to solve problems perfectly
- User datagram protocol UDP
- Cf464e the classic problem [shortest path, chairman tree]
- 图应用详解
- How to standardize the deployment of automated testing?
- C#(三十一)之自定义事件
- 【PSO】基于PSO粒子群优化的物料点货物运输成本最低值计算matlab仿真,包括运输费用、代理人转换费用、运输方式转化费用和时间惩罚费用
- Codeforces Round #770 (Div. 2) B. Fortune Telling
猜你喜欢

TCP/IP协议里面的网关地址和ip地址有什么区别?

Security xxE vulnerability recurrence (XXe Lab)
![P7735-[noi2021] heavy and heavy edges [tree chain dissection, line segment tree]](/img/b1/dbfc42d66548476300501dd839abef.jpg)
P7735-[noi2021] heavy and heavy edges [tree chain dissection, line segment tree]

Ks008 SSM based press release system

Maxay paper latex template description

What is the difference between gateway address and IP address in tcp/ip protocol?

Ks003 mall system based on JSP and Servlet

Plus d'un milliard d'utilisateurs de grandes entreprises comme Facebook ont été compromis, il est temps de se concentrer sur le did

10個 Istio 流量管理 最常用的例子,你知道幾個?

Fundamentals of SQL database operation
随机推荐
Alibaba testers use UI automated testing to achieve element positioning
WPF effect Article 191 box selection listbox
[American competition] mathematical terms
[adjustable delay network] development of FPGA based adjustable delay network system Verilog
Introduction to data types in MySQL
How does technology have the ability to solve problems perfectly
自动化测试的好处
Path of class file generated by idea compiling JSP page
STC8H开发(十二): I2C驱动AT24C08,AT24C32系列EEPROM存储
51nod 1130 n factorial length V2 (Stirling approximation)
Python book learning notes - Chapter 09 section 01 create and use classes
asp. Core is compatible with both JWT authentication and cookies authentication
The global and Chinese market of negative pressure wound therapy unit (npwtu) 2022-2028: Research Report on technology, participants, trends, market size and share
判断当天是当月的第几周
简易博客系统
【FPGA教程案例12】基于vivado核的复数乘法器设计与实现
【可调延时网络】基于FPGA的可调延时网络系统verilog开发
[practice] mathematics in lottery
Ybtoj coloring plan [tree chain dissection, segment tree, tarjan]
ESP32(基于Arduino)连接EMQX的Mqtt服务器上传信息与命令控制