This article investigates a common misconception in Rust where high memory usage under load is mistaken for a memory leak, when it is actually caused by the default global allocator's behavior with large, short-lived allocations. The author details a scenario involving bursty workloads and Tokio tasks, explaining how the allocator retains memory rather than returning it immediately to the OS. This serves as a practical guide for developers to distinguish between true leaks and allocator retention.
Background
Rust uses a global allocator by default (jemalloc on Linux), which optimizes for performance and fragmentation reduction, often retaining freed memory within the process. Developers frequently confuse this retained memory with actual leaks when monitoring tools show high RSS (Resident Set Size).
- Source
- Lobsters
- Published
- Jul 8, 2026 at 01:51 AM
- Score
- 7.0 / 10