Also available: Korean version · Source code and reproducible experiments

A source-to-runtime experiment with Swift 6.3.1: inspect ownership in SIL, delete one strong_release, measure the resulting leak, compare weak-reference lowering, and follow the call stack into the Swift runtime.

Swift ARC is sometimes explained as if it were a background service that periodically scans memory and frees objects that are no longer used. The word Automatic makes that story sound plausible, but it describes a tracing garbage collector more closely than Swift’s reference-counting model.

Swift ARC works differently:

The compiler analyzes ownership and value lifetimes.