GraalVMに入門してみた
2021/10/31 Java女子部 ハロウィンLT
えばた あや @aya_122
自己紹介
- 名前: えばた あや
- Twitter: @aya_122
- 好き: ラーメン二郎とイクラ
- お仕事: フリーランスでGo書いてる
今日話すこと
GraalVM触ったことなかったので、
GraalVMに入門してみた話をするよ!
今日話すこと
触りの部分だけだけどね😎
まず、GraalVMとはなんぞや
GraalVMとは
- 読み方: ぐらーる ぶいえむ
- HP: https://www.graalvm.org/
- JavaScript、Ruby、Python、などいろいろな言語で書かれた
アプリケーションを実行できる
- JVM言語で書かれたアプリケーションの実行を高速化できる
そもそもGraalってなんなの?
Graalとは
- コンパイラのこと
1. javacコマンドでコンパイル
2. javaコマンドで実行
3. バイトコードから機械語に翻訳(←これのこと!)
- Javaで書かれている
とりあえずGraalVMを触ってみる
Docker
Docker Imageが公式から用意されていたので、今回はそれを使うよ!
https://www.graalvm.org/docs/getting-started/container-images/
Polyglot
JavaScript、Ruby、Python、などいろいろな言語で書かれた
アプリケーションを実行できる
PolyglotでJavaを動かす
PolyglotでJavaを動かす
まずはJavaのバージョンを確認
(GraalVMって書いていあることが確認できる!)
PolyglotでJavaを動かす
ソースコード
PolyglotでJavaを動かす
実行してみた
いつも通りな感じに実行できる😳
PolyglotでNode.jsを動かす
PolyglotでNode.jsを動かす
Node.jsを入れて、バージョン確認
PolyglotでNode.jsを動かす
ソースコード(なんか適当なjsファイルに書いたよ)
PolyglotでNode.jsを動かす
実行してみた
他の言語も動かせた😎
Native Imageで動かす
- JavaバイトコードからOSに最適化した実行可能ファイルを生成する
- JVM言語で書かれたアプリケーションの実行を高速化できる
Native Imageで動かす
Native Imageの機能を使えるようにインストールする
Native Imageで動かす
ソースコード(さっきのと同じやつ)
Native Imageで動かす
バイトコードにコンパイルし、Native Imageのビルドをして実行可能
ファイルを生成する
Native Imageで動かす
実行可能ファイルを実行すると、OSに最適化されたコードを実行できる
まとめ
まとめ
- GraalVMの触りだけ話したよ
- いろんな言語で実行できる
- JVM言語の実行を高速化できる
- 公式のドキュメントがわかりやすかった!
- 速くなってるかの比較もしてみたいと思った、、、!
ソースコード
ここにあげて置いたよ✌
https://github.com/AyaEbata/graalvm

GraalVMに入門してみた