Programs written in C/C++ can suffer from serious memory fragmentation,
leading to low utilization of memory, degraded performance, and application
failure due to memory exhaustion. This paper introduces Mesh, a plug-in
replacement for malloc that, for the first time, eliminates fragmentation in
unmodified C/C++ applications. Mesh combines novel randomized algorithms with
widely-supported virtual memory operations to provably reduce fragmentation,
breaking the classical Robson bounds with high probability. Mesh generally
matches the runtime performance of state-of-the-art memory allocators while
reducing memory consumption; in particular, it reduces the memory of
consumption of Firefox by 16% and Redis by 39%.
Description
[1902.04738] Mesh: Compacting Memory Management for C/C++ Applications
%0 Generic
%1 powers2019compacting
%A Powers, Bobby
%A Tench, David
%A Berger, Emery D.
%A McGregor, Andrew
%D 2019
%K 2019 arxiv c c++ memory paper programming
%T Mesh: Compacting Memory Management for C/C++ Applications
%U http://arxiv.org/abs/1902.04738
%X Programs written in C/C++ can suffer from serious memory fragmentation,
leading to low utilization of memory, degraded performance, and application
failure due to memory exhaustion. This paper introduces Mesh, a plug-in
replacement for malloc that, for the first time, eliminates fragmentation in
unmodified C/C++ applications. Mesh combines novel randomized algorithms with
widely-supported virtual memory operations to provably reduce fragmentation,
breaking the classical Robson bounds with high probability. Mesh generally
matches the runtime performance of state-of-the-art memory allocators while
reducing memory consumption; in particular, it reduces the memory of
consumption of Firefox by 16% and Redis by 39%.
@misc{powers2019compacting,
abstract = {Programs written in C/C++ can suffer from serious memory fragmentation,
leading to low utilization of memory, degraded performance, and application
failure due to memory exhaustion. This paper introduces Mesh, a plug-in
replacement for malloc that, for the first time, eliminates fragmentation in
unmodified C/C++ applications. Mesh combines novel randomized algorithms with
widely-supported virtual memory operations to provably reduce fragmentation,
breaking the classical Robson bounds with high probability. Mesh generally
matches the runtime performance of state-of-the-art memory allocators while
reducing memory consumption; in particular, it reduces the memory of
consumption of Firefox by 16% and Redis by 39%.},
added-at = {2019-02-18T15:08:08.000+0100},
author = {Powers, Bobby and Tench, David and Berger, Emery D. and McGregor, Andrew},
biburl = {https://www.bibsonomy.org/bibtex/2f5acf18eb6d302c52ab6811f8c6774ce/analyst},
description = {[1902.04738] Mesh: Compacting Memory Management for C/C++ Applications},
interhash = {41433fa16c9e9476508f4579ac899d15},
intrahash = {f5acf18eb6d302c52ab6811f8c6774ce},
keywords = {2019 arxiv c c++ memory paper programming},
note = {cite arxiv:1902.04738},
timestamp = {2019-02-18T15:08:08.000+0100},
title = {Mesh: Compacting Memory Management for C/C++ Applications},
url = {http://arxiv.org/abs/1902.04738},
year = 2019
}