US 12,475,044 B2
Method and system for estimating garbage collection suspension contributions of individual allocation sites
Philipp Lengauer, Steyregg (AT)
Assigned to Dynatrace LLC, Boston, MA (US)
Filed by Dynatrace LLC, Waltham, MA (US)
Filed on Oct. 8, 2021, as Appl. No. 17/496,949.
Claims priority of provisional application 63/090,921, filed on Oct. 13, 2020.
Prior Publication US 2022/0114092 A1, Apr. 14, 2022
Int. Cl. G06F 15/16 (2006.01); G06F 12/02 (2006.01)
CPC G06F 12/0269 (2013.01) [G06F 2212/702 (2013.01)] 24 Claims
OG exemplary drawing
 
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.