Skip to content

Glossary

dyld shared cache

A pre-linked image bundling every Apple-supplied dylib, mapped into every process at the same address. The reason process startup is fast and resident memory is small.

The dyld shared cache is a single giant pre-linked file containing every Apple-supplied system dylib — libSystem, Foundation, AppKit, UIKit, every Metal/Core/CloudKit framework — pre-linked offline and mapped into every process at the same virtual address.

Located at /System/Library/dyld/dyld_shared_cache_<arch>; 3-5 GB on disk on a typical Apple Silicon Mac.

What it gives you:

  • Process startup speed — one mmap instead of hundreds of individual dlopen calls.
  • Physical memory savings — each dylib resides in RAM once, not per-process.
  • L1/L2/L3 cache sharing — code executes from the same physical lines across processes.
  • Page table sharing — the same page-table entries cover the cache region in every process.

Built offline by the cache builder, which runs at OS install and at major updates. Building takes minutes because the linker resolves every cross-dylib symbol exhaustively.

Each process maps the cache at a boot-randomized base address (ASLR). Within a boot, every process sees the same address; across boots, it changes.

apple-oss-distributions/dylddyld/main.cppWhere dyld attaches to the shared cache at process start.View on GitHub(line )

This is why Activity Monitor "Virtual" column is misleading — most of a process's 1+ GB of virtual size is the shared cache, not per-process allocations.

See also: dyld, mmap, and the shared cache article.