月曜日 11 26, 2007

ゴミ回収日とSun Tech Days

今日は私の住んでいる町の廃品回収の日でした。

廃品に限らず、日常出るゴミも、決められた時間帯に、決められた場所にきちんと出すのは、市民としての当然の義務です。そして、それは我が家では私の仕事です。毎朝、その日のゴミを確認して、家の前の所定の場所に置くことを正確に行う必要があります。最近は慣れてきたので、普通にできるようになりましたが、最初のうちは失敗もありました。

朝、カバンとゴミ袋を持って家を出るのですが、家を出たとたん会社のことを考え始めるためか、ゴミのことを忘れ勝ちです。駅の近くまで、ゴミ袋を運んでしまったこともありました。そのときは生ゴミでしたので、それをもって混んだ通勤列車に乗るわけにもいかず、家まで戻りました。目立つ色(オレンジ!)をした生ゴミの袋を持って朝の人の流れに逆らって歩くのは恥ずかしかったです。

それと言うのも、ゴミ回収車に 持っていって貰うためには、私が持っていてはダメで、所定の場所に置いて初めて正式にゴミとして認められるからです。これはJavaのGC(Garbage Collection)の仕組みと同じです。いらなくなったオブジェクトでも、それを持っている人がいる限りはゴミ回収の対象とはなりません。Javaのオブジェクトは、それへの参照が無くなって始めてGCの対象として認められます。

いらなくなったオブジェクトがそれへの参照があるために、GCの対象にならず、ヒープ・メモリ上に残ってしまうことをメモリー・リークと呼びます。これは、性能劣化の原因になるだけでなく、最悪の場合は、メモリ不足により、アプリケーションが動作不能になります。通勤列車に生ゴミを持って乗るようなものです。

長くなってしまいましたが、ここまでが前置きです。本日はSun Tech Days 2007の話をするのでした。11/6-8 に開催されましたSun Tech Daysですが、盛況のうちに終了することが出来ました。ありがとうございました。資料はここからダウンロードすることが出来ます。

ここでは、ハンズオン・ラボのひとつとして行われた"Finding Memory Leaks Using the NetBeans Profiler" (NetBeans 6.0のプロファイラーを使ったメモリ・リークの検出方法)を振り返ります。手前味噌になってしまいますが、特に、Excercise 2. のNetBeansプロファイラーを使って"HttpUnit"のメモリーリークを特定する演習は出色の出来だと思います。

まず、この演習が事実に基づいていることが挙げられます。これは、スペインのAndrés Gonzálezという方がNetBeanプロファイラを使ってHttpUnitのメモリーリークを特定した事実に基づいています。実際にどう見つけたかはここから参照可能です(スペイン語ですが。。。。)。デバッガや、プロファイラ等のツールを使って問題を特定するという演習では、予めわざとらしいバグを仕込んでおいて、それを見つけさせるというものに成り勝ちです。この演習にはそのわざとらしさがありません。

さらに良い点は、問題のメモリーリークはNetBeansのプロファイラ無しでは特定困難であったことです。プロファイラの機能を十分に活用することにより、問題が解決出来ました。一般に、少量で、不定期的に起こるリークは特定が困難です。逆に定期的に大きくリークするのであれば、プロファイラ等のツール無しでも問題の特定は容易です。この演習では、エラー処理の部分で少しだけリークするためツール無しでは特定が困難なものであると言えます。

是非この演習をやってみてください。Exercise 2.だけでも十分な価値があります。正直に言うと、他の演習のなかにはわざとらしいものもあります。ソースコードや手順を含む全ての資料はここからダウンロード可能です。

最後に少しだけ、お詫びと修正です。お勧めしているExercise 2.ですが、添付のコードに少し問題があります。正確に言うと、問題がないことが問題です。メモリー・リークを修正した方のファイルを入れてしまいました。お手数ですが、ダウンロードしたZIPファイルを展開して、JavaScript.javaというファイルの204行目のコメントを外して下さい。

本能的に、修正を入れた方のファイルをアップロードしてしまったことが原因です。

 

About

岩片 靖

PKCS#11、認証局、SET、SSL、S/MIME、オンライン・バンキング、Liberty、Identrusをはじめとする各種セキュリティ・システムの実装、実証実験に参加、現在はIdentity ManagerおよびAccess Managerを担当しています。これまでの経験をもとにアイデンティティの管理全般にわたる情報を提供します。 Ph.D.(組合せ論専攻)でもあるので、暗号の仕組みや、パズルなど面白い話題も提供できたらと考えています。

Search

Archives
« 4月 2014
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
今日