)]}'
{
  "commit": "e348903832bf1e483908a1e002ec89795437a236",
  "tree": "8248278a924f8729cb7e36dd45a5749bd60c2b72",
  "parents": [
    "0618cd50b36961e43ccf6cc1cd8791c45c9f402e"
  ],
  "author": {
    "name": "Ryan Savitski",
    "email": "rsavitski@google.com",
    "time": "Fri May 03 14:46:04 2024 +0100"
  },
  "committer": {
    "name": "Ryan Savitski",
    "email": "rsavitski@google.com",
    "time": "Fri May 03 14:03:37 2024 +0000"
  },
  "message": "tp: binder_tracker: fix performance issue due to insert/erase heavy workload + FlatHashMap\n\nOn a 10 minute trace with ~500k binder_transaction events, ~50% of the\ntrace parsing time is spent in binder_tracker due to a performance issue\nin FlatHashMap. The map implementation never cleans tombstones outside\nof a resize, so a heavy insert+erase workload degrades to full scans of\nthe hash map\u0027s capacity (since it becomes 100% full with tombstones).\n\nFor now, fix by switching to std::unordered_map. Myself and Primiano\nwill look into improving the hash table itself next week.\n\nChange-Id: Iedca0e490e4a024fb59b84b485be250bd579f9d3\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0be192da8f11e69e6abdada3e0c5216091e8776a",
      "old_mode": 33188,
      "old_path": "include/perfetto/ext/base/flat_hash_map.h",
      "new_id": "f4046eacf96bedea72a8f092f2e48926518849ad",
      "new_mode": 33188,
      "new_path": "include/perfetto/ext/base/flat_hash_map.h"
    },
    {
      "type": "modify",
      "old_id": "548003efcd4d363bc4dede3b0fb4e234b5145167",
      "old_mode": 33188,
      "old_path": "include/perfetto/ext/base/hash.h",
      "new_id": "7809ed74108695abaf1c16750d72b5e69709fe9b",
      "new_mode": 33188,
      "new_path": "include/perfetto/ext/base/hash.h"
    },
    {
      "type": "modify",
      "old_id": "29d0c2cb83132c7675ca22abad3c007ab2a1794b",
      "old_mode": 33188,
      "old_path": "src/trace_processor/importers/ftrace/binder_tracker.cc",
      "new_id": "48cdf582fd1a426127c1b784b601a05287f6440c",
      "new_mode": 33188,
      "new_path": "src/trace_processor/importers/ftrace/binder_tracker.cc"
    },
    {
      "type": "modify",
      "old_id": "f1d682ce82ce8c9d7d3d723d40256e37b78a7d08",
      "old_mode": 33188,
      "old_path": "src/trace_processor/importers/ftrace/binder_tracker.h",
      "new_id": "5912904df65d22303dab7d09ab30bb79fd11fbbb",
      "new_mode": 33188,
      "new_path": "src/trace_processor/importers/ftrace/binder_tracker.h"
    }
  ]
}
