LoginSignup
1
2

More than 5 years have passed since last update.

Java Day Tokyo 2017のおもひで

Posted at

セッションスケジュール

図1.png

参加セッション

図2.png

Panamaを先取り!? JVMCIでJITと遊ぶ

ご本尊

What’s JVMCI?

JEP 243: Java-Level JVM Compiler Interface

Summary
Develop a Java based JVM compiler interface (JVMCI) enabling a compiler written in Java to be used by the JVM as a dynamic compiler

要約:Javaで書いたコンパイラをJVMで動かせるようにする。
→ Javaで(機械語)コンパイラを書く。

すごいじゃあくをかんじる

邪悪ポイント

  • Write once, run anywhere
    • CPU毎に命令セットとにらめっこしてbyte[]書いてください
  • Java API
    • 機械語レベルにそんなものはない(呼べなくはない)
  • JITによる最適化
    • お前がそれを書くのだ

見方を変えよう

  • Write once, run anywhere
    • JDKのセットなのでアプリではなくプラットフォーム側
  • Java API
    • 機械語側じゃなくてそのコンパイラで使う
  • JITによる最適化
    • お前がそれを書くのだ

面白ポイント

  • JITの状態を取得できるAPIがついてる
  • JITの状態を制御できるAPIもついてる
  • JITのプロファイル情報を取得できるAPIまでついてる
  • JNIとか使わなくてもシステムコールとかできる
  • JVM系言語を作成する際にJITと連携した別の最適化構造を導入できる
  • JVMの仕様に沿ったデータをアセンブラで取り扱うとかいう偉業ができる

感想文

  • JDK必須だし通常のアプリケーションレイヤで活用されることはほぼないはず
  • 調査、検証の用途では十分に使いどころはある
  • JVM言語系では使いどころが多そう
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2