Methods are provided for extracting reference patterns in JAVA and
depicting the same. The extracted and depicted reference patterns may be
used to interactively and selectively explore data structures, and to
identify and solve memory leaks. A method for extracting reference
relationships among objects corresponding to a running program includes
the step of designating a starting set of objects. The starting set of
objects is partitioned into subsets of objects grouped by class. A
recursive operation is applied to each of the starting subsets. The
recursive operation includes the step of, given a subset of objects,
identifying a second set of objects. The second set includes all objects
that refer to at least one object in the subset when a direction of
reference terminates at the starting set. Alternatively, the second set
includes all objects that are referred to by at least one object in the
subset when the direction of reference originates from the starting set.
The recursive operation also includes the step of partitioning the second
set into new subsets of objects grouped by class. The recursive operation
is applied to each of the new subsets until a predefined depth is reached.
De methodes worden verstrekt voor het halen van verwijzingspatronen in JAVA en het afschilderen van het zelfde. De gehaalde en afgeschilderde verwijzingspatronen kunnen worden gebruikt aan gegevensstructuren op elkaar inwerkend en selectief onderzoeken, en geheugenlekken te identificeren en op te lossen. Een methode om verwijzingsverhoudingen onder voorwerpen te halen die aan een lopend programma beantwoorden omvat de stap van het aanwijzen van een beginnende reeks voorwerpen. De beginnende reeks voorwerpen wordt in ondergroepen van voorwerpen verdeeld die door klasse worden gegroepeerd. Een recursieve verrichting wordt toegepast op elk van de beginnende ondergroepen. De recursieve verrichting omvat de stap van, gezien een ondergroep van voorwerpen, het identificeren van een tweede reeks voorwerpen. De tweede reeks omvat alle voorwerpen die naar minstens één voorwerp in de ondergroep verwijzen wanneer een richting van verwijzing bij de beginnende reeks eindigt. Alternatief, omvat de tweede reeks alle voorwerpen die door minstens één voorwerp in de ondergroep worden bedoeld wanneer de richting van verwijzing uit de beginnende reeks voortkomt. De recursieve verrichting omvat ook de stap van het verdelen van de tweede reeks in nieuwe ondergroepen van voorwerpen die door klasse worden gegroepeerd. De recursieve verrichting wordt toegepast op elk van de nieuwe ondergroepen tot een vooraf bepaalde diepte wordt bereikt.