)]}'
{
  "commit": "4c6326353796ed628b916624264d1bacf0339064",
  "tree": "f942c1dc36ecb6b9feaec7de020a1f59ea39ce0c",
  "parents": [
    "572b5017491ee57de382fb65898dbd5bd50b8fbb"
  ],
  "author": {
    "name": "Martin Kustermann",
    "email": "kustermann@google.com",
    "time": "Fri Feb 14 03:51:04 2025 -0800"
  },
  "committer": {
    "name": "Martin Kustermann",
    "email": "kustermann@google.com",
    "time": "Fri Feb 14 03:51:04 2025 -0800"
  },
  "message": "[dart2wasm] Avoid repeatedly allocating strings for the same json object keys\n\nMost jsons have ascii strings as keys in json objects and very often\nthose keys are highly repetitive.\n\nIn previous CLs we started to compute the hash of the json object keys\neagerly, even before allocating the string.\n\nWe can take advantage of this now by using consulting a fixed-size\ninterning cache. The cost of this cache is\n\n* Memory: It has max 512 entries and only contains one byte strings used\n  as keys in json (keys are usually very small).\n* Lookup: Bitmask and lookup in array, length comparison (fails often if\n  keys are not the same), plus byte comparison (may often suceeed)\n* Insert: Simply store into an array.\n\nThe benefit is that we are very likely to allocate a lot less string\nobjects for the keys. This will make data fit better in caches, will\nmake string equality checks (in map lookups) more often hit the\nfast case (pointer equality) and reduce GC pressure.\n\nChange-Id: Id8ed3a972a267dd0201383f8f51ed82758bc0e63\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/409680\nReviewed-by: Ömer Ağacan \u003comersa@google.com\u003e\nCommit-Queue: Martin Kustermann \u003ckustermann@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9121387fce5474e6c1baf608575c7d5878196ce3",
      "old_mode": 33188,
      "old_path": "sdk/lib/_internal/wasm/lib/convert_patch.dart",
      "new_id": "a5b5e4ff9ef3f7a890802bd1b1b1f17e2f701858",
      "new_mode": 33188,
      "new_path": "sdk/lib/_internal/wasm/lib/convert_patch.dart"
    }
  ]
}
