I have a fairly complex application that has started eating RAM. Something like 100 kb/minute. How can I tell what is causing it? I don’t know what kind of monster I’ve unleashed.
You are most likely collecting references in some sort of container, like a Map or List, and never releasing them.
If you’re using any serialization, it internally collects references in a container until you reset the stream.
My guess is that most profiling tools have some sort of support for helping you detect leaks, but I’ve never had a detectable one in nearly 10 years of Java programming, so I wouldn’t know for sure.
God bless,
-Toby Reyelts