Patent ID: 7472132

Claim:
A computer-implementable method comprising: creating an object graph of a portion of a memory heap, wherein the object graph includes nodes that represent objects and associated properties of the objects, and wherein the object graph includes connectors that represent relationships between the objects in the memory heap; observing nodes in one or more subgraphs of the object graph, wherein the nodes represent objects that are selected for observation by a pre-determined criteria, and wherein the objects in a subgraph are observed while executing in real-time; searching for characteristic node properties of nodes that are sampled, from the subgraph, for observation; searching for characteristic topological properties of the subgraph that sampled nodes participate in, wherein the characteristic topological properties are action stereotypes that describe actions taken by a first object to call a second object; applying a set of pre-determined domain-specific pattern matching filters to the node characteristic properties and the topological characteristic properties to identify particular software component and to attribute memory usage to the particular software component in a system, wherein the pre-determined domain-specific pattern matching filters identify a particular software type that describes the particular software component; observing one or more related objects, wherein the related objects are live objects that functionally interact with nodes in the subgraph, and wherein the related objects are depicted outside the subgraph; searching for the characteristic node properties in the related objects; searching for the characteristic topological properties in the related objects; applying the set of pre-determined domain-specific pattern matching filters to the node characteristic properties and the topological characteristic properties, to the related objects, to attribute memory usage to the particular software component in the system; determining a pathway between a Garbage Collection (GC) root object and one or more observed objects that are observed in the subgraph; and applying the set of pre-determined domain-specific pattern matching filters to the pathway between the GC root object and the one or more observed objects to determine a quantity of memory usage used by a particular software component in a system.