Talk
Intermediate
First Talk

Malloc Sucks: Modern Memory Allocation for Real Performance" (clickbait title – accurate but provocative)

Review Pending

Memory allocation is the silent workhorse behind all performance-critical applications. From databases to real-time systems, inefficient allocators are often the biggest bottleneck—and glibc malloc is showing its age. While glibc malloc is easy to use and widely available across platforms, it may not be the best choice for modern high-performance applications.

In this session, we’ll dig into modern memory allocation strategies, explaining how and why open-source allocators like jemalloc, mimalloc, and snmalloc outperform traditional approaches.

We’ll look at allocator architecture in practical terms, discuss real-world tuning for multi-threaded workloads, and explore how newer languages like Zig build allocator composability and control into the core of their runtime. Rust will serve as our example for integration and experimentation, but the takeaways apply broadly to any systems-level development.

Expect live allocator swaps, performance demos, and practical advice on how to select and embed the right allocator for your use case.

Target Audience: Systems programmers, performance engineers, backend developers using Rust, C/C++, or Zig, and anyone curious about low-level memory internals.

Prerequisites: Basic understanding of memory management and programming in a systems language (Rust, C, C++). Rust experience is helpful but not required.

Outline

1. Introduction & Context (3-4 minutes)

  • Why memory allocation matters: latency, fragmentation, multi-threaded contention

  • The role of the allocator in safety and performance

  • A brief history: brk, sbrk, malloc, and mmap

  • Traditional vs modern memory demands

2. Anatomy of Allocators (5-6 minutes)

  • Traditional system allocators (glibc malloc) and where they fall short

  • Architectural improvements in open-source allocators

    • jemalloc: fragmentation-aware arenas

    • mimalloc: per-thread heaps, small-footprint fast paths

    • snmalloc: capability and security-first design

  • Comparisons: throughput, latency, fragmentation, memory usage

3. Allocators in Practice: Language and Runtime Ecosystem (6-7 minutes)

  • How allocators are wired into real-world runtimes

  • Rust: GlobalAlloc, #[global_allocator], per-collection allocation

  • C/C++: malloc and allocator override

  • Zig: composable allocator model (brief reference for architecture)

4. Composable and Explicit Allocation (4-5 minutes)

  • What Zig gets right: allocator-passing as a design principle

  • Arena allocators, bump allocators, and their use cases

  • Allocator trees and scoped memory management

  • Can we build similar abstractions in C, C++, or Rust?

5. Real-World Integration & Use Cases (3-4 minutes)

  • When and why to swap allocators (embedded, games, high-load servers)

  • Case study examples (e.g. Redis using jemalloc, Wasmtime using snmalloc)

  • Safety concerns: double-frees, dangling pointers, use-after-free

  • Measuring success: benchmarks and regressions

6. Profiling and Tuning Allocators (2-3 minutes)

  • Tools: heaptrack, valgrind, jemalloc stats, custom logging

  • What to measure: alloc/free frequency, live memory, fragmentation

  • Tuning knobs in jemalloc/mimalloc (e.g. background thread, arena growth)

7. Wrap-up (1-2 minutes)

  • Summary:

    • glibc malloc is easy to use and widely supported, but may not be optimal for modern workloads

    • Open-source alternatives offer massive wins in performance and flexibility

    • Rust and Zig show different approaches to allocator integration

  • Default allocators like glibc malloc are widely compatible but struggle under modern workloads

  • Open-source allocators (jemalloc, mimalloc, snmalloc) offer superior performance

  • Allocator choice is now a first-class system design decision

  • Rust allows safe integration with custom allocators using traits and macros

Zig provides a composability-first allocator model that may inspire future designs

Knowledge Commons (Open Hardware, Open Science, Open Data etc.)
Technology architecture
Which track are you applying for?
Compilers, Programming Languages and Systems Devroom

0 %
Approvability
0
Approvals
0
Rejections
0
Not Sure
No reviews yet.