)]}'
{
  "commit": "b6b0e439dff973ddd2e36d992940fb5a4a9b1947",
  "tree": "c6b0289e2dab8b7a355d625bf0ade45ec260cae5",
  "parents": [
    "b38abb81337b10c4b675d418e50f82a5fe6a894d"
  ],
  "author": {
    "name": "Jacob MacDonald",
    "email": "jakemac@google.com",
    "time": "Mon Feb 03 13:46:40 2025 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Feb 03 13:46:40 2025 -0800"
  },
  "message": "optimize cpu_profile_transformer to not create intermediate lists (#8839)\n\nUses an iterator over the stack frame values in CpuProfileTransformer, instead of allocating new lists for they keys and values in the map, which are then read by index. I also removed the late/nullable fields in favor of local variables, since the state was never used outside of a single method call.\r\n\r\nAs far as I could tell the keys were never actually used except to look up values in the map, so I dropped that entirely. There was an extra lookup in the map and local variable which I am pretty certain wasn\u0027t needed.\r\n\r\nThis isn\u0027t directly related to any specific issue, I just noticed it as I was perusing through some of the code for the cpu profiler and figured I would send something out, to dip my toes in here :).\r\n\r\nNo tests were added, the behavior should be unchanged so hopefully existing tests should cover it.\r\n\r\nI did also add a TODO because I noticed a piece of logic that was O(N^2) worst case here but I don\u0027t know enough about how large the N is expected to be or whether its a common path, and it would be more involved to fix.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6651cfb0db8180e8056b3ad8821993b7135ab497",
      "old_mode": 33188,
      "old_path": "packages/devtools_app/lib/src/screens/profiler/cpu_profile_transformer.dart",
      "new_id": "f8ef21540171818047a9d16a0da4e4361ea19352",
      "new_mode": 33188,
      "new_path": "packages/devtools_app/lib/src/screens/profiler/cpu_profile_transformer.dart"
    }
  ]
}
