)]}'
{
  "commit": "545543929d8ccc043f8e537de66eafa69c90e046",
  "tree": "b81cc88044bc6fa61c4a91118171738a6473aa93",
  "parents": [
    "366335191c1a0154ff4c7e73c5fdc94a14159530"
  ],
  "author": {
    "name": "Heschi Kreinick",
    "email": "heschi@google.com",
    "time": "Fri Feb 23 17:20:21 2018 -0500"
  },
  "committer": {
    "name": "Heschi Kreinick",
    "email": "heschi@google.com",
    "time": "Wed Mar 07 21:02:50 2018 +0000"
  },
  "message": "gocore: add dominator tree computation\n\nCalculate the heap\u0027s dominator tree using modified L-T, reverse its\nedges, and use that to calculate the per-object retained size.\n\nOne small functionality change: heapInfo.firstIdx is now set for empty\nchunks, allowing binary search over Process.heapInfo.\n\nHaven\u0027t really figured out what the public API for this should be yet;\nmaybe it\u0027s okay to expose the vertex names and provide an iterator\nmethod.\n\nThis should be pretty fast, but I haven\u0027t benchmarked it yet, so there\nmight be some low-hanging fruit lying around.\n\nChange-Id: I2c85c29514a0f2e60231f13f0c058dd7f12b548e\nReviewed-on: https://go-review.googlesource.com/98736\nReviewed-by: Keith Randall \u003ckhr@golang.org\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "375fd86a588156fe2bb81ec74d4d170f32c2f7e5",
      "new_mode": 33188,
      "new_path": "gocore/dominator.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2f709022462c269c3b2a1badad1edece2339286f",
      "new_mode": 33188,
      "new_path": "gocore/dominator_test.go"
    },
    {
      "type": "modify",
      "old_id": "320bac90762df865af096e8905067098cd6edce5",
      "old_mode": 33188,
      "old_path": "gocore/gocore_test.go",
      "new_id": "d59e598535f1017db49ee0410923ab2ec4c72c09",
      "new_mode": 33188,
      "new_path": "gocore/gocore_test.go"
    },
    {
      "type": "modify",
      "old_id": "f81c40c2914db97f7fdeaac96059c8871507b6d8",
      "old_mode": 33188,
      "old_path": "gocore/object.go",
      "new_id": "61d66de053c549b3e309974c12fe926bac684680",
      "new_mode": 33188,
      "new_path": "gocore/object.go"
    },
    {
      "type": "modify",
      "old_id": "6cda39d786e8ca6e38291e620cef46674f467400",
      "old_mode": 33188,
      "old_path": "gocore/reverse.go",
      "new_id": "350374d3c4c61521402bc3dc8dc4e8ca7110f1f8",
      "new_mode": 33188,
      "new_path": "gocore/reverse.go"
    }
  ]
}
