)]}'
{
  "commit": "767ce8152ab2b56d1f9bb3554f0e5f9552cc15d2",
  "tree": "430b133d9425832078bfcede9da385765c6c1add",
  "parents": [
    "99bc5416c89e59f2b196dbf54910060b67ab533f"
  ],
  "author": {
    "name": "Loren Van Spronsen",
    "email": "lorenvs@outlook.com",
    "time": "Sat Apr 23 09:21:12 2022 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sat Apr 23 18:21:12 2022 +0200"
  },
  "message": "Remove fold() closures from `FieldSet._hashCode`. (#554)\n\nThe fold() calls come with significant runtime cost, and make it more\r\ndifficult to hoist accesses to commonly used variables. Just rewriting\r\nthis pattern shows a significant performance improvement for both JS and\r\nVM benchmarks.\r\n\r\nBaseline\r\n\r\n```\r\nJS\r\nHashCode(RunTime): 9833.333333333334 us.\r\nHashCode(RunTime): 9891.625615763547 us.\r\nHashCode(RunTime): 9607.655502392345 us.\r\nHashCode(RunTime): 9661.835748792271 us.\r\nHashCode(RunTime): 9765.853658536585 us.\r\nVM\r\nHashCode(RunTime): 4527.384615384615 us.\r\nHashCode(RunTime): 4534.151583710407 us.\r\nHashCode(RunTime): 4546.556818181818 us.\r\nHashCode(RunTime): 4490.65470852017\r\n```\r\n\r\nResults\r\n\r\n```\r\nJS\r\nHashCode(RunTime): 8004 us.\r\nHashCode(RunTime): 7980.0796812749 us.\r\nHashCode(RunTime): 7976.095617529881 us.\r\nHashCode(RunTime): 7824.21875 us.\r\nHashCode(RunTime): 7847.058823529412 us.\r\nVM\r\nHashCode(RunTime): 2474.5451174289246 us.\r\nHashCode(RunTime): 2533.7037974683544 us.\r\nHashCode(RunTime): 2532.4556962025317 us.\r\nHashCode(RunTime): 2420.072551390568 us.\r\nHashCode(RunTime): 2521.3198992443326\r\n```\r\n\r\nCo-authored-by: Loren Van Spronsen \u003clorenvs@google.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "980056380518251bc9fe0d14830ce347ad2203f9",
      "old_mode": 33188,
      "old_path": "protobuf/lib/src/protobuf/field_set.dart",
      "new_id": "9e702b69e85a9d77ec02d8a5ae4e89c0ac74a32c",
      "new_mode": 33188,
      "new_path": "protobuf/lib/src/protobuf/field_set.dart"
    }
  ]
}
