JavaOne Tokyo 2012の2日目
JavaOne Tokyo 2012の1日目 - torutkの日記の続きです。
本日聴講セッションは次です。
- Project Jigsaw: Putting it all Together
- How to Write Low Latency Java Applicaitions
- Interface Layout with JavaFX 2.0
- SunSPOT,Ardruinoをつかったガイガーカウンターデバイスの作成について
- Learn how the JVM is fundamental to our architecture
- JavaOne Community Panel Discussion
Project Jigsaw: Putting it all Together
Java SE 8に向けたモジュール管理機構"Java Standard Module System(JSR未発行)"のベースとなるProject Jigsawの説明です。
従来のJARだけではいわゆる「JAR地獄」、組み込み等のフットプリント削減、ダウンロード・起動時間の増大といった問題が生じてきたので、グループ化/依存関係/バージョン制御/カプセル化/オプション/エイリアスなどの近代的なパッケージ管理に必要な機能を載せようというものです。
module-info.javaというファイルに、moduleキーワードを使ってモジュール名とモジュールに含めるクラス、依存関係、バージョン番号などを定義します。定義したモジュールは、拡張子.jmodのファイル(Javaモジュールファイル)として生成されます。
module com.foo { }
プログラムを実行するときはJARではなくモジュールを指定します。モジュールは所定の場所にインストールしたりネットワーク上にリポジトリを設けて配置したりといった管理機能が用意されます。
過去、そこそこ大きいライブラリを作成しアプリケーションへ提供するとき、ライブラリを複数パッケージで構成した場合、ライブラリ内では使えるがアプリケーションへは見せたくないクラスがあると、現状では制限ができませんが、Jigsawによって利用を許可するパッケージを指定できるようになるので便利です。
バージョンについては、現在はJARのマニフェストに記載できなくもないですが、手間がかかるしバージョンをチェックするのはアプリ側の責務となってしまいます。
Jigsawについては、Linuxのパッケージ管理機構(rpm, debなど)にあるような機能をJavaのモジュールに導入します。素材は提供されたので、あとはどう料理するかを研究するのが今後でしょう。
How to Write Low Latency Java Applicaitions
GCやJITによる遅延(Latency)を避けるには、というセッションです。
GCによる遅延に影響するのが、マイナーGC発生頻度、旧世代への昇格頻度などです。世代別GCでは新規オブジェクトの割り当てより、残り続けるオブジェクトが遅延に影響します。
GCについては、遅延の観点での理想は、ParallelGCを使い、フルGCを発生させないことです。
もし、旧世代のフルGCが必要となったらCMSを試すとよいそうです。CMSには、若い世代から旧世代への昇格がフリーリストのインサート処理になるため遅くなるという問題もあります。また、並列コレクタにはライトバリアが必要なためオーバーヘッドが生じます。
GCの遅延を少なくするプログラミングとしては
- 大きなオブジェクトを避ける
- コンテナクラスが内部に持つ配列のリサイズを避ける
- オブジェクトプールを避ける
- finalizeは絶対に使うな、代わりにリソースを明示的に開放するメソッドを設ける
などです。
JITについては、プログラミング上意識して最適化はするな、ということです。
また全体に最適化はまずプロファイルをしてから。
ツールの紹介をいろいろしていましたが、メモを仕切れませんでした。
Interface Layout with JavaFX 2.0
早口で英語についていけず同時通訳を利用しました。
JavaFX 2.0でのレイアウト部品の紹介と、リサイズの方法が説明されてました。
講師の方は、説明はさっさと終えてQ&Aをたっぷりとる方針でしたが、実際にプログラミングしてみないと質問も難しいので、スライド追加説明となりました。
レイアウトで説明のあったクラス。
Pane,AnchorPane,BorderPane,StackPane,HBox,VBox,TilePane,FlowPane,GridPane
RegionクラスはCSSでボーダーやマージンを制御することもできるようです。
SunSPOT,Ardruinoをつかったガイガーカウンターデバイスの作成について
SunSPOTはOracleになってからも購入可能で値段も下がったとのことです。
MacOSで使うのが推奨とのことです。
放射線計測器をSunSPOTにつなぎ、計測したデータを無線で飛ばして集計してマップを作成するということができればいいね、というストーリーで以降のプレゼンが進みます。
ここから少しJavaとは離れますが、放射線の種類と計測方式(ガイガー、半導体、シンチレーション)の説明と、ガイガーカウンタの作成のデモがありました。計測の原理については初めて知りました。
デモでは、ガイガー管が必要とする400Vに昇圧するために「写るんです」のフラッシュ回路を使いました(ばらすときに火花がちってましたが、爆発ではありません)。
SunSPOT(またはArdruino)とガイガーカウンタを太陽電池駆動し、これをSunSPOTの近距離無線範囲になる間隔で配置すれば、応用ができるのでは、というところで今回は終わりました。
Learn how the JVM is fundamental to our architecture
TwitterのエンジニアによるTwitterインフラのアーキテクチャ解説です。
Twitterはリアルタイム/ニアリアルタイムなサーバーで、トラフィックは瞬時に飛びぬけて増加するという特徴があります。昨年の震災(2011/3/11)では1日に3億4千万ツイートが全世界であったそうです。
FinagleというJavaの非同期RPCライブラリを使っています。
Twitterのアーキテクチャについては非常に詳細な解説がありました。
Fingaleについて追加メモ
JavaOne Community Panel Discussion
4つのコミュニティ(JGGUG、JRuby、Scala、関ジャバ)から代表4人が登壇してOracleの伊藤さん司会のもとディスカッションしていました。
JGGUGがアウトプット指向で、電子雑誌を出しているとの話を聞いて、我らがJava読書会も何かアウトプットできないかとちょっと刺激を受けました。
JavaOne Tokyo 2012 セッション資料公開
Oracle OTNサイトからセッション資料が公開されました(2012/04/10追記)
JavaOne Tokyo 2012のブログを集めてみた
キーノートセッションだけの記事、メディア系の記事はリストアップから外しています。
(2012/04/15 リンク追加)
- JavaOne Tokyo 2012 1日目 - ソフトウェア開発者の気になる木
- JavaOne Tokyo 2012 2日目 - ソフトウェア開発者の気になる木
- JavaOne Tokyo 2012 一日目のメモ - 日々常々
- JavaOne Tokyo 2012 二日目のメモ - 日々常々
- JavaOne Tokyo 2012 Day 1 - zephiransasのチラシの裏
- JavaOne Tokyo 2012 Day 2 - zephiransasのチラシの裏
- http://w3.quake3.jp/fantom/wordpress/2012/04/javaone-tokyo-2012-%E4%B8%80%E6%97%A5%E7%9B%AE/
- Java One Tokyoに参加 1日目 : sms日記
- Java One Tokyoに参加 2日目 : sms日記
- http://kimuchi583.at.webry.info/201204/article_5.html
- http://kimuchi583.at.webry.info/201204/article_6.html
- http://www.atware.co.jp/2012/04/06/javaone-tokyo-2012-report/
- Java One Tokyo 2012 に参加しました。#JavaOneJp | @johtani の日記
- Java One Tokyo 2012 (#JavaOneJP) に参加しました - susumuis Info
- JavaOne Tokyo 2012 に参加してきました #てらだよしおがんばった #JavaOneJP - 水まんじゅう2
- mike、mikeなるままに…: #てらだよしおがんばった JavaOne Tokyo2012 に行ってきました
- JavaOneTokyo 2012 #JavaOneJp に行ってきたよ 1日目 - @thorikiriのてょりっき
- open build/reports/life/index.html: JavaOne Tokyo 2012 1日目 に参加してきました #javaonejp
- open build/reports/life/index.html: JavaOne Tokyo 2012 2日目 に参加してきました #javaonejp
- JavaOne Tokyo 2012に行ってきた #JavaOneJP - DENの思うこと
- JavaOne Tokyo 2012参加レポート (1日目) - AOEの日記
- JavaOneTokyo2012(#JavaOneJP)のレポートをアップしてみた - @neiraza
- JavaOne Tokyo 2012 に参加してきました - Dev3TechHack
- http://www.acroquest.co.jp/member/naitei2013/activities/
- Yusuke-Memo: JavaOne Tokyo 2012に参加して~4月4日~
- Java One Tokyo 2012に行ってきました!一日目 | システムアーキテクトのごった煮
- Java One Tokyo 2012に行ってきました!二日目 | システムアーキテクトのごった煮
- hiroisojp's blog: JavaOne Tokyo 2012 1日目
- hiroisojp's blog: JavaOne Tokyo 2012 2日目
- JavaOne Tokyo 2012 参加してきた 1日目 - ITとともに生きよう
- JavaOne Tokyo 2012 参加してきた 2日目 - ITとともに生きよう
- JavaOne Tokyo 2012 1日目 : 人生、気合いと具合 - blog
- JavaOne Tokyo 2012 2日目 : 人生、気合いと具合 - blog
- JavaOne Tokyoに参加してきました - tech-kazuhisa's blog