)]}'
{
  "log": [
    {
      "commit": "f5997b4d3f889569d5a2b724d83d764bfbb8d106",
      "tree": "f0d3b3890a604a8b3c4c87c0f408f86df041690e",
      "parents": [
        "9658d24deaa9bd07781bfac860d2a6dd89066d55"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 20 10:37:54 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 24 13:45:05 2014 -0700"
      },
      "message": "More advanced timing loggers.\n\nThe new timing loggers have lower overhead since they only push into\na vector. The new format has two types, a start timing and a stop\ntiming. You can thing of these as brackets associated with a\ntimestamp. It uses these to construct various statistics when needed,\nsuch as: Total time, exclusive time, and nesting depth.\n\nChanged PrettyDuration to have a default of 3 digits after the decimal\npoint.\n\nExaple of a GC dump with exclusive / total times and indenting:\nI/art     (23546): GC iteration timing logger [Exclusive time] [Total time]\nI/art     (23546):   0ms InitializePhase\nI/art     (23546):   0.305ms/167.746ms MarkingPhase\nI/art     (23546):     0ms BindBitmaps\nI/art     (23546):     0ms FindDefaultSpaceBitmap\nI/art     (23546):     0ms/1.709ms ProcessCards\nI/art     (23546):       0.183ms ImageModUnionClearCards\nI/art     (23546):       0.916ms ZygoteModUnionClearCards\nI/art     (23546):       0.610ms AllocSpaceClearCards\nI/art     (23546):       1.373ms AllocSpaceClearCards\nI/art     (23546):     0.305ms/6.318ms MarkRoots\nI/art     (23546):       2.106ms MarkRootsCheckpoint\nI/art     (23546):       0.153ms MarkNonThreadRoots\nI/art     (23546):       4.287ms MarkConcurrentRoots\nI/art     (23546):     43.461ms UpdateAndMarkImageModUnionTable\nI/art     (23546):     0ms/112.712ms RecursiveMark\nI/art     (23546):       112.712ms ProcessMarkStack\nI/art     (23546):     0.610ms/2.777ms PreCleanCards\nI/art     (23546):       0.305ms/0.855ms ProcessCards\nI/art     (23546):         0.153ms ImageModUnionClearCards\nI/art     (23546):         0.610ms ZygoteModUnionClearCards\nI/art     (23546):         0.610ms AllocSpaceClearCards\nI/art     (23546):         0.549ms AllocSpaceClearCards\nI/art     (23546):       0.549ms MarkRootsCheckpoint\nI/art     (23546):       0.610ms MarkNonThreadRoots\nI/art     (23546):       0ms MarkConcurrentRoots\nI/art     (23546):       0.610ms ScanGrayImageSpaceObjects\nI/art     (23546):       0.305ms ScanGrayZygoteSpaceObjects\nI/art     (23546):       0.305ms ScanGrayAllocSpaceObjects\nI/art     (23546):       1.129ms ScanGrayAllocSpaceObjects\nI/art     (23546):       0ms ProcessMarkStack\nI/art     (23546):   0ms/0.977ms (Paused)PausePhase\nI/art     (23546):     0.244ms ReMarkRoots\nI/art     (23546):     0.672ms (Paused)ScanGrayObjects\nI/art     (23546):     0ms (Paused)ProcessMarkStack\nI/art     (23546):     0ms/0.610ms SwapStacks\nI/art     (23546):       0.610ms RevokeAllThreadLocalAllocationStacks\nI/art     (23546):     0ms PreSweepingGcVerification\nI/art     (23546):   0ms/10.621ms ReclaimPhase\nI/art     (23546):     0.610ms/0.702ms ProcessReferences\nI/art     (23546):       0.214ms/0.641ms EnqueueFinalizerReferences\nI/art     (23546):         0.427ms ProcessMarkStack\nI/art     (23546):     0.488ms SweepSystemWeaks\nI/art     (23546):     0.824ms/9.400ms Sweep\nI/art     (23546):       0ms SweepMallocSpace\nI/art     (23546):       0.214ms SweepZygoteSpace\nI/art     (23546):       0.122ms SweepMallocSpace\nI/art     (23546):       6.226ms SweepMallocSpace\nI/art     (23546):       0ms SweepMallocSpace\nI/art     (23546):       2.144ms SweepLargeObjects\nI/art     (23546):     0.305ms SwapBitmaps\nI/art     (23546):     0ms UnBindBitmaps\nI/art     (23546):   0.275ms FinishPhase\nI/art     (23546): GC iteration timing logger: end, 178.971ms\n\nChange-Id: Ia55b65609468f212b3cd65cda66b843da42be645\n"
    },
    {
      "commit": "a1ce1fef2d49d1d537776a5308ace7102a815fe5",
      "tree": "a1afe850d9ebd21f4b751eb68e1ec3dc60dab001",
      "parents": [
        "930f7b843ddc6e6530439d3fdb0e2133a6292f1e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Feb 24 23:23:58 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Feb 26 13:17:44 2014 -0800"
      },
      "message": "Split up CommonTest into CommonRuntimeTest and CommonCompilerTest\n\nChange-Id: I8dcf6b29a5aecd445f1a3ddb06386cf81dbc9c70\n"
    },
    {
      "commit": "5fe9af720048673e62ee29597a30bb9e54c903c5",
      "tree": "733dca70511f4798a3082b084a9a3d6da9f5914a",
      "parents": [
        "dfe78a6e6b526d482298100a1f6392a8c7105522"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 14 00:17:20 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 14 14:59:57 2013 -0800"
      },
      "message": "Fix memory leaks relating to timing logger.\n\nBug: 11670287.\nWe use pointers to uninitialized values for control-flow in the timing logger\ncode, add TODO comments to clean this up later.\nRemove base namespace and other bits of tidying.\n\nChange-Id: I1e6600a1e92f974c8f58f3a405a4e4abb4d9f80f\n"
    },
    {
      "commit": "4446ab9e70dde779d97f451c4904f6b8770232bd",
      "tree": "a19ddb0ffa054c6dcaf635afb228730506232d8e",
      "parents": [
        "cc386f94631dd1d60b0b0b2d4e1e243dda363f32"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Fri Aug 09 21:17:25 2013 -0700"
      },
      "committer": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Fri Aug 09 21:17:25 2013 -0700"
      },
      "message": "Systrace fixups and refactoring for TimingLogger\n\nFixed systrace bounds for timing logger in GC. Refactored CumulativeLogger a bit to\nallow for multiple identical entries. Added ScopedSplit, now composes with explicit\nstart/end/new splits. Adds some unit tests.\nBug: 10036801\n\nChange-Id: If0afb88b48ec3a1e19462ed354babb274a9517a7\n"
    }
  ]
}
