Integrating region memory management and tag-free generational garbage collection
Research output: Contribution to journal › Review › Research › peer-review
Standard
Integrating region memory management and tag-free generational garbage collection. / Elsman, Martin; Hallenberg, Niels.
In: Journal of Functional Programming, Vol. 31, e4, 2021.Research output: Contribution to journal › Review › Research › peer-review
Harvard
APA
Vancouver
Author
Bibtex
}
RIS
TY - JOUR
T1 - Integrating region memory management and tag-free generational garbage collection
AU - Elsman, Martin
AU - Hallenberg, Niels
N1 - Publisher Copyright: © The Author(s), 2021.
PY - 2021
Y1 - 2021
N2 - We present a region-based memory management scheme with support for generational garbage collection. The scheme features a compile-time region inference algorithm, which associates values with logical regions, and builds on a region type system that deploys region types at runtime to avoid the overhead of write barriers and to support partly tag-free garbage collection. The scheme is implemented in the MLKit Standard ML compiler, which generates native x64 machine code. Besides demonstrating a number of important formal properties of the scheme, we measure the scheme’s characteristics, for a number of benchmarks, and compare the performance of the generated executables with the performance of executables generated with the MLton state-of-the-art Standard ML compiler and configurations of the MLKit with and without region inference and generational garbage collection enabled. Although region inference often serves the purpose of generations, combining region inference with generational garbage collection is shown often to be superior to combining region inference with non-generational collection despite the overhead introduced by a larger amount of memory waste, due to region fragmentation.
AB - We present a region-based memory management scheme with support for generational garbage collection. The scheme features a compile-time region inference algorithm, which associates values with logical regions, and builds on a region type system that deploys region types at runtime to avoid the overhead of write barriers and to support partly tag-free garbage collection. The scheme is implemented in the MLKit Standard ML compiler, which generates native x64 machine code. Besides demonstrating a number of important formal properties of the scheme, we measure the scheme’s characteristics, for a number of benchmarks, and compare the performance of the generated executables with the performance of executables generated with the MLton state-of-the-art Standard ML compiler and configurations of the MLKit with and without region inference and generational garbage collection enabled. Although region inference often serves the purpose of generations, combining region inference with generational garbage collection is shown often to be superior to combining region inference with non-generational collection despite the overhead introduced by a larger amount of memory waste, due to region fragmentation.
U2 - 10.1017/S0956796821000010
DO - 10.1017/S0956796821000010
M3 - Review
AN - SCOPUS:85101535734
VL - 31
JO - Journal of Functional Programming
JF - Journal of Functional Programming
SN - 0956-7968
M1 - e4
ER -
ID: 306674401