jvm oracle sun,JVM - 常见的JVM种类
HotSpot VM
HotSpot VM是絕對的主流。大家用它的時候很可能就沒想過還有別的選擇,
或者是為了遷就依賴了Oracle/Sun JDK某些具體實現(xiàn)的爛代碼而選擇用HotSpot VM省點心。
Oracle / Sun JDK、OpenJDK的各種變種(例如IcedTea、Zulu),用的都是相同核心的HotSpot VM。
當大家說起“Java性能如何如何”、“Java有多少種GC”、“JVM如何調優(yōu)”云云,經(jīng)常默認說的就是特指HotSpot VM??梢娖洹爸髁餍浴?。
JDK8的HotSpot VM已經(jīng)是以前的HotSpot VM與JRockit VM的合并版,也就是傳說中的“HotRockit”,只是產(chǎn)品里名字還是叫HotSpot VM。
這個合并并不是要把JRockit的部分代碼插進HotSpot里,而是把前者一些有價值的功能在后者里重新實現(xiàn)一遍。移除PermGen、Java Flight Recorder、jcmd等都屬于合并項目的一部分
不過要留意的是,這里的HotSpot VM特指“正常配置”版,而不包括“Zero / Shark”版。
Wikipedia那個頁面上把后者稱為“Zero Port”。用這個版本的人應該相當少,很多時候它的release版都build不成功
J9 VM
J9是IBM開發(fā)的一個高度模塊化的JVM。在許多平臺上,IBM J9 VM都只能跟IBM產(chǎn)品一起使用。這不是技術限制,而是許可證限制。
例如說在Windows上IBM JDK不是免費公開的,而是要跟IBM其它產(chǎn)品一起捆綁發(fā)布的;
使用IBM Rational、IBM WebSphere的話都有機會用到J9 VM(也可以自己選擇配置使用別的Java SE JVM)。
根據(jù)許可證,這種捆綁在產(chǎn)品里的J9 VM不應該用于運行別的Java程序…大家有沒有自己“偷偷的”拿來跑別的程序IBM也沒力氣管
(咳咳而在一些IBM的硬件平臺上,很少客戶是只買硬件不買配套軟件的,IBM給一整套解決方案,里面可能就包括了IBM JDK。
這樣自然而然就用上了J9 VM。
所以J9 VM得算在主流里,雖然很少是大家主動選擇的首選。
J9 VM的性能水平大致跟HotSpot VM是一個檔次的。有時HotSpot快些,有時J9快些。
不過J9 VM有一些HotSpot VM在JDK8還不支持的功能,最顯著的一個就是J9支持AOT編譯和更強大的class data sharing
JRockit
JRockit以前Java SE的主流JVM中還有JRockit,跟HotSpot與J9一起并稱三大主流JVM。
這三家的性能水平基本都在一個水平上,競爭很激烈。
自從Oracle把BEA和Sun都收購了之后,Java SE JVM只能二選一,JRockit就炮灰了。
JRockit最后發(fā)布的大版本是R28,只到JDK6;原本在開發(fā)中的R29及JDK7的對應功能都沒來得及完成項目就被終止了。
參考:
https://www.zhihu.com/question/29265430?sort=created
https://en.wikipedia.org/wiki/Comparison_of_Java_virtual_machines
http://hllvm.group.iteye.com/group/topic/17147
http://blog.csdn.net/yano_nankai/article/details/50957578
總結
以上是生活随笔為你收集整理的jvm oracle sun,JVM - 常见的JVM种类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python写一个路径选择app_dja
- 下一篇: 华锋e路航x10升级工具_万商云集:疫情