)]}'
{
  "commit": "3ccfe28cf067bcebf2e7458d2f9d06535539b884",
  "tree": "061f819ff24e05b1bbfa8c00f4086b2ff0e2a41a",
  "parents": [
    "3c63f38df1d41dcbd9c337052d0d9cca22f28ae0"
  ],
  "author": {
    "name": "Richard Uhler",
    "email": "ruhler@google.com",
    "time": "Fri Mar 28 10:50:27 2025 -0700"
  },
  "committer": {
    "name": "Treehugger Robot",
    "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
    "time": "Fri Jul 11 10:24:03 2025 -0700"
  },
  "message": "Enable support for time-based concurrent GC triggering.\n\nThe new time-based concurrent GC triggering will take effect if\nthe HeapMemoryGcCostFactor runtime option is set to a non-zero value. It\ncauses time to be taken into accout in the decision for when to trigger\nGC: the longer it has been since the last GC, the fewer bytes need to be\nallocated before the next GC is triggered. This should improve\nallocation of GC effort across processes on device, resulting in less GC\neffort for more memory savings with appropriate choice of\nHeapMemoryGcCostFactor.\n\nBug: 425665469\nTest: Device boots. Run MPTS to see impact on memory and GC effort.\nFlag: com.android.art.rw.flags.enable_time_based_gc_triggering\nChange-Id: Id44f3d4551e36f694eb6f4a3821bc9d58277f6f3\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "385309f84451614b37b12f7d7cb243617fadcc72",
      "old_mode": 33188,
      "old_path": "runtime/gc/collector/garbage_collector.cc",
      "new_id": "ca7b062fb0afa2b184bcc04a596de89cb97d45ae",
      "new_mode": 33188,
      "new_path": "runtime/gc/collector/garbage_collector.cc"
    },
    {
      "type": "modify",
      "old_id": "82d637f363555eba7e214acb2fee1c0b1f7e47c3",
      "old_mode": 33188,
      "old_path": "runtime/gc/collector/iteration.h",
      "new_id": "80c7935814062523b03fffb052bb74d91ae32d24",
      "new_mode": 33188,
      "new_path": "runtime/gc/collector/iteration.h"
    },
    {
      "type": "modify",
      "old_id": "df58a5935904cbe885cb16fb3f0f88530ca8d7ce",
      "old_mode": 33188,
      "old_path": "runtime/gc/heap-inl.h",
      "new_id": "0d400db013b739a817d26c129ce57d0afb79b394",
      "new_mode": 33188,
      "new_path": "runtime/gc/heap-inl.h"
    },
    {
      "type": "modify",
      "old_id": "073aab3986643cdcc3f950fefec80b9e52a72466",
      "old_mode": 33188,
      "old_path": "runtime/gc/heap.cc",
      "new_id": "9490950a3e4914feb5bb5493fd7b04a8d051b634",
      "new_mode": 33188,
      "new_path": "runtime/gc/heap.cc"
    },
    {
      "type": "modify",
      "old_id": "e56e9a8f244e8d13230d7e5c657abdc8449bbb4d",
      "old_mode": 33188,
      "old_path": "runtime/gc/heap.h",
      "new_id": "29d248768b72ba045b51262b8fd3a472baaef286",
      "new_mode": 33188,
      "new_path": "runtime/gc/heap.h"
    },
    {
      "type": "modify",
      "old_id": "0eb96753ed28ca2b73dd690027512082da4c377e",
      "old_mode": 33188,
      "old_path": "runtime/parsed_options.cc",
      "new_id": "f5236fe2f858488b4fe59273b0981edfe70d19c1",
      "new_mode": 33188,
      "new_path": "runtime/parsed_options.cc"
    },
    {
      "type": "modify",
      "old_id": "de3274601a5b65d098f32d23ad0e432085dc2f48",
      "old_mode": 33188,
      "old_path": "runtime/runtime.cc",
      "new_id": "207696ef92b55be6c7f3d4a9e6cd217f82966d32",
      "new_mode": 33188,
      "new_path": "runtime/runtime.cc"
    },
    {
      "type": "modify",
      "old_id": "010dc04c706d440292e4f9786211ef9aac8c4fb0",
      "old_mode": 33188,
      "old_path": "runtime/runtime_options.def",
      "new_id": "144d592a865d5b88b1aba0922a0584300edada3c",
      "new_mode": 33188,
      "new_path": "runtime/runtime_options.def"
    }
  ]
}
