今日も昨日と同じように朝は雨がパラパラしていてたのですが、昼になるといい天気になります。
今年は去年より確実に参加者が増えているような気がします。どこにいっても行列ができています。まぁ、行列は JavaOne 名物だといえないことはないのですが。
今日はちょっとした理由で BOF を聴講することができませんでした。詳しくはおまけで。
というわけで、今日聴講したのは
もともと今日は開始時間が 8:30 だったのですが、30 分繰りあげて 8:00 開始です。ところが、8:00 になっても待ち行列はまったく動きません。結局、繰りあげたのはぜんぜん意味がなくて、8:30 に開始しました。
このせいで、終了時間ものびて、General Session のすぐ後の Technical Session が出られませんでした。
Duke's Choice Award を NTT DoCoMo と九州工業大学の小出研究室の方々が取れたのは本当にうれしいですね。特に小出研の方たちは以前から Project Looking Glass を通じた知り合いなだけにうれしさひとしおという感じです。
James Gosling に贈られた金の Duke ですが、これは James Gosling には秘密だったようです。James Gosling はかなり感動していたようで、うるうるしていたという目撃談ありです。
今日ははずれが多かったです。はずれだとかなりがっくしきてしまいます orz。
Jackpot は JavaOne に来る前はぜんぜん知りませんでした。こういうのに知りあえるのも JavaOne の醍醐味かもしれません。
Jackpot は NetBeans のプロジェクトの 1 つで、自動ソース整形 & リファクタリングツールのようです。
ソースコードを解析し、安全にかつ精確に変換できるパターンを見つけ出し、最低限の変更を加えていきます。もちろん、変更した部分はロールバックできるようにしてあるらしいです。
Jackpot の使い方としては次のような例があげられていました。
コードの変換は事前にルールを用意しておきます。「A を B に変換する」というパターンだけでなく、「A の中の x が y ならばA を B に変更する」というような条件も記述可能です。
ルールは動的に変換され、コンパイルされます。
Jackpot は NetBeans の 4.1 から使えるようになるらしいです。
本当は昨日の 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)