)]}'
{
  "commit": "893263b7d5bc2ca43a91ecb8071867f5134fc60a",
  "tree": "a99238843a9caad00122c8f7d13e031f5d81bc38",
  "parents": [
    "2fece5941f12395a94e742313e7059a9e419994d"
  ],
  "author": {
    "name": "Mathieu Chartier",
    "email": "mathieuc@google.com",
    "time": "Tue Mar 04 11:07:42 2014 -0800"
  },
  "committer": {
    "name": "Mathieu Chartier",
    "email": "mathieuc@google.com",
    "time": "Tue Mar 04 14:21:58 2014 -0800"
  },
  "message": "Avoid marking old class linker and intern table roots during pause.\n\nThe new root visiting logic has a concept of a root log which holds\nnew roots which were added since the start of the GC. This is an\noptimization since it lets us only mark these newly added roots\nduring the pause (or pre-cleaning) since the other roots intern table\nand class linker roots were marked concurrently at the start of the\nGC.\n\nBefore (EvaluateAndApplyChanges):\nMarkConcurrentRoots:\tSum: 605.193ms\nAfter:\nMarkConcurrentRoots:\tSum: 271.858ms\n\nThis should also reduce pathological GC pauses which used to be able\nto happen when the intern table or class linker became \"dirty\"\nduring the concurrent GC.\n\nChange-Id: I433fab021f2c339d50c35aaae7161a50a0901dec\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8366e7142e82bc35bc9c9882fe36611d5d656004",
      "old_mode": 33188,
      "old_path": "runtime/class_linker.cc",
      "new_id": "e5ca7219fbbb2ac09e31aba585582442c4037aa3",
      "new_mode": 33188,
      "new_path": "runtime/class_linker.cc"
    },
    {
      "type": "modify",
      "old_id": "e31a6cdcf0503ff1e0bf84da4f660a30c5251bdb",
      "old_mode": 33188,
      "old_path": "runtime/class_linker.h",
      "new_id": "aad7cfc8751edae6533a9cdd5c58c764da76b804",
      "new_mode": 33188,
      "new_path": "runtime/class_linker.h"
    },
    {
      "type": "modify",
      "old_id": "55c23f4c6d25a06527084247f714956861b50d4f",
      "old_mode": 33188,
      "old_path": "runtime/class_linker_test.cc",
      "new_id": "e6aa9c2cc1375f98cae9a6231a3c7525ab18fdd8",
      "new_mode": 33188,
      "new_path": "runtime/class_linker_test.cc"
    },
    {
      "type": "modify",
      "old_id": "c39e56fd2dba56479c0e694d3ffe4c2169cc66d7",
      "old_mode": 33188,
      "old_path": "runtime/gc/collector/mark_sweep.cc",
      "new_id": "4aff68a569339916e800df86ecc6a3bf61cb2e05",
      "new_mode": 33188,
      "new_path": "runtime/gc/collector/mark_sweep.cc"
    },
    {
      "type": "modify",
      "old_id": "c55b2b2d13e7e567a4bdbb349142fac994af1949",
      "old_mode": 33188,
      "old_path": "runtime/gc/collector/mark_sweep.h",
      "new_id": "5c0a2333757463652a22d89fe25f71c79aacd946",
      "new_mode": 33188,
      "new_path": "runtime/gc/collector/mark_sweep.h"
    },
    {
      "type": "modify",
      "old_id": "4668a1985ff84113231a9a3855b0b2688c58b212",
      "old_mode": 33188,
      "old_path": "runtime/gc/collector/semi_space.cc",
      "new_id": "a577f909de5a0d82d13ced8c61fad5f191db7437",
      "new_mode": 33188,
      "new_path": "runtime/gc/collector/semi_space.cc"
    },
    {
      "type": "modify",
      "old_id": "fc591e76f9565627d49b058959ad2e310adc334d",
      "old_mode": 33188,
      "old_path": "runtime/gc/heap.cc",
      "new_id": "b97b9ecd1bc043dddfa2d6482d46b1e6dc68e465",
      "new_mode": 33188,
      "new_path": "runtime/gc/heap.cc"
    },
    {
      "type": "modify",
      "old_id": "c5a8328a16372c95c931b22c47f7837a172e7b3b",
      "old_mode": 33188,
      "old_path": "runtime/hprof/hprof.cc",
      "new_id": "fc8b594870bf16ce03e5f47eaba32bbe937dd83e",
      "new_mode": 33188,
      "new_path": "runtime/hprof/hprof.cc"
    },
    {
      "type": "modify",
      "old_id": "660efe454181771db0f142ba6fc3eb00f954e5f1",
      "old_mode": 33188,
      "old_path": "runtime/intern_table.cc",
      "new_id": "524798d78128d6464acf54ec176aa2d62312a692",
      "new_mode": 33188,
      "new_path": "runtime/intern_table.cc"
    },
    {
      "type": "modify",
      "old_id": "cc48480f5025d7f5e4054dfe7e7c1c4f19133014",
      "old_mode": 33188,
      "old_path": "runtime/intern_table.h",
      "new_id": "fd921f3daf0d4bafc5184d6c8c611b26117e8b1c",
      "new_mode": 33188,
      "new_path": "runtime/intern_table.h"
    },
    {
      "type": "modify",
      "old_id": "d9bb121025c5de8840aa9d5c0da24540e2da66ef",
      "old_mode": 33188,
      "old_path": "runtime/native/dalvik_system_VMRuntime.cc",
      "new_id": "f48e8ad07a84f105d8ef470f756e5179e1bdbd4b",
      "new_mode": 33188,
      "new_path": "runtime/native/dalvik_system_VMRuntime.cc"
    },
    {
      "type": "modify",
      "old_id": "e80a473156482da8bca21c87358059da59546ee5",
      "old_mode": 33188,
      "old_path": "runtime/runtime.cc",
      "new_id": "75467297edd0c595a6114c0896fc4e4ee25139fc",
      "new_mode": 33188,
      "new_path": "runtime/runtime.cc"
    },
    {
      "type": "modify",
      "old_id": "2b3f10041120eba9cb9b57d5588e1a0b1fb8f30a",
      "old_mode": 33188,
      "old_path": "runtime/runtime.h",
      "new_id": "f12c3d8f467189740fdf9d1ae4664283f46d31a0",
      "new_mode": 33188,
      "new_path": "runtime/runtime.h"
    }
  ]
}
