System and method of measuring application resource usage
AssigneeHewlett-Packard Development Company, L. P.
InventorKeith H Randall
Life of this patent
Estimating the term…
Abstract
The present invention relates generally to a system and method for measuring application memory use, and more particularly to measuring heap usage of each of a plurality of applications running inside a single heap. Preferred embodiments of the present invention work by traversing a set of objects in a heap. During this traversal, sets of strongly connected components are identified. Additionally, representative objects of the sets of strongly connected components are identified and a topological sort order of the objects is established. Further, during a second traversal of the objects, the topological sort order is used to identify one or more applications responsible for each of the strongly connected component sets. And, in the process, the resource usage of each application is computed.
Claims23
A method for determining usage of a resource by a set of applications running under a single virtual machine, the method comprising:
- associating components with respective ones of the running applications that are responsible for the respective components;
- identifying respective ones of the components that are shared by more than one of the running applications;
- for each of the identified shared components, apportioning respective amounts of the resource required by the identified shared component to the ones of the running applications sharing the identified shared component;
- and
- for each of the running applications in the set, determining a respective total amount of the resource used by the running application based on a sum of respective amounts of the resource required by unshared ones of the components associated with the running application and the respective required amounts of the resource apportioned to the ones of the identified shared components that are associated with the running application.
A computer program product for determining usage of a resource by a set of applications running under a single virtual machine, the computer program product for use in conjunction with a computer system, the computer program product comprising a non-transitory computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising one or more software modules having executable instructions for:
- associating components with respective ones of the running applications that are responsible for the respective component;
- identifying respective ones of the components that are shared by more than one of the running applications;
- for each of the identified shared components, apportioning respective amounts of the resource required by the identified shared component to the ones of the running applications sharing the identified shared component;
- and
- for each of the running applications in the set, determining a respective total amount of the resource used by the running application based on a sum of respective amounts of the resource required by unshared ones of the components associated with the running application and the respective required amounts of the resource apportioned to the ones of the identified shared components that are associated with the running application.
Dependencies are inferred from the claim text.