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: {
      data_1: {
        data_1_1: 'data_1_1',
        data_1_2: 'data_1_2'
      },
      data_2: {
        data_2_1: 'data_2_1',
        data_2_2: {
          data_2_2_1: 'value'
        }
      },
    }
  };
Tests:
  • Immer produce

     
    const result = immer.produce(state, draft => { draft.data.data_1.data_1_1 = 'data_1_1_updated', draft.data.data_2.data_2_2.data_2_2_1 = 'data_2_2_1' })
  • Lodash clonedeep

     
    const result = _.cloneDeep(state);
    result.data.data_1.data_1_1 = 'data_1_1_updated';
    result.data.data_2.data_2_2.data_2_2_1 = 'data_2_2_1';
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Immer produce
    Lodash clonedeep

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one year ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36
Chrome 113 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
Immer produce 109003.0 Ops/sec
Lodash clonedeep 258377.1 Ops/sec