Mariusz,

Thanks for sharing memoizee.

I have comment about timeouts. Very often, it's recommended to use 
"replace" strategy, instead of "delete". I mean,
if data is expired, you still continue to return old data from cache, but 
fetch new one in background. It can be easily implemented
in async mode. That has 2 benefits:
- no freezes on expires
- easy to avoid parallel refresh requests

Vitaly.

среда, 19 сентября 2012 г., 2:06:21 UTC+4 пользователь Mariusz Nowak 
написал:
>
> https://github.com/medikoo/memoize
>
> npm install memoizee
>
> For one of my projects I needed memoizer, that would be both fast and 
> would work with any type of input arguments. Other projects demanded other 
> common functionalities, so it's result of real world needs I approached in 
> last months. To make it complete in latest stage I added max and maxAge 
> options (lru-cache inspiration)
>
> Features in short:
> - Works with any type of function arguments - no serialization is needed
> - Works with any length of function arguments. Length can be set as fixed 
> or dynamic.
> - One of the fastest available solutions (when talking about plain simple 
> case it's slightly slower than basic underscore implementation and about 3 
> x faster than lru-cache)
> - Support for asynchronous functions
> - Optional primitive mode which assures fast performance when arguments 
> are conversible to strings.
> - Can be configured for methods (when `this` counts in)
> - Cache can be cleared manually or after specified timeout
> - Cache size can be limited
> - Optionally accepts resolvers that normalize function arguments before 
> passing them to underlying function.
> - Optional reference counter mode, that allows more sophisticated cache 
> management
> - Profile tool that provides valuable usage statistics
> - Covered by over 500 unit tests
>
> I use it all over the place now. Let me know what you think, any feedback 
> highly welcome
>

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to