[Biojava-dev] DP memory leak
Lachlan James Coin
lc1 at sanger.ac.uk
Tue Jan 6 08:13:27 EST 2004
I wasn't sure if there was enough consensus to commit my changes, so I
haven't fixed anything yet:
- adding a deregisterAlphabet(name) method to AlphabetManager and
calling this from finalize in SimpleMarkovModel
- making alphabetToIndex a WeakHashMap (I'm not 100% sure that this is
OK with regard to standard alphabets)
Lachlan
Thomas Down wrote:
>Did this problem ever get fixed? I've got a DP application
>leaking pretty badly right now.
>
>If the answer is no, would anyone object to me implementing
>the weak-reference solution? (which might require a little
>bit of magic so that the `well known' alphabets don't get
>unloaded immediately after BJ initializes. *sigh*).
>
> Thomas.
>
>Once upon a time, Matthew Pocock wrote:
>
>
>>Hi,
>>
>>Lachlan James Coin wrote:
>>
>>
>>
>>>Hi,
>>>
>>>I came across a bit of a memory leak while using the dp code. The
>>>problem is that AlphabetManager keeps a reference to every alphabet
>>>created, including StateAlphabetcreated when using the dp package. I
>>>had extended the EmissionState class in such a way that the instances
>>>were of a non-trivial size. I am also creating (one after the other)
>>>a lot of different state alphabets. The result was that I ran out of
>>>memory farily quickly.
>>>
>>>
>>Hehe. That's an unforseen use-case bug.
>>
>>
>>
>>>One possible fix I thought of was to add "deregisterAlphabet(name)"
>>>method to AlphabetManager, and to call this from the finalize mehod of
>>>SimpleMarkovModel, so that when the garbage collector thinks it can
>>>clear the markov model the statealphabet is removed from the
>>>AlphabetManager registry and can then also be garbage collected.
>>>Also, it would be necessary to make alphabetToIndex a WeakHashMap.
>>>
>>>
>>This may work - but it adds API.
>>
>>
>>
>>>Any other suggestions? Can I make these changes?
>>>
>>>
>>How transparent can we make this? How easy would it be for alphabets to
>>be dropped automatically when not needed any more? I guess we don't want
>>to drop DNA & friends :)
>>
>>
>>
>>>Thanks,
>>>
>>>Lachlan
>>>
>>>
>>>
>>Matthew
>>
>>_______________________________________________
>>biojava-dev mailing list
>>biojava-dev at biojava.org
>>http://biojava.org/mailman/listinfo/biojava-dev
>>
>>
>
>
>
More information about the biojava-dev
mailing list