Go to Contents Go to Java Page

JavaOne 2005 SF

6/28 JavaOne 第 2 日

Smile

今日も昨日と同じように朝は雨がパラパラしていてたのですが、昼になるといい天気になります。

今年は去年より確実に参加者が増えているような気がします。どこにいっても行列ができています。まぁ、行列は JavaOne 名物だといえないことはないのですが。

今日はちょっとした理由で BOF を聴講することができませんでした。詳しくはおまけで。

というわけで、今日聴講したのは

General Session

もともと今日は開始時間が 8:30 だったのですが、30 分繰りあげて 8:00 開始です。ところが、8:00 になっても待ち行列はまったく動きません。結局、繰りあげたのはぜんぜん意味がなくて、8:30 に開始しました。

このせいで、終了時間ものびて、General Session のすぐ後の Technical Session が出られませんでした。

General Session
会場をビデオで撮影する川原さん
General Session
司会は John Gage
General Session
後ろの黄色いのはパパイヤです
General Session
Scott McNealy

 

General Session
Scott McNealy の後ろ姿
General Session
Sun に買収された SeeBeyond の Jim Demetriades
General Session
Axalto の Olivier Piou
General Session
若い... ^^;;

 

General Session
シルエット
General Session
Brazil National Health System の Fabiance Nardo
General Session
さて、今年の Duke's Choice Award は?
General Session
これが Duke 像

 

General Session
General Session
General Session
General Session

 

General Session
General Session
General Session
General Session

 

General Session
General Session
General Session
General Session

 

General Session
General Session
General Session
General Session

 

General Session
General Session
General Session
General Session

 

General Session
General Session
最後にみなで記念撮影
General Session
Duke's Choice Award の後に James Gosling に金の Duke が
General Session
今日は遠心力で T-Shirt を飛ばそうとしましたが、飛びませんでした ^^;;

 

General Session
ランチャーのアップ
General Session
基調講演後にサインをしてもらう小出先生
General Session
James Gosling と記念撮影
General Session
川原さんとも記念撮影

 

Duke's Choice Award を NTT DoCoMo と九州工業大学の小出研究室の方々が取れたのは本当にうれしいですね。特に小出研の方たちは以前から Project Looking Glass を通じた知り合いなだけにうれしさひとしおという感じです。

James Gosling に贈られた金の Duke ですが、これは James Gosling には秘密だったようです。James Gosling はかなり感動していたようで、うるうるしていたという目撃談ありです。

 

Technical Session

今日ははずれが多かったです。はずれだとかなりがっくしきてしまいます orz。

TS-7143 Project Jackpot: A New Java Technology for Source Translation
Sun Microsysms Tom Ball, Rob Demmer, Jan Stola

Jackpot は JavaOne に来る前はぜんぜん知りませんでした。こういうのに知りあえるのも JavaOne の醍醐味かもしれません。

Jackpot は NetBeans のプロジェクトの 1 つで、自動ソース整形 & リファクタリングツールのようです。

ソースコードを解析し、安全にかつ精確に変換できるパターンを見つけ出し、最低限の変更を加えていきます。もちろん、変更した部分はロールバックできるようにしてあるらしいです。

Jackpot の使い方としては次のような例があげられていました。

コードの変換は事前にルールを用意しておきます。「A を B に変換する」というパターンだけでなく、「A の中の x が y ならばA を B に変更する」というような条件も記述可能です。

ルールは動的に変換され、コンパイルされます。

Jackpot は NetBeans の 4.1 から使えるようになるらしいです。

 

TS-7330 Profiling in the Real World
Sun Microsysms Jack Catchpoole, Ian Formanek, Patrick Keegan, Gregg Sporar

本当は昨日の JFluid のセッションを聞きたかったのですが、時間があわなかったのでこちらにしました。

NetBeans Profiler (JFluid) に関するセッション。

既存のプロファイラは

などの技術が用いられています。

JVMPI/JVMTI を使用すると詳細な情報をとれるのですが、オーバヘッドがかなり大きく、そのため正常に動作しないアプリケーションもあります。

BCI はバイトコードを操作して、プロファイリングのためのコードを埋め込んでしまうものです。埋め込む量が多くなればオーバヘッドが大きくなり、少なければ得られる情報は少なくなってしまいます。

サンプリングはオーバヘッドは小さいのですが、その分得られる情報も限られてしまいます。

結局、オーバヘッドと情報のバランスの問題に帰結するわけです。

BCI を使えば、はじめはある程度おおざっぱにプロファイリングして、だんだんと問題の箇所を詳細にプロファイリングするということも可能です。

しかし、既存の BCI ではバイトコードを操作できるのはクラスローディングの時だけなので、何度も実行をおこなわなければなりません。

そこで、Dynamic Byte Code Instrumentation (DCBI) が登場します。

DBCI はアプリケーションが実行中にバイトコードを操作します。たとえば、メソッドを操作した場合、捜査した結果は次にメソッドがコールされたときから有効になります。

ここでの DBCI は JVMTI の redefineClass メソッドを使用して実現しているため J2SE 5.0 以降でないと使用することができません。

DBCI の利点は

DBCI を使ってプロファイリングできるのは CPU だけだと思っていたのですが、メモリプロファイリングにも使っているようです。

メモリリークを発見するには各オブジェクトをトラッキングする必要がありますが、ここではすべてのオブジェクトではなく 1/10 ぐらいをトラッキングするようです。それでも、全体的な傾向はつかめるらしいです。

また、オブジェクトの寿命を調べることでリークを発見しやすくしているようです。

 

おまけ

川原さんと明日の打ちあわせをしたいのですが、川原さんはとても忙しく、なかなか時間をとることができません。しかし、今日日本の Sun がパーティが開かれ、そこに川原さんがあらわれるという情報をえたので、セッション終了後 Argent Hetel へ。

そこで、川原さんとあうことができ、打ちあわせもすることができました。ところが、川原さんの手には Dukelele が。そして、私の手にもなぜか Dukelele が。

そうするとどうなるか。

なんと、川原さんは日本 Sun の社長である Dan Miller に The Police の Every Breath You Take を歌わせてしまったのです ^^;; その後も、いろんな人の歌の伴奏をしました。その中には稚内北星学園大学の丸山学長も。

それにしても川原さんは有名人なので皆さん認識できていると思うのですが、私のことは川原さんが連れてきた芸人だと思った方も多いのではないでしょうか ^^;; 本当はそんなことはなくて、寡黙で静かな人間なんですが...

というわけで、今日は BOF に出られなかったのです。

(30 June 2005)