)]}'
{
  "commit": "6dbe98a09dfb2018906ddbe87dc236fe1a83b2e7",
  "tree": "cee47814742208f3c9bf4d0060850b0d9db4e659",
  "parents": [
    "7414282fbdb041f0dc28b1682c90de774a37fbcd"
  ],
  "author": {
    "name": "Jens Johansen",
    "email": "jensj@google.com",
    "time": "Tue Jun 30 02:04:39 2026 -0700"
  },
  "committer": {
    "name": "dart-internal-monorepo",
    "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
    "time": "Tue Jun 30 02:07:05 2026 -0700"
  },
  "message": "[analyzer] Avoid allocation on FormalParameterElementImpl.name\n\nWith https://dart-review.googlesource.com/c/sdk/+/515400 each time\nFormalParameterElementImpl.name is called (when analyzing the CFE this\nhappens more than 1 million times) we allocate a list, allocate an\niterator for the list and loop through it.\nAccording to golem the change cost ~214 million instructions and ~59 mb\nadditional allocation.\n\nThis CL gets rid of the allocation while attempting to keep a\n\"dart vibe\" of the code in `FormalParameterElementImpl.name`.\nNormally a pattern like this would introduce a closure and whatnot, but\nat least for now the `@pragma(\"vm:prefer-inline\")` works and the whole\nthing is inlined avoiding allocation.\n\nWith normal GC:\n\n```\ntask-clock:u: -3.6066% +/- 1.3083% (-399049693.40 +/- 144751775.28) (11064440065.60 -\u003e 10665390372.20)\npage-faults:u: -1.8142% +/- 0.2043% (-3511.40 +/- 395.51) (193547.90 -\u003e 190036.50)\ncycles:u: -3.7105% +/- 1.3264% (-1733146413.80 +/- 619530940.49) (46708752064.20 -\u003e 44975605650.40)\ninstructions:u: -2.3466% +/- 0.0014% (-1325651734.40 +/- 809878.15) (56492424294.70 -\u003e 55166772560.30)\nbranch-misses:u: -7.0551% +/- 2.7318% (-13222134.20 +/- 5119652.45) (187411563.20 -\u003e 174189429.00)\nseconds time elapsed: -3.6019% +/- 1.3110% (-0.40 +/- 0.15) (11.07 -\u003e 10.67)\nseconds user: -3.8894% +/- 1.3469% (-0.42 +/- 0.14) (10.74 -\u003e 10.32)\nmaxRssKbytes: 0.2461% +/- 0.0191% (1510.00 +/- 117.45) (613676.40 -\u003e 615186.40)\nmaxRssBytes: 0.2461% +/- 0.0191% (1546240.00 +/- 120267.81) (628404633.60 -\u003e 629950873.60)\n\nComparing GC data:\nScavenge(   new space) goes from 166 to 164\nMarkSweep(   promotion) goes from 16 to 15\nMarkSweep(   old space) goes from 0 to 1\nNotice combined GC time goes from 3629 ms to 3455 ms (notice only 1 run each).\n```\n\nWith GC disabled:\n\n```\n\ntask-clock:u: -2.0544% +/- 0.8486% (-353259971.90 +/- 145910425.38) (17194925559.80 -\u003e 16841665587.90)\npage-faults:u: -1.2594% +/- 0.0284% (-15025.20 +/- 338.76) (1193070.30 -\u003e 1178045.10)\ncycles:u: -2.2676% +/- 0.9083% (-1500656743.20 +/- 601102816.18) (66177563665.30 -\u003e 64676906922.10)\ninstructions:u: -0.4887% +/- 0.0004% (-191480701.90 +/- 166586.57) (39180445183.20 -\u003e 38988964481.30)\nseconds time elapsed: -2.0540% +/- 0.8468% (-0.35 +/- 0.15) (17.20 -\u003e 16.85)\nseconds user: -2.4899% +/- 1.0499% (-0.38 +/- 0.16) (15.43 -\u003e 15.05)\nmaxRssKbytes: -1.2579% +/- 0.0069% (-60240.00 +/- 328.16) (4788987.60 -\u003e 4728747.60)\nmaxRssBytes: -1.2579% +/- 0.0069% (-61685760.00 +/- 336030.87) (4903923302.40 -\u003e 4842237542.40)\n```\nChange-Id: I2a4daf7238a9b69b4759dff9845606fcd5628fb9\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/516800\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\nCommit-Queue: Jens Johansen \u003cjensj@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/9ee7c8c407d4d4178368f5d4b86a25a3fb5c6ac2\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4f57ad548eb072c895613a91fd8b701900b02138",
      "old_mode": 33188,
      "old_path": "DEPS",
      "new_id": "d6a6494e00a0f38e397af7b0be3e36d363cb7258",
      "new_mode": 33188,
      "new_path": "DEPS"
    },
    {
      "type": "modify",
      "old_id": "e2b5a81c17a01398ce493d293889030505332026",
      "old_mode": 33188,
      "old_path": "commits.json",
      "new_id": "9075d6f36ccb79a4af23c18aa32d9bdf3221a86d",
      "new_mode": 33188,
      "new_path": "commits.json"
    }
  ]
}
