Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:104.0) Gecko/20100101 Firefox/104.0
Firefox 104
Mac OS X 10.15
Desktop
2 years ago
Test name Executions per second
Produce 293943.7 Ops/sec
CloneDeep 3969.5 Ops/sec
HTML Preparation code:
AخA
 
1
<script src="https://cdn.jsdelivr.net/npm/immer@3.1.3/dist/immer.umd.min.js"></script>
2
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
Script Preparation code:
 
state =  {
    data: {
      data1: {
        data2: 'test',
      },
      data3: Array.from({length: 1000}).map(() => document.createElement('div'))
    }
  };
Tests:
  • Produce

     
    const result = immer.produce(state, draft => { draft.data.data1.data2 = 'updated' })
  • CloneDeep

     
    const result = _.cloneDeep(state);
    result.data.data1.data2 = 'updated';