Write a Blog >>
APLAS 2019
Sun 1 - Wed 4 December 2019 Bali, Indonesia
Tue 3 Dec 2019 11:00 - 11:30 at Bali Room - Language Design and Implementation Chair(s): Sandrine Blazy

Modern memory allocators have to balance many simultaneous demands, including performance, security, the presence of concurrency, and application-specific demands depending on the context of their use. One increasing use-case for allocators is as back-end implementations of languages, such as Swift and Python, that use reference counting to automatically deallocate objects. We present mimalloc, a memory allocator that effectively balances these demands, shows significant performance advantages over existing allocators, and is tailored to support languages that rely on the memory allocator as a backend for reference counting. Mimalloc combines several innovations to achieve this result. First, it uses three page-local sharded free lists to increase locality, avoid contention, and support a highly-tuned allocate and free fast path. These free lists also support temporal cadence, which allows the allocator to predictably leave the fast past for regular maintenance tasks such as supporting deferred freeing, handling frees from non-local threads, etc. While influenced by the allocation workload of the reference-counted Lean and Koka programming language, we show that mimalloc has superior performance to modern commercial memory allocators, including tcmalloc and jemalloc, with speed improvements of 7% and 14%, respectively, on redis, and consistently out performs over a wide range of sequential and concurrent benchmarks. Allocators tailored to provide an efficient runtime for reference-counting languages reduce the implementation burden on developers and encourage the creation of innovative new language designs.

Tue 3 Dec

Displayed time zone: Beijing, Chongqing, Hong Kong, Urumqi change

10:30 - 12:00
Language Design and ImplementationResearch Papers at Bali Room
Chair(s): Sandrine Blazy Univ Rennes- IRISA
10:30
30m
Talk
Lightweight Functional Logic Meta-Programming
Research Papers
Nada Amin Harvard University, William E. Byrd University of Alabama at Birmingham, USA, Tiark Rompf Purdue University
11:00
30m
Talk
Mimalloc: Free List Sharding in Action
Research Papers
Daan Leijen Microsoft Research, USA, Ben Zorn Microsoft, Leonardo de Moura Microsoft Research, n.n.
11:30
30m
Talk
LiFtEr: Language to Encode Induction Heuristics for Isabelle/HOL
Research Papers
Yutaka Nagashima Data61, Australia