torutkのブログ

ソフトウェア・エンジニアのブログ

Javaナイトセミナー(Vol.4)「2時間集中 Javaトラブル解決ドリル」

3月27日に開催されたJavaナイトセミナー(Vol.4)のメモ、セミナーレポートの草稿です。(日記的には日付を戻して書いています)

今回は、日本サンのJavaエバンジェリスト岡崎さんによる「2時間集中 Javaトラブル解決ドリル」です。

下記URLで資料公開されています。
http://www.nsug.or.jp/seminar/_log/2007.html

セミナーレポート(草稿)

「やばい、Javaナイトセミナーに間に合わない」

今回のレポートは、セミナー開始時間に遅れて参加するには、から始めます。平日夜のセミナーの場合、仕事を早めに切り上げて参加することになりますが、時には急な飛び込み作業が発生してセミナー時間に間に合わないこともあります。
筆者もこの日はセミナーに間に合うよう17時過ぎには上がろうとしていた中、客先からの急な問い合わせ電話が入り、何とかその対応を終えたときには18時を回っていました。
「今から用賀に向かっても到着は19時半近くになってしまうだろう。セミナー開始後1時間経っているから今回の内容の半分はもう終わっているだろうな。」ともやもや考えながら、帰り支度をして会社を出ました。
途中一瞬「今日は行くのやめようかな。」という思考が頭によぎります。「半分でも有意義なことはある。それに会社外のコミュニティで知的刺激を受けることは技術者としては大事なことだ」と思い直して用賀のセミナー会場に向かいました。
到着は、電車の乗り継ぎがよく19時15分頃と思っていたより少し早い時間です。

遅れて会場に入るには

会場は既に照明を落として薄暗く、プレゼンテーションが進行中です。このJavaナイトセミナーは盛況で空席が少ないので、遅れて会場に入るときの最初の関門は席の確保です。
後ろには予備の椅子がいくつか並べられていますが、できれば机のある席がいいのです。ビールを飲み、お菓子をつまみ、メモを取りながらセミナーを聞くからです。
Javaナイトセミナーの場合、大抵前の机にはそれぞれ1,2席の空きがあります。後ろの机は遅れてきた人が空きに座るので大抵満席です。そこで、会場に入ったら前の机の空き席に狙いを定め、少し腰を落としてそろそろっと合間を縫って移動します。
今回は無事空き席を見つけ座ることができました。

セミナー内容

途中からの参加になるので、このセミナーレポートは後半部分の内容になります。

「Dtraceは、計算機負荷が高い状況では自動的にプロファイリングを停止します。」
おっ、すごい機能です。素直に感嘆してしまいました。しかし、会場から「停止した後、自動的に再開するのですか?」と鋭い質問があがり、そうだ、どうなんだろう、と回答を期待して待つと、「自動的には再開しません。」とのこと。惜しいな、Dtrace。

「交渉の材料を集めるのが重要」
「一時的な回避策は検討するが、それで良しとしてしまうと後で問題が再発するといったことに注意する」
今回のセミナーでは、対人関係の対処についても数多く触れられています。「交渉力が大事」とのこと、確かに・・・。

「VisualGC」
HotSpotのGCの活動状況をグラフィカルに表示するツールです。以前から知っていましたが、J2SE 1.4.2専用かと思っていました。JDK 6にも対応しているとのことで、帰ったら早速試してみようと思います。

「jstat」
VisualGCのコマンドライン版、JDK 6では標準なので、自分で計測結果を加工するときはこちらを使うことになりそうです。

「ヒープダンプ」
OutOfMemoryError発生時にヒープのダンプを生成するオプションがあります。jhat(JDK 6標準)、NetBeans 6(開発中)でヒープダンプの解析ができるとのこと。
また、JDK 6ではjmapコマンドで実行中のJavaプロセスのヒープを止めずにダンプすることも可能です。

こうしたツールは、「トラブル発生してからでは使い方をマスターする余力はないので、前もって使い方を把握しておくことが大事」とのこと。まさにそのとおりです。

「コードレビュー」
統合開発環境NetBeansEclipse等)では大量のコードを読み込ませると重くなり、落ちる(200クラスで重く、1000クラスだとまず落ちる)ので、ソースブラウズツールを推奨していました。
そのお勧めツールが「OpenGrok」とのことです。Webで動き、Java/C/C++などに対応し、クロスリファレンスと検索ができ、導入は簡単とのことです。

「事前の準備」
ツールの使い方を覚えるには、「実際に使ってみる」ことと、「日々の情報収集」が重要とのことです。講師の岡崎さんは実際に一日にブログ・メーリングリストを数百通にも目を通しているそうです。

最後に
岡崎さんのブログは以下URLです。
http://blogs.sun.com/okazaki/

セミナーの資料も岡崎さんのブログで公開されています。
本レポートには書ききれていませんが、いろいろなツールの紹介もありました。これらのURLも資料に記載されているので、是非ごらんください。