怒Mは思いつきでモノを言う

やったことメモなどなど

「Java Day Tokyo 2018」に行ってきた。①

2018年5月17日(木)に開催されたJava Day Tokyo 2018に行ってきました。 基調講演は途中から参加で、用事があった夕方頃までセッションを聞きました。

で、気になった点をメモ書き。

[JSE-1] Java in a World of Containers

コンテナサイズを小さくしたい話

Docker ImageにJDK9の全てをインストールすると600MBくらいになっちゃうから 小さくしたい!という場合に、いくつか選択肢があるよーという話し。

Install JDK サイズ
Full JDK 568MB
java.base 46MB
netty 60MB

最小のJDKモジュールとして、java.baseというのがあるとのこと。
JDK9から導入されていて、java.io、java.lang、java.utilとか基本的なパッケージが含まれています。

java.base (Java SE 9 & JDK 9 )

Nettyは、非同期のイベントドリブンWebアプリケーション用Frameworkです。
知らなかったのですが、軽量なんですねー。

Netty: Home

Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.

jlinkを使って必要なモジュールだけに絞るやり方があるようです。

docs.oracle.com

一連のモジュールとその依存関係をカスタムランタイムイメージにしてくれる!ようです。
必要な分のモジュールだけにするから軽くなるってことなんですね。
モジュールの依存関係についてはjdepsを使うと分かるとのこと。

docs.oracle.com

そもそもモジュールを理解していないので、そこから学ばねばならないです。

LinuxのDocker Imageは「Alpine Linux」がおすすめ。なんと4MB。

これらの情報をもとにすることで、小さいDocker Imageが作れます。

スタートアップ時間とかJVM間のデータ共有の話

ここはキーワードだけ。

Class Data Sharing(CDS) docs.oracle.com

Ahead of time(AOT)
まだ実験中?

コンテナリソースの制限の話

ここもメモメモ。 CPUとMemoryのリソースを適切に行いましょう。 CPUについては、PCのCPUは把握していたけど、 使っていいCPU数がわからなかったけど、ちゃんと割り当てできるようになった。

[JSE-6] Java Mission Control 6.0 と新しい Java Flight Recorder

JDK9からJMCのバージョンが6.0になりました。 前回のJava Day Tokyo 2017はリリース前で概要の話とか、 JMC5.5の使い方がハンズオンであったと記憶しています。

Java Mission Control(JMC)、Java Flight Recorder(JFR)については、 以下のサイトを参照してください。

docs.oracle.com

Eclipseのpluginでインストールして使用することができます。

f:id:do_m_gatoru:20180520231450p:plain

jmcコマンドでJMCそのものを起動することもできます。(こっちが普通?)
JFRは現時点では本番環境で利用する場合は、商用ライセンスが必要です。
個人利用や検証目的の利用の場合は無償で利用できます。

JDK11からはOpen JDKでも利用でき、無償で利用できるようになります。
JDK11は2018年9月リリース予定です。

Java Mission Control 6.0 リリース・ノート

気になるところをピックアップします。

フライト記録の自動分析

Java Mission Controlにフライト記録の自動分析機能が追加されました。搭載されたルールとヒューリスティックによりアプリケーション内> で問題が起こっている場所やパフォーマンスの問題の発見を手助けしたり、チューニングのヒントをくれたりします。

Automated Analysis Results f:id:do_m_gatoru:20180520231337p:plain

新しいナビゲーション

ページ間のナビゲーションは側面・ビューという新しいJFRエディタの中に移動しました。自動分析結果は各ページに関連付けられており、それぞれのページに関係する結果が見つかった場合、ページアイコンのオーバーレイに表示されます。

f:id:do_m_gatoru:20180520232131p:plain

f:id:do_m_gatoru:20180520232214p:plain

f:id:do_m_gatoru:20180520232231p:plain

問題がありそうな場合や、そうではない場合で、アイコンが変わります。 アイコンをClickすると自動分析の内容が表示されます。

仕事とかで使ったことないんですけどね!

終わりに

他にも、以下の2つを聞いてましたが、メモ書きはまた今度。

  • [JSE-2] Project Valhalla
  • [TEC-4] Java in Serverless Land

これから、どんどんJavaの機能が追加されて、できることが増えていくんでしょうね。
最近特に思うのは、英語力が欲しいという点。 高校の実力テストで27点とった時に「お前、ふざけてんの?」と英語教師に言われたのがトラウマで英語の勉強に身が入らなくなった病気にかかってしまい。 けど、Globalのコミュニティに参加するのも楽しそうだなーと感じる今日この頃。