4 ms·
limu is short of love immutable, born for efficient creation and operation of immutable object, It is fast, It is nearly more than 2 or 20 times faster than im
by fantasticsoul 4y ago
limu is short of love immutable, born for efficient creation and operation of immutable object,
It is fast, It is nearly more than 2 or 20 times faster than immer in different situations. Click this online perf demo (https://codesandbox.io/s/limu-simple-perf-case-ycky1t?file=/src/index.js https://codesandbox.io/s/limu-simple-perf-case-ycky1t?file=/...) to review the amazing result.
See more perf test result
1. git clone git@github.com:tnfe/limu.git
2. cd benchmark
3. npm i
4. node ./limu-vs-immer.js
You can change the params in limu-vs-immer.js file to test perf of different situations
const hasArr = false; // operate arr or not
const lessDeepOp = true; // has more deep operation or not
The perf result at macbook 2021 max pro is:
-----------------------[ hasArr true, lessOp true ]-------------------
(reuseBase: true, autoFreeze: true) immer 2.797 ms : limu 1.287 ms
(reuseBase: false, autoFreeze: true) immer 2.835 ms : limu 1.313 ms
(reuseBase: true, autoFreeze: false) immer 2.049 ms : limu 0.089 ms
(reuseBase: false, autoFreeze: false) immer 2.096 ms : limu 0.146 ms
-----------------------[ hasArr true, lessOp false ]------------------
(reuseBase: true, autoFreeze: true) immer 2.946 ms : limu 1.268 ms
(reuseBase: false, autoFreeze: true) immer 3.005 ms : limu 1.345 ms
(reuseBase: true, autoFreeze: false) immer 2.162 ms : limu 0.147 ms
(reuseBase: false, autoFreeze: false) immer 2.169 ms : limu 0.161 ms
-----------------------[ hasArr false, lessOp true ]------------------
(reuseBase: true, autoFreeze: true) immer 2.253 ms : limu 0.659 ms
(reuseBase: false, autoFreeze: true) immer 2.261 ms : limu 0.705 ms
(reuseBase: true, autoFreeze: false) immer 1.472 ms : limu 0.058 ms
(reuseBase: false, autoFreeze: false) immer 1.504 ms : limu 0.064 ms
-----------------------[ hasArr false, lessOp true ]------------------
(reuseBase: true, autoFreeze: true) immer 2.086 ms : limu 0.604 ms
(reuseBase: false, autoFreeze: true) immer 2.201 ms : limu 0.643 ms
(reuseBase: true, autoFreeze: false) immer 1.383 ms : limu 0.022 ms
(reuseBase: false, autoFreeze: false) immer 1.42 ms : limu 0.021 ms