Another way of using the Memleak tool is to validate a hypothesis about memory management in an application. Such a hypothesis could for example be "when I remove all contacts from my contact list, no Contact
objects should be left in the system". Because of the interactive nature of the Memleak tool, this is a very powerful way of finding leaks, especially in an interactive application. A huge amount of such scenarios can be tested without interruptions caused by, for example, dumping heaps to files. If done well and with enough systems knowledge, finding the leaks can be a very quick business.
For example, consider a simple address book application. The application is a self-contained Swing application implemented in a single class named AddressBook
. The class contains a few inner classes, of which one is the representation of a contact—AddressBook$Contact
. In the application, we can add and remove contacts in the address book. One hypothesis we may want...