Inlining: Budgets, Costs, PGO, and What Breaks It
Inspect inlining decisions and demonstrate how caller context can change allocation behavior.
This chapter is part of the paid launch. The preview stays visible so readers can evaluate the exact scope before buying.
Core and Complete. Complete also includes the practical exam and free Go-version updates.
What this chapter teaches
Extracting a helper function is free — the compiler inlines small functions anyway, so splitting code up for readability has no performance cost.
inlining is gated by a fixed cost budget (80 AST-node units in Go 1.25). A function one unit over the budget is not inlined at all — it's a cliff, not a slope. And because inlining is what lets escape analysis see across a call (Chapter 1), losing it on a leaf can move an allocation into the caller with no change at the call site (the cold open). "Clean" refactors that extract helpers, add a defer, or grow a switch are performance-visible on hot paths until a benchmark proves otherwise.
Unlock Chapter 04 and the rest of the course.
Core unlocks every paid chapter and lab. Complete also includes the practical exam and future Go-version updates.
Full course access with the complete mechanics curriculum.
Best-value launch option with the exam and free Go-version course updates.
No subscription or account required. Access is tied to the email entered at Stripe Checkout and can be restored by email.