1414This library is an attempt to make the ** fastest possible memoization library in
1515JavaScript that supports * N* arguments** .
1616
17- There are already very popular solutions for this problem, but they are ** not
18- fast enough** or accept ** only one argument** .
19-
2017## Installation
2118
2219To use the library, install it through [ npm] ( https://npmjs.com )
@@ -76,23 +73,13 @@ meaning that, given one input, it always give the same output.
7673
7774## Benchmark
7875
79- There is already plenty of libraries that does memoization on JS world.
80- [ underscore] ( http://underscorejs.org/ ) and [ lodash] ( https://lodash.com ) provides
81- it, but they don't accept more than one argument.
82- [ memoizee] ( https://www.npmjs.com/package/memoizee ) is a very well written
83- library that supports * N* arguments, but is not even close on performance to
84- [ lodash] ( https://lodash.com ) .
76+ For an in depth explanation on how this library was created, go read
77+ [ this post on RisingStack] ( https://community.risingstack.com/the-worlds-fastest-javascript-memoization-library/ ) .
8578
8679Below you can see a performance benchmark between some of the most popular libraries
8780for memoization.
8881
89- <img src =" http://rawgit.com/caiogondim/fast-memoize/master/img/benchmark-chart.png " width =" 100% " />
90-
91- [ fast-memoize] ( https://github.com/caiogondim/fast-memoize ) is faster than any
92- other library but [ lodash] ( https://lodash.com ) . The reason why is that
93- [ lodash] ( https://lodash.com ) does not support * N* arguments and is very
94- optimized to that unique use case. But even though, * fast-memoize* is the
95- library that supports * N* that comes closer to it.
82+ <img src =" http://rawgit.com/caiogondim/fast-memoize/master/img/benchmark.png " width =" 100% " />
9683
9784To run the benchmark, clone the repo, install the dependencies and run ` npm run benchmark ` .
9885``` shell
@@ -104,9 +91,6 @@ npm run benchmark
10491
10592<img src =" http://rawgit.com/caiogondim/fast-memoize/master/img/benchmark-cli.png " width =" 100% " />
10693
107- ## Reference
108- - https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#3-managing-arguments
109-
11094## Credits
11195- Icon by Mary Rankin from the Noun Project
11296- [ Bullet train ZSH theme] ( https://github.com/caiogondim/bullet-train-oh-my-zsh-theme )
0 commit comments