JDK8 JIT 行為和效能分析

jserv

CTO
SSXelerator

1995 年還是中學生的時候,偶然看到昇陽的 Java 廣告,就抓了第一個 Beta 版本的 JDK 和 HotJava 瀏覽器來玩,在參與一些伺服器端的應用後,轉向 Java 虛擬機器的開發,過去是世界上首個開放原始碼 Java 虛擬機器專案 Kaffe 的開發者,也是 GCC 的貢獻者,協助 GCC 的 Java 語言支援。三年前回大學任教,專注於系統軟體領域,開設作業系統、編譯器,與嵌入式系統等課程。

Java 8 導入了一個新型態的語法: Lambda,這讓 Java 多了函數式程式設計的風味,而在 Java 7 JVM 規範中增加了 invokedynamic 這個 bytecode,於是整體 Java 程式執行變得更多元,自然效能分析也更複雜。本議程將探討 JDK8 中 JIT 編譯器的行為 (以 OpenJDK 8 為主),並且分析 JIT 所 inline 的指令,進而探討 HotSpot profiling,也一併觀察 Lambda 表示法一類新特徵對效能的影響。

1. 本場次為中文