Everything About ___
Live briefing

Everything about Memoization

Software programming optimization technique

In computing, memoization or memoisation is an optimization technique used primarily to speed up computer programs. It works by storing the results of expensive calls to pure functions, so that these results can be returned quickly should the same inputs occur again. It is a type of caching, normally implemented using a hash table. It is a typical example of a space–time tradeoff, where the runtime of a program is reduced by increasing its memory usage. Memoization can be implemented in any programming language, though some languages have built-in support that make it easy for the programmer to memoize a function, and others memoize certain functions by default. Wikipedia →

🧭 Start here: a 6-step reading path

  1. Read the overview: MemoizationA 5-minute orientation
  2. Skim a recent paper: Accelerating String-Key Learned Index Structures via Memoization-Based Incremental TrainingInfluential work since 2022
  3. Pick up a classic book: JavaScriptThe most-reprinted book on the subject
  4. Read the landmark paper: Fuzzy Memoization for Floating-Point Multimedia ApplicationsCited 131 times
  5. Go sideways: Recursion (computer science)A closely related topic
  6. Go sideways: Parser combinatorA closely related topic

📖 Definitions

Noun A technique in which partial results are recorded (forming a memo) and then can be re-used later without having to recompute them.

🗂️ The subject at a glance

  1. Etymology
  2. Overview
  3. Other considerations

🏆 Landmark papers (most cited)

🆕 Influential since 2022

📚 Books worth reading

Ranked by number of editions on Open Library, a rough measure of how lasting a book is.

🔗 Related topics