Table of Contents
Fetching ...

What Do You Mean by Memory? When Engineers Are Lost in the Maze of Complexity

Gunnar Kudrjavets, Aditya Kumar, Jeff Thomas, Ayushi Rastogi

TL;DR

The paper addresses the fragmentation of memory-management guidance across operating systems and programming languages, arguing that traditional advice (such as reducing allocations) is outdated in the face of OOM killers, Linux overcommitment, and implicit memory management in modern languages. It contends that memory semantics are highly contextual and that the proliferating memory taxonomies across macOS/iOS, Windows, and Linux hinder practical optimization. Through a concrete Apple iOS case, it demonstrates the need to understand a multi-dimensional physical footprint and ARC-based memory management to prevent OOM termination. The authors call for data-driven, platform-specific guidance that maps engineers' intents to concrete actions, supported by industry case studies and shared knowledge, to advance memory-performance engineering for both native and GC-based languages.

Abstract

An accepted practice to decrease applications' memory usage is to reduce the amount and frequency of memory allocations. Factors such as (a) the prevalence of out-of-memory (OOM) killers, (b) memory allocations in modern programming languages done implicitly, (c) overcommitting being a default strategy in the Linux kernel, and (d) the rise in complexity and terminology related to memory management makes the existing guidance inefficient. The industry needs detailed guidelines for optimizing memory usage targeting specific operating systems (OS) and programming language types.

What Do You Mean by Memory? When Engineers Are Lost in the Maze of Complexity

TL;DR

The paper addresses the fragmentation of memory-management guidance across operating systems and programming languages, arguing that traditional advice (such as reducing allocations) is outdated in the face of OOM killers, Linux overcommitment, and implicit memory management in modern languages. It contends that memory semantics are highly contextual and that the proliferating memory taxonomies across macOS/iOS, Windows, and Linux hinder practical optimization. Through a concrete Apple iOS case, it demonstrates the need to understand a multi-dimensional physical footprint and ARC-based memory management to prevent OOM termination. The authors call for data-driven, platform-specific guidance that maps engineers' intents to concrete actions, supported by industry case studies and shared knowledge, to advance memory-performance engineering for both native and GC-based languages.

Abstract

An accepted practice to decrease applications' memory usage is to reduce the amount and frequency of memory allocations. Factors such as (a) the prevalence of out-of-memory (OOM) killers, (b) memory allocations in modern programming languages done implicitly, (c) overcommitting being a default strategy in the Linux kernel, and (d) the rise in complexity and terminology related to memory management makes the existing guidance inefficient. The industry needs detailed guidelines for optimizing memory usage targeting specific operating systems (OS) and programming language types.
Paper Structure (9 sections, 1 table)