What features should a tool have to fix memory leaks?
A short list of features which we find well suited: • Can take heap snapshots. • Can create a diff from snapshots. • Finds all references to an instance. • Show the reference graph from reference up to a static root or the main instance. • Should be able to simulate solutions because an object can often be reached on multiple ways. • Show the heap so as the garbage collection would work on the fly. Because you should not need to pay attention to the garbage collection. Important too is how a tool lets you navigate through a reference graph and how intuitively it displays the information. A tool showing only one level of a reference graph will not help very much. Reference graphs not seldom reach more than 100 levels.