I'm working on a big Java project which has been around for a while (i.e. before my time). The program operates in several phases and many objects get retained from the earlier phases and are used in later phases. I've found several groups/categories of object which get retained for no good reason but I suspect there are more.

So my question is, are there any good tools which can show me which Objects haven't been touched since a particular point in time continued not to be touched until the end of the program. I've been using "yourkit" to examine all the objects but it's often unclear whether they need to be retained or not. If I had something which combined the memory calculations/reporting of yourkit with some kind of coverage tool, I'd be a happy man.