此篇稍微紀錄一下GraalVM研讀。不過在理解GraalVM之前須先理解何謂JVM。了解JVM才有辦法理解GraalVM與他的差異之處。
我們要在機台上跑Java Code,一般都需要安裝設置JVM。JVM為一個虛擬機,讓Java程式碼可以在不同的硬體上運行。JVM會載入編譯好的 .class(bytecode)檔,做解釋(Interpretation)或即時編譯 (JIT Compilation) 這些bytecode來轉換為實際的機器碼,然後執行。
整個流程步驟如下
.java → javac → .class(bytecode) → JVM → 機器碼 → 執行
基本上對於Java開發者,較鮮少往JVM的架構去研讀,一般都是JRE安裝好後,確定Java Code能運行就止住了。但要深入了解GraalVM,建議對於JVM是需要一定的認知的。但這區塊會比較偏向編譯器和運行時系統的底層實現,基本上只要過一下大概即可。
會focus在最底層的編譯部分(Execution Engine),後面會對這一塊多加解釋
下圖為JVM的架構概念圖,
基本上分三個區塊