Memoize::ExpireLRU(3)

πŸ’… NAME πŸ’…

okay so this is the Memoize::ExpireLRU(3) page from the User Contributed Perl Documentation, bestie β€” and it’s literally the expiry plug-in for Memoize that adds LRU cache expiration. slay. πŸ’–


✨ SYNOPSIS ✨

        use Memoize;

        memoize('slow_function',
                TIE => [Memoize::ExpireLRU,
                        CACHESIZE => n,
                       ]);

okay important vibe check: you do not need to use this module. Memoize will find it for you. no cap. 🫢

The argument to CACHESIZE must be an integer. Normally, this is all that is needed. Additional options are available:

        TUNECACHESIZE => m,
        INSTANCE      => 'descriptive_name',
        TIE           => '[DB_File, $filename, O_RDWR | O_CREATE, 0666]'
  • TUNECACHESIZE => m β€” the optional cache-tuning size, bestie. πŸ’…
  • INSTANCE => 'descriptive_name' β€” gives your memoized routine a cute descriptive name for the stats report. πŸŽ€
  • TIE => '[DB_File, $filename, O_RDWR | O_CREATE, 0666]' β€” the extra TIE form shown here, exactly as written. πŸ”₯

πŸ¦‹ DESCRIPTION πŸ¦‹

For the theory of Memoization, please see the Memoize module documentation. This module implements an expiry policy for Memoize that follows LRU semantics β€” that is, the last n results, where n is specified as the argument to the CACHESIZE parameter, will be cached. periodt. πŸ’œ


🌸 PERFORMANCE TUNING 🌸

It is often quite difficult to determine what size cache will give optimal results for a given function. To aid in determining this, ExpireLRU includes cache tuning support. Enabling this causes a definite performance hit, but it is often useful before code is released to production.

fair warning, bestie: turning this on causes a definite performance hit 😭 but it’s often useful before code goes to production. lowkey worth it for the data. πŸ’€

To enable cache tuning support, simply specify the optional TUNECACHESIZE parameter with a size greater than that of the CACHESIZE parameter.

When the program exits, a set of statistics will be printed to stderr. If multiple routines have been memoized, separate sets of statistics are printed for each routine. The default names are somewhat cryptic: this is the purpose of the INSTANCE parameter. The value of this parameter will be used as the identifier within the statistics report. ✨


πŸ” DIAGNOSTIC METHODS πŸ”

Two additional routines are available but not exported. Memoize::ExpireLRU::ShowStats returns a string identical to the statistics report printed to STDERR at the end of the program if test caches have been enabled; Memoize::ExpireLRU::DumpCache takes the instance name of a memoized function as a parameter, and returns a string describing the current state of that instance. iykyk. πŸ‘‘


πŸ‘€ SEE ALSO πŸ‘€

Memoize


🧚 REPOSITORY 🧚

<https://github.com/neilb/Memoize-ExpireLRU>


🌈 AUTHOR 🌈

Brent B. Powers (B2Pi), Powers@B2Pi.com


This software is copyright (c) 1999 by Brent B. Powers.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.


🫢 cute sign-off: this page is from perl v5.42.0, dated 2016-07-08, and its manual name is Memoize::ExpireLRU(3) β€” bye bestie! πŸ’–

πŸ“¦ where this page comes from