Investigating High Memory Churn via Object Lifetime Analysis to Improve Software Performance
Sprache des Titels:
11th Symposium on Software Performance (SSP'20)
High memory churn occurs when many temporary objects
are created and shortly thereafter collected by
the garbage collector. Such excessive dynamic allocations
negatively impact an application's performance
because (1) a great number of objects has to be allocated
on the heap and (2) an increased number of
garbage collections is required to collect them.
In this paper, we present ongoing research on how
to support developers in detecting, understanding and
resolving high memory churn in order to improve
their application's performance. Based on a recorded
memory trace, an algorithm automatically searches
for memory churn hotspots and calculates the age
at which objects die within it, since objects that die
young are the major contributors to memory churn.
Information about these objects, for example their
types and allocation sites, can then be inspected in
order to locate the problematic code locations.
To demonstrate the feasibility and applicability
of our approach, we implemented and present a
new memory churn analysis feature in AntTracks,
our trace-based memory monitoring tool.