JVM整體結(jié)構(gòu):
JVM發(fā)展歷程:
????初代虛擬機:sun Classic VM
? ? ? ? 1闷哆、java1.0,世界上第一款商用虛擬機,java1.4時完全淘汰
? ? ? ? 2霍衫、只有解釋器制圈,沒有編譯器(后面hotspot使用了JIT編譯器)们童。(解釋器和編譯器不能同時工作,編譯器會接替解釋器的工作內(nèi)容)編譯器:對執(zhí)行率比較高的熱點代碼進行緩存鲸鹦。
? ? ? ? 3慧库、hotspot內(nèi)置了此款虛擬機
????熱點探測技術(shù)的雛形:Exact VM
? ? 成熟應用至今:HotSpot VM
當前商業(yè)三大虛擬機:
HOTSPOT VM:
1、是一種基于棧的指令集架構(gòu)(零地址指令方式)(另外一種架構(gòu)是寄存器架構(gòu)馋嗜,代表使用范疇:安卓(Davlik虛擬機)等需要與硬件交互更密切的產(chǎn)品)
2齐板、是目前市面上高性能虛擬機的代表作之一
3、采用解釋器與編譯器并存的架構(gòu)葛菇。
4甘磨、服務器端、桌面端熟呛、嵌入式等多領(lǐng)域使用
棧指令集架構(gòu)特點:跨平臺性宽档、指令集小庵朝、指令多;執(zhí)行性能比寄存器架構(gòu)差九府。
評:應用場景最廣泛,且適配各種平臺系統(tǒng)的虛擬機侄旬。
JRockit VM:
1肺蔚、專注于服務器端應用,不包含解析器的實現(xiàn)
2儡羔、不關(guān)注服務的啟動速度宣羊,是世界上最快的虛擬機
3汰蜘、JMC(Jdk MissionControl) 是一組以極低的開銷來監(jiān)控、管理和分析生產(chǎn)環(huán)境上的應用程式的工具族操,主要管理和監(jiān)控內(nèi)存泄漏的苛坚。(jdk8種hotspot中整合了部分此工具的特性)
評:在財務、軍事指揮、電信網(wǎng)絡等毫秒級別應用場景適用
IBM J9(IBM Technology for Java Virtual Machine) ->IT4J -> J9 Eclipse Open J9:
1泼舱、定位與Hotspot相似等缀,多領(lǐng)域應用
2、應用于IBM的各種JAVA產(chǎn)品尺迂,有影響力的三大商用虛擬機之一,號稱最快的Java虛擬機(IBM自有產(chǎn)品之上的應用中枪狂,穩(wěn)定且快)
評:IBM自有產(chǎn)品,在自己的生態(tài)環(huán)境中,應用比較流暢辜限。