Module: Functional::Memo

Defined in:
lib/functional/memo.rb

Overview

Note:

Memoized method calls are thread safe and can safely be used in concurrent systems. Declaring memoization on a function is not thread safe and should only be done during application initialization.

Memoization is a technique for optimizing functions that are time-consuming and/or involve expensive calculations. Every time a memoized function is called the result is caches with reference to the given parameters. Subsequent calls to the function that use the same parameters will return the cached result. As a result the response time for frequently called functions is vastly increased (after the first call with any given set of) arguments, at the cost of increased memory usage (the cache).