2011年9月12日月曜日

WeakHashMapに関して調べてみた。

Map等をつかっているとデータが消えなくて、よけいなオブジェクトがのこってしまう。
そして最終的にout of memoryエラーがでたアプリケーションが死んでしまうということが多々あります。
かといってMapは非常に使いやすいので(連想配列みたいなものなので)頻繁につかってしまう。

そんなあなたにおすすめなのがweakHashMapを使う方法。
Threadセーフではないのですが、単なる参照としては結構使える。
大元の通常HashMap(ConcurrentHashMapやほかの参照方法でもかまいませんけど。)とそれ以外の部分で参照に使うWeakHashMapの組み合わせ。
これを利用すると、大元のデータを削除したあとにGCがはしればきれいになくなりますのでなかなか使えます。
WeakHashMapを使いたくない場合はWeakReferenceを利用してもOK

とりあえず本日確認したかった事項その1はこれでおわりです。

0 件のコメント:

コメントを投稿