這一講大概講了Java平臺(tái)的組成部分:
- Java語(yǔ)言特性。
- 基礎(chǔ)類庫(kù)劳翰。
- JVM平臺(tái)敦锌。
- 工具。
對(duì)JVM的編譯運(yùn)行機(jī)制著墨稍多佳簸。知識(shí)點(diǎn)有:
- JVM加載字節(jié)碼后乙墙,會(huì)解釋或編譯執(zhí)行。JDK默認(rèn)是混合模式(
-Xmixed
)生均√耄可以用參數(shù)-Xint
關(guān)閉編譯,只進(jìn)行解釋執(zhí)行马胧;用參數(shù)-Xcomp
關(guān)閉解釋汉买,先編譯再運(yùn)行機(jī)器碼。
在服務(wù)器上做了三種模式的驗(yàn)證佩脊,解釋模式最慢蛙粘,編譯模式其次,混合模式最快威彰〕瞿粒可能是場(chǎng)景太簡(jiǎn)單了,編譯執(zhí)行的優(yōu)勢(shì)沒(méi)發(fā)揮處理歇盼。
xxx@SR5S6~> java -Xcomp PerfTest01 10000000 10
Elapsed time: 13.406
xxx@SR5S6~> java PerfTest01 10000000 10
Elapsed time: 9.033
xxx@SR5S6~> java -Xint PerfTest01 10000000 10
Elapsed time: 309.356
- Oracle JDK9引入AOT特性舔痕,即將字節(jié)碼編譯成機(jī)器碼。使用方法如下:
jaotc --output libjava.base.so --module java.base
jaotc --output PerfTest01.so PerfTest01.class
java -XX:AOTLibrary=./PerfTest01.so,./libjava.base.so PerfTest01 1000000 10