Systems Rust · 19 min · free with an account

Performance

Lesson preview · about 30%

Rust is fast by default; the wins left are allocation and algorithm.

Core idea

Measure a release build; debug numbers say nothing about optimized code.

Start with the idea

Iterator chains compile to roughly the same code as a hand-written loop, so readability is rarely the cost. What does cost is allocating in a hot loop, cloning to satisfy the borrow checker, and choosing the wrong container. Reserve capacity when the size is known, borrow instead of cloning, and measure in release — a debug build is not evidence.

Performance work begins with a workload and a measurement. A release build is essential because debug checks and missing optimizations can dominate a microbenchmark. Use realistic input sizes and record latency distributions or throughput, not one attractive timing. Profile before changing code: time may be in parsing, allocation, I/O, locking, or an algorithmic choice far from the line that looks complicated. An iterator chain is often optimized well, but verify hot paths rather than treating any syntax as inherently free or expensive.

Keep learning, for free

The rest of this lesson is waiting for you.

Create a free account to read the complete explanation, see the infographic, explore the code, and try the exercises. All 742 lessons and algorithm steps are included.

No payment details. Your account opens the complete Academy.

← All lessons in Macros & Systems Rust