本家はこちら
GraalVMのnative-imageがそろそろ色々使えそうなので、試してみる。
Javaやってる人は SDK Man
は入ってると思うので、それ前提でメモします。
(SDK Man のインストールはこちら -> https://sdkman.io/ )
GraalVM のインストール
まずは、GraalVMのインストールを行う。
$ sdk install java 20.0.0.r11-grl
GraalVMを使ってnative-imageをinstallする
GraalVMのパッケージツールでnative-imageをinstallする。
$ gu install native-image
これでnative-image
のinstallが完了。
かんたんなJavaコードを書く
Sample.java
class Sample {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
$ javac Sample.java
コンパイルすると、classファイルができる。
Sample.class
native-imageでコンパイルする
$ native-image Sample sample // 最後のファイル名を指定しないと、デフォルトで小文字になる
下記、ファイルができる。
Sample
このファイルは実行できる。
./sample
比較する
JavaVMでの実行とnative-imageでの実行を比較する
$ time ./sample
real 0m0.007s
user 0m0.003s
sys 0m0.003s
======
$ time javac Sample
real 0m0.179s
user 0m0.110s
sys 0m0.035s
JavaVMの起動速度が入ってしまっていると思うが、結構違う。
JVMの起動後にどのくらい違うのかはまた次回。
あと、こんな1ファイルで使う人もいないと思うので、Jar
での作成方法もまた次回。