Day3 Keynote:IBM Keynote & Java Community Keynote
ここからは、イベント終盤となる三日目に行われた、最後のキーノートについて紹介します。その構成は例年通り、前半をDiamond SponsorであるIBMが担当し、後半はコミュニティによる寸劇が行われるという流れでした。
社会活動から言語仕様の策定まで。マクロ/ミクロ両輪でのコミュニティ貢献――IBM Keynote
30分余りの短いセッションの中では、IBMのコミュニティ活動について概略的に紹介がなされました。社会に向けたCode for Code[3]という取り組みや、Eclipse FoundationにおけるJakarta EEやMicroProfileなどのエンタープライズJavaフレームワークへの活動、そしてAdoptOpenJDK(第2回レポート参照)へのスポンサード。モデレーターのPratik Patel氏(Atlanta JUG President、IBM Lead Developer Advocate)が、各活動の関係者を入れ替えながら次々と紹介していくことで、IBMとしていかに多方面からコミュニティへ貢献しているかがアピールされました。
[3] Call for Code:「コード」によってエンジニアの手で世界中を変革することを、長期にわたり推進する活動。初回は「自然災害」をテーマにアプリ開発のコンペが行われた
登場したテーマで注目されるものを抜粋していきます。まず取り上げたいのは、MicroProfileの今後に関する情報です。MicroProfileはマイクロサービス向けの機能に特化したフレームワークですが、同団体で扱うJakarta EEにゆくゆくは取り込んでいくという発言がありました。これまでもその意図があると各所で言及されていたものの、今回このキーノートという場で明言されたということは、コミュニティによる意思と判断できる状況に到達したと見てよいでしょう。
2つ目の注目テーマはOpenJ9です。IBMがEclipse Foundationに寄贈しOSS化した、同社独自のJVMですが、既存のものに比べたパフォーマンスの優位性について提示されました。OpenJDKとOpenJ9の組み合わせは、既存環境と比較してメモリフットプリントが50%減少し、起動は42%高速化、さらにピーク時の処理速度は3倍になるとのこと。これはかなりインパクトの強い数値で、おそらくユースケースによって異なることが見込まれます。正確な評価はこれからユーザーによって行われていくところではありますが、OpenJ9の使用を検討する動機の一つとしては十分な情報と言えるでしょう。
3つ目の注目テーマは「JIT as a Service」です。こちらはより業界影響の大きい技術となりうるものでしたので、詳細に見ていきます。
「JIT as a Service」――クラウドにおけるJVMの「解答」
どのような構想であるかは、スライドを追うと一目瞭然です。まずは見ていきましょう。
[4] AOT:Ahead-Of-Timeコンパイラ。事前にコンパイルする方式。実行時のコンパイルが不要となるため、JVM起動直後のアプリケーション処理速度は一般にJITより高速になる
[5] JIT:Just-In-Timeコンパイラ。実行時にコンパイルする方式で、Javaでは一般にこちらが用いられる。実行状況を分析して随時再コンパイルし最適化するため、実行が繰り返されるたびに処理速度は高速化していく
JITをサービス化することによるメリットとして挙げられたのは、まず第一に、同じコードを各JVMにて個別にコンパイルする必要がなくなるということ。これにより性能向上はもちろん、クラウドリソースを浪費しないという点でコスト削減も見込まれます。もう一つのメリットは、各JVMのサイズも縮小されること。その特長はコンテナ型仮想化などとの相性を高めるでしょう。そして三点目として挙げられたのは、JITそのものが他のクラウドサービスにアクセスできるようになるということです。それによって実現する「よりスマートなJIT」は、人工知能やアナリティクスを活用し、JITの性能や機能性をより高める、という構想が述べられました。
壮大な構想に「実現までに何年かかるのか」と問うた司会者への回答代わりとして、現状のパフォーマンスを示すデモが行われました。グラフのみの提示でアプリケーション特性などの説明はなく、あくまで参考値になるかと思いますが、今後に期待のかかる数値でした。