Ph.D. Proposal by Sangho Lee

Primary tabs

Title: Mitigating the performance impact of memory bloat


Sangho Lee

School of Computer Science

College of Computing

Georgia Institute of Technology


Date: November 11th, 2014 (Thursday)

Time: 1:00 PM - 3:00 PM (ET)

Location: KACB 2100




Dr. Santosh Pande (Advisor, School of Computer Science, Georgia Tech)

Dr. Alessandro Orso (School of Computer Science, Georgia Tech)

Dr. Karsten Schwan (School of Computer Science, Georgia Tech)

Dr. Hyesoon Kim (School of Computer Science, Georgia Tech)



Memory bloat is loosely defined as an excessive use of memory than is

necessary in an application. Due to the complexity of efficient memory

management, memory bloat is pervasive and is often neglected in favor of

lower application development time. Unfortunately, when the bloat

becomes severe, unwanted performance issues may occur.


In this proposal, we identify 3 pervasive causes of performance issues

due to memory bloat and present feedback-driven solutions for each.


First, memory bloat often manifests in the form of memory leaks. To

prevent the consequences of memory bloats, we first need to detect the

presence of memory leaks. We tackle this issue by augmenting a class of

dynamic memory leak detectors based on staleness tracking using a

machine learning framework. The proposed solution improves the accuracy

and utility of the detection technique by selecting good staleness

predicates for detecting memory leaks. Significant memory bloat savings

are incurred upon weeding out such memory leaks.


Second, memory bloat prevention mechanism in multi-threaded memory

allocators is another source of performance issues. When the bloat

prevention mechanism is frequently triggered unnecessarily as an

artifact of intensive memory allocations/deallocations, an application

may experience a suboptimal performance. To address this, we propose a

feedback-directed tuning mechanism for TCMalloc, a widely used memory

allocator for high performance systems. The proposed optimization

technique tunes the thread cache management mechanism in TCMalloc to the

memory allocation behavior of an application and reduces the management

cost of the internal data structures in TCMalloc. With the proposed

technique integrated into FDO in GCC, we observed up to 10% improvement in application performance.


Third, implicit memory management in managed languages such as Java is

inherently vulnerable to memory bloat as the detection and reclamation

of dead objects are performed lazily by garbage collectors. The

interruptions caused by frequent garbage collections can adversely

impact performance as well as timing properties of the applications. To

prevent the program slowdown due to excessive garbage collection

pressure, we propose a hybrid approach that identifies must-deallocation

sites of allocated objects using a static shape analysis and that

transforms an application to selectively recycle the dead objects using

a profile driven approach. With the technique, we observed a 4x

performance improvement on an application with a high garbage collection

pressure. Further improvements to object recycling framework and its

evaluation on timing properties are proposed as future work.



  • Workflow Status: Published
  • Created By: Danielle Ramirez
  • Created: 11/06/2014
  • Modified By: Fletcher Moore
  • Modified: 10/07/2016

Target Audience