先日、JVM Language Summit Feedback TOKYO に行ってきました。簡単に所感をまとめます。
所感
いつもは JJUG とか 言語関連の内容が中心の勉強会に参加することが多いのですが、今回は JVM 関連の内容が中心でした。おもしろそうだなと思って割と軽い気持ちで参加しちゃいましたが、わからないことが多くてちょっと付いていけないところがありました...。ぐぬぬ。
JVMLS や OCW はあまり聞いたことがなかったのですが、普段自分が Java を使えているのもこういうイベントでいろいろと議論されていることが土台になっているのだと思います。
以下、メモから抜粋。ただ、今回はあまりメモが取れてません。特に最後の方は力尽きました...。
JVMLS(&OCW) 2019
- 言語に関するセッションは減ってきている
- 2011年に invoke dynamic が入ったあたりから?
- 最近はほぼ JVM Summit
- Scala や Kotlin は JVMLS から巣立っていった
- Project Skara
- Mercurial から Git へ
- レビューツールや issue 管理とどう連携するか
- Java Compiler
- JIT の欠点
- コンパイラがリソースを食うので起動時に遅くなる
- 高品質なデータを集めるのに時間がかかる
- CDS (Class Data Sharing)
- JWarmup
- プロファイルデータを再利用
- Alibaba が開発
- JIT Caching
- JIT が生成したコードを再利用する
- 同じクラスタでは同じコードを利用する
- JIT as a Service
- AOT
- GraalVM の最初の目的
- Oracle DB で多言語(Truffle)を使う
- TornadeVM
- GPU 対応?
- 微分可能プログラミング
- dual number
- C2 と GraalVM
- C2 を滅ぼすのは難しい
- 共存していくではないか
Project Loom & Project Panama Update
- Loom == 織機
- スレッドの問題点
- フットプリント
- Context Switching Cost
- スレッドの状態をすべて保存 (保存する情報も多い)
- JVM が管理するスレッド == Fiber
- Operand Stack
- Stack Traces
- Thread は使い回して Task だけ切り替える
- park / unpark が使える API
- File は未対応
- Fiber = Continuation + Scheduling
- Continuation は限定継続
- Panama
- Java と Native を繋げる
- JNI に置き換わるもの?
- jextract
- Off-Heap Memory Access
- ByteBuffer / sun.misc.Unsafe
Vector API
www.slideshare.net
- Panama 配下で開発されている
- Immutable Vectors
- JIT による高速化がしやすい
- 今後は Valhalla との連携
Project Valhalla Update
- メモリのレイアウトを効率化する
- inline class
- Valhalla Update JJUG CCC Spring 2019 www.slideshare.net