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';
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Produce
    CloneDeep

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 2 days ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.6816.72 Safari/537.36
Chrome 133 on Windows
View result in a separate tab
Test name Executions per second
Produce 378127.8 Ops/sec
CloneDeep 5619.0 Ops/sec