unadlib / mutative

Efficient immutable updates, 2-6x faster than naive handcrafted reducer, and more than 10x faster than Immer.
http://mutative.js.org/
MIT License
1.53k stars 16 forks source link

perf(read): improve draft reading performance by caching the draft copy #42

Closed unadlib closed 1 week ago

unadlib commented 2 weeks ago

35

unadlib commented 2 weeks ago

Before

RAW     : 5000 iterations @13ms  (0.0026 per loop)
RAW+COPY: 5000 iterations @231ms  (0.0462 per loop)
MUTATIVE: 5000 iterations @3270ms  (0.654 per loop)
RAW+PROXY: 5000 iterations @1504ms  (0.3008 per loop)
IMMER   : 5000 iterations @3806ms  (0.7612 per loop)

After

RAW     : 5000 iterations @13ms  (0.0026 per loop)
RAW+COPY: 5000 iterations @231ms  (0.0462 per loop)
MUTATIVE: 5000 iterations @2093ms  (0.4186 per loop)
RAW+PROXY: 5000 iterations @1547ms  (0.3094 per loop)
IMMER   : 5000 iterations @3803ms  (0.7606 per loop)