)]}'
{
  "commit": "e5253f1ae768dc428d6a15982751f1a384ed6819",
  "tree": "029db3cb11c0be2474c8c58943135fe2b6a7be3b",
  "parents": [
    "3b7cd3141f5e66e4c6c623561394ca3be0ac2ce5"
  ],
  "author": {
    "name": "Jens Johansen",
    "email": "jensj@google.com",
    "time": "Tue Sep 16 06:33:28 2025 -0700"
  },
  "committer": {
    "name": "Commit Queue",
    "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Sep 16 06:33:28 2025 -0700"
  },
  "message": "[analyzer] Stable analysis tool\n\nTool the - in my testing at least - is very stable in terms of\ninstruction counts used as reported by `perf stat`.\n\nOnly requires small changes to the analyzer and doesn\u0027t affect the part\nthat\u0027s covered by api.txt.\n\nRunning it on an extracted dill (with an aot-compiled tool) I get numbers like\nthis:\n\n```\nperf stat -e task-clock:u,cycles:u,instructions:u,branch-misses:u -r3 out/ReleaseX64/dart-sdk/bin/dartaotruntime --deterministic pkg/analyzer/tool/stable_analysis.aot /tmp/extracted_compile_dart_compile\n```\n\n```\n[...]\n50,853,198,745      instructions:u                   #    1.18  insn per cycle              ( +-  0.00% )\n[...]\n```\n\nRunning it 10 times (without `-r3`) I get this:\n\n```\n    50,853,237,614      instructions:u                   #    1.18  insn per cycle\n    50,853,477,778      instructions:u                   #    1.19  insn per cycle\n    50,852,534,741      instructions:u                   #    1.17  insn per cycle\n    50,852,728,437      instructions:u                   #    1.18  insn per cycle\n    50,853,298,284      instructions:u                   #    1.18  insn per cycle\n    50,853,151,431      instructions:u                   #    1.17  insn per cycle\n    50,853,754,852      instructions:u                   #    1.18  insn per cycle\n    50,852,509,185      instructions:u                   #    1.17  insn per cycle\n    50,853,878,495      instructions:u                   #    1.18  insn per cycle\n    50,853,437,912      instructions:u                   #    1.18  insn per cycle\n```\n\nwhere the difference between the smallest and the largest number is \u003c0.0027%\n\nChange-Id: I84d616201520a50904854cac06958faf6330468b\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/449760\nReviewed-by: Johnni Winther \u003cjohnniwinther@google.com\u003e\nCommit-Queue: Jens Johansen \u003cjensj@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0a95ad1b2aef0a282597ee1686286aaa43d3901f",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/dart/analysis/driver.dart",
      "new_id": "d2f033789c4bb297fdac2360568c3373315032fb",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/dart/analysis/driver.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f4531626f4c4d224916996f20c66379d51c70862",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/tool/stable_analysis.dart"
    }
  ]
}
