| CPC G06F 12/0269 (2013.01) [G06F 2212/702 (2013.01)] | 24 Claims |

|
1. A computer-implemented method to identify objects with memory allocations which cause undesired garbage collection in a distributed computing environment, comprising:
receiving, by an agent, object allocation notifications from a garbage collecting memory management system, where the object allocation notifications identify object allocations in a heap memory and the agent is instrumented into a process being monitored on a host computing device;
for each object allocation notification received from the garbage collecting memory management system, registering with the memory management system to receive an object collection notification for a given object, determining a number of garbage collection runs for the given object at the time the given object is allocated, and determining a memory allocation size for the given object, where the object allocation notification identifies the given object and the object collection notification indicates deallocation of the given object;
receiving, by the agent, object collection notifications from the memory management system;
for each object for which an object collection notification was received from the memory management system, determining a number of garbage collection runs for a given object at the time the given object is deallocated, and determining a number of garbage collection runs that occurred between allocation and deallocation of the given object based on the number of garbage collection runs for the given object at the time the given object is allocated and the number of garbage collection runs for a given object at the time the given object is deallocated;
from amongst objects for which an object collection notification was received from the memory management system, determining objects with a highest survived garbage collection size, where the survived garbage collection size for a given object is calculated by the agent as product of the number of garbage collection runs that occurred between allocation and deallocation of the given object and the memory size allocated to the given object; and
presenting the objects with the highest survived garbage collection size to an operator.
|