Map等をつかっているとデータが消えなくて、よけいなオブジェクトがのこってしまう。
そして最終的にout of memoryエラーがでたアプリケーションが死んでしまうということが多々あります。
かといってMapは非常に使いやすいので(連想配列みたいなものなので)頻繁につかってしまう。
そんなあなたにおすすめなのがweakHashMapを使う方法。
Threadセーフではないのですが、単なる参照としては結構使える。
大元の通常HashMap(ConcurrentHashMapやほかの参照方法でもかまいませんけど。)とそれ以外の部分で参照に使うWeakHashMapの組み合わせ。
これを利用すると、大元のデータを削除したあとにGCがはしればきれいになくなりますのでなかなか使えます。
WeakHashMapを使いたくない場合はWeakReferenceを利用してもOK
とりあえず本日確認したかった事項その1はこれでおわりです。
0 件のコメント:
コメントを投稿