2016/09/21

JavaOne 2016 Day 4

このエントリーをはてなブックマークに追加

今日の夜は Appreciation Event でライブ。今年は Sting と Gwen Stefani です。

Sting は 2011 年に続き、2 回目の登場。一方の Gwen は初登場です。というか、もともとは Billy Joel のライブが予定されていたのですが、急きょ変更されたのでした。

それにしても、Sting と書こうとして、何度 String と書いてしまったことか ^ ^;; 完全に手癖になってしまっています。

ということで、今日は BOF はなしです。

Apreciation Event については、写真を含めてまた後で更新します。

  • Unified JVM Logging in JDK 9 [CON6225]
  • Java Debuggers: A Peek Under the Hood [CON1503]
  • Introduction to Modular Development [CON3707]
  • Advanced Modular Development [CON3711]

今日、イタかったのが Project Valhalla の唯一のセッションだった Unsafe Zone がキャンセルされてしまったこと。そりゃないよ。これで、今年は Valhalla 関連のセッションがなくなっていまいました ><

その代わりに聴講したのが Java Debuggers。これは David のセッションです。今年、David は 4 つもセッションを持っていてタイヘン。でも、タイミングが合わなくて、1 つも聞けないと思っていたのです。たまたま、Unsafe Zone がキャンセルされたので、Debuggers を聞くことができました。

David のセッションの後、体調がすぐれなかったので、一度ホテルに帰って寝てました。ライブまでには回復したのでよかったのですが、時差ボケもあいまって体調が不安定なのは困ったものです。

それにしても、年をとると、どんどん時差ボケがひどくなるような気がします。体力が落ちているんでしょうね。

Unified JVM Logging in JDK 9 [CON6225]

Java のシステムログって複雑怪奇で、しかもバージョンごとにいろいろ変わるし、オプションもいろいろあって分からんのです。それを Java SE 9 では統一して扱うことになりました。ということで、そういうセッションです。

スピーカーは Oracle の Marcus Larsson。資料はこちら

一番はじめに java.util.logging.Logger の話ではないよと。まぁ、お約束ですね。

今まで、ログを出力するにはいろいろとオプションがありましたが、Java 9 からは -Xlog に統一されます。でも、-Xlog の後にやっぱりいろいろと書かなくてはいけないのはしかたない。

特に、gc や cpu などどの項目を出力するかを指定するために、+ と * が使えるのですが、この指定がちょっとわかりにくい。たとえば、T1 に関する項目を表示させるためには T1 もしくは T1* のどちらかを記述します。T1 と記述すると、T1 だけに関することだけが出力されます。たとえば、T1 と T2 に関連している項目は出力されません。

T1 と T2 の両方に関連している項目も含めて、T1 に関するすべてを出力するには T1* と記述する必要があります。

それ以外にもいろいろとオプションがあるので、システムを保守している人は資料をチェックしておいた方がいいと思います。

ついでに、ログをファイルに出力して、ついでにファイルをローリングすることもやっとできるようになりました。

なお、Java 8 までの古い書き方も使えますが、新しい書き方もヒントとして出力されますよ。

Java Debuggers: A Peek Under the Hood [CON1503]

Debbuger で使用する JVMTI に関するセッション。スピーカーは前述したように David Buck です。

資料はこちら

今年の JavaOne のセッションには Under the Hood 多すぎと書きましたが、なんと Debugger に関する Under the Hood が 2 セッションもあるのです。1 つが JVM Debugging Under the Hood で、もう 1 つがこのセッション。

David によると、前者は JDI に関するセッションで、David は JVMTI と JDWP に関する部分を話すそうです。JDI は JVMTI に依存していますが、JVMTI は独立で扱うことができます。

JDI は Java Debugger Interface で JVMTI に JDWP を使用して接続して、デバッグを行うためのフレームワークです。JDWP は Java Debug Wire Protocol。JDI と JVMTI 間の通信プロトコルを決めています。

そして、JVMTI が Java VM Tool Interface。JVM のプロファイルやデバッグを行います。JVMTI は J2SE 5 まで使っていたプロファイル用の JVMPI とデバッグ用の JVMDI を統合したものです。

でも、JVMTI の概要だけでセッション終わってしまいました。具体的にデバッグ時にどういう動きするのかとか、簡単なデバッガサンプルとか出してくれればもっと分かりやすかったと思うんですけどね。

おととい、David とちょっと話したのですが、このセッションが一番準備ができていなかったらしいです。しかも、このセッションだけ録画されるらしい。そのせいもあってか、ちょっと内容が硬かったですね。

Introduction to Modular Development [CON3707]

今日の後半 2 セッションは Project Jigsaw のセッション。スピーカーは Alan Bateman。

資料はこちら

はじめに標準のモジュールの話。モジュールは java のオプション -list-modules で確認できます。

続いて、もじゅーつの定義について。って、定義もなしに標準モジュールの説明をするのは間違っているのではないのかなぁ。というか、このセッションも次の Advanced ももうちょっとセッションのストーリーを考えた方がいいと思うよ。

このセッションで理解できると考えるのが、私には信じられません。

module-info.java に依存性と公開範囲を記述してというように話は続くのですが、ほぼ去年と同じ。まぁ、しかたないか...

Advanced Modular Development [CON3711]

引き続き Jigsaw のセッション。スピーカーは前半が Alex Buckley で、後半が Alan Bateman。Mandy Chung もタイムテーブルには書いてありましたけど、話はせず。でも、会場には姿を見せてました。

資料はこちら

開口一番、Alex がこのセッションは録画しないので、何をしゃべってもだいじょうぶ。何でも質問していいよと。やっぱり Alex や Alan クラスでも、録画されるかどうかで緊張度が変わるもんなんですね ^ ^;;

資料はかなり去年と同じ。

前半が Alex で Automatic Module、後半が Alan でマイグレーションの話。

前半で異なっていたのは Automatic Modle を扱う場合、module の前に weak をつけること。weak module は 9 月になって機能リクエストとしてあがったぐらいで、私もよくわかっていません。

後半は、去年とほぼ同じかな。

0 件のコメント: