HTML Preparation code:
x
 
1
<script src="https://cdn.jsdelivr.net/npm/fast-json-patch/dist/fast-json-patch.min.js"></script>
2
        <script type='text/javascript' src="https://cdn.jsdelivr.net/npm/jsondiffpatch/dist/jsondiffpatch.umd.min.js"></script>
3
Script Preparation code:
 
var oldObj = {
  "content": {
    "blocks": {
      "block-0": {
        "id": "block-0",
        "type": "p",
        "leafIds": [
          "leaf-2"
        ]
      },
      "block-1": {
        "id": "block-1",
        "type": "p",
        "leafIds": [
          "leaf-3"
        ]
      }
    },
    "leaves": {
      "leaf-2": {
        "id": "leaf-2",
        "text": "12345"
      },
      "leaf-3": {
        "id": "leaf-3",
        "text": "abcde"
      },
       "leaf-4": {
        "id": "leaf-3",
        "text": "abcde"
      }
    },
    "blockIds": [
      "block-0",
      "block-1"
    ]
  },
  "selection": {
    "isReversed": false,
    "isCollapsed": true,
    "startEl": "leaf-2",
    "endEl": "leaf-2",
    "startOffset": 12,
    "endOffset": 12
  }
}
var newObj = {
  "content": {
    "blocks": {
      "block-0": {
        "id": "block-0",
        "type": "p",
        "leafIds": [
          "leaf-2"
        ]
      },
      "block-1": {
        "id": "block-1",
        "type": "p",
        "leafIds": [
          "leaf-3"
        ]
      }
    },
    "leaves": {
      "leaf-2": {
        "id": "leaf-2",
        "text": "12345hooba12"
      },
      "leaf-3": {
        "id": "leaf-3",
        "text": "abcde"
      }
    },
    "blockIds": [
      "block-0",
      "block-1"
    ]
  },
  "selection": {
    "isReversed": false,
    "isCollapsed": true,
    "startEl": "leaf-2",
    "endEl": "leaf-2",
    "startOffset": 12,
    "endOffset": 12
  }
}
var diffs = []
Tests:
  • jsondiffpatch

     
    var diff =  jsondiffpatch.diff(oldObj, newObj)
    diffs.push(diff)
    var objnew = JSON.parse(JSON.stringify(oldObj))
    jsondiffpatch.patch(oldObj, diff)
  • fast-json-patch

     
    var diff = jsonpatch.compare(oldObj, newObj);
    diffs.push(diff)
    var objnew = JSON.parse(JSON.stringify(oldObj))
    jsonpatch.applyPatch(oldObj, diff)
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    jsondiffpatch
    fast-json-patch

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 14 days ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36
Chrome 135 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
jsondiffpatch 148737.4 Ops/sec
fast-json-patch 352011.1 Ops/sec