捨てられるのはいつ?

お仕事でハマったお話。
絶賛メモリリークしてました(汗。


今、主に使ってるのはjava
それで、動的クラスロードをやってるんだけど・・・。
なぜか何時の間にかメモリ不足で落ちる(涙。


あれこれ調べて見たら、どーもスタティックフィールドのインスタンスが開放されて無いっぽい。
クラスローダによってロードされたクラスのスタティックフィールドって、開放されるタイミングはいつなんだろ・・・。
そのクラスローダを破棄した時点で、一緒に解放されると思ってたんだけど、違うのかな?
それとも、どこかで参照が残ってる・・・?


とりあえず、スタティックフィールドの内容は、使い終わったら開放するように(無理やり)変更。
根本的な解決じゃないけど、これでしばらくは生き残るはずっ(汗。