)]}'
{
  "log": [
    {
      "commit": "938bece9e0c5d7d67d137dbfbba1e2d244c95b35",
      "tree": "cb655541a4b96f3af5c854a80793af05833235b5",
      "parents": [
        "57e07a150e536f79d78f8203b0c807087b5c854b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 23 09:52:50 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 23 14:03:43 2017 -0700"
      },
      "message": "Benchmark fgetln(3) and getline(3) as well as fgets(3).\n\nOn Pixel 2016, there\u0027s about 1us overhead for getline versus\nfgets. fgetln(3) is worse still because of the intermediate buffering\n(though it might actually be better if you were only reading one line\nwhose length was less than BUFSIZ).\n\nAlso use somewhat realistic input for these benchmarks: /dev/zero makes\nno sense at all.\n\nBug: N/A\nTest: ran benchmarks\nChange-Id: I4a319825a37ac3849014c4c6b31523c1e200c641\n"
    },
    {
      "commit": "d706fe5f9e83707901389914c77afa69c19e07e6",
      "tree": "dffb701fa9e822f6c45c2d14d711e51d1701e22a",
      "parents": [
        "096fa4497c50cffdb56f06d7038adbeb3c1254d6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 22 15:26:07 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 23 00:05:21 2017 +0000"
      },
      "message": "Fix the stdio fwrite benchmark.\n\nCan\u0027t write to a read-only file. (Mode \"rw\" isn\u0027t meaningful, but isn\u0027t\nconsidered an error by any libc I know of.)\n\nBug: http://b/64585477\nTest: ran benchmarks\nChange-Id: Ifec1d68414bfc8f3cc8d7f912cb135dccb2e7a41\n"
    },
    {
      "commit": "a98a5fb63ee00bbd7f1663192453efcdf117cb92",
      "tree": "ca3ade0c20e9bb89f76e4ae37e9d3fde00a264f1",
      "parents": [
        "ac4f4b43a3d19f40fc1138c5f78a3d5afd535935"
      ],
      "author": {
        "name": "Anders Lewis",
        "email": "agloo@google.com",
        "time": "Wed Aug 09 16:52:19 2017 -0700"
      },
      "committer": {
        "name": "Anders Lewis",
        "email": "agloo@google.com",
        "time": "Wed Aug 09 17:24:13 2017 -0700"
      },
      "message": "Improve error handling and fix minor bugs in bionic benchmarks.\n\nTest: Unit tests.\nChange-Id: I224ae4c7f195176eb8a87deddb2debcbf0f24ba3\n"
    },
    {
      "commit": "ac4f4b43a3d19f40fc1138c5f78a3d5afd535935",
      "tree": "383382ddc413b182c7b84cab5c2e47004bfd9470",
      "parents": [
        "a7b0f8899790198cd9e72950f481679fe31e1a92"
      ],
      "author": {
        "name": "Anders Lewis",
        "email": "agloo@google.com",
        "time": "Tue Aug 08 18:29:51 2017 -0700"
      },
      "committer": {
        "name": "Anders Lewis",
        "email": "agloo@google.com",
        "time": "Wed Aug 09 15:26:37 2017 -0700"
      },
      "message": "Add musl benchmarks.\n\nTest: Unit tests.\nChange-Id: Ifb2911825f84b95fe64a803bfabd32fb81210eae\n"
    },
    {
      "commit": "a7b0f8899790198cd9e72950f481679fe31e1a92",
      "tree": "4167c3afc82ffb281f43ef2332a60c675f121e43",
      "parents": [
        "0d6485eca47f0e860486795b2da97679948fd5d5"
      ],
      "author": {
        "name": "Anders Lewis",
        "email": "agloo@google.com",
        "time": "Mon Jul 24 20:01:13 2017 -0700"
      },
      "committer": {
        "name": "Anders Lewis",
        "email": "agloo@google.com",
        "time": "Mon Aug 07 13:16:09 2017 -0700"
      },
      "message": "Implement interface for bionic benchmarks.\n\nTest: Unit tests.\nChange-Id: Ic61932f61ddd572e2f045b601f9da6e090cdc45d\n"
    },
    {
      "commit": "be763d85c881b58754e650192204e8a2309660cb",
      "tree": "09175cceb1d28d140993c687b4c89abfeac2763d",
      "parents": [
        "b3321c961452f69650e4a6bd2a7db317a80b3234"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Mon Nov 14 14:16:08 2016 +0100"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Tue Nov 15 09:07:11 2016 +0100"
      },
      "message": "Fix deprecated range_x() calls.\n\nTest: builds with new libbenchmark.\nChange-Id: I91c0e5c1b5cf75b8e551f3c59d83ac9352817c4a\n"
    },
    {
      "commit": "1a5fd9c155be65d49d51cd511097541897f4bb37",
      "tree": "79624b48b2b47956a8426a2f80e407ce0f56bcac",
      "parents": [
        "74669e99ce73da86002fe047c73913427ef1d2a1"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Jun 10 11:07:21 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Jun 10 15:25:49 2016 -0700"
      },
      "message": "Fix misc-macro-parentheses warnings in bionic.\n\nAdd parentheses around macro arguments used beside operators,\nor use constexpr for simple constants.\nBug: 28705665\n\nChange-Id: I378c8aad92d3ec8e8c4b0440b5c2c99dfe01ce79\n"
    },
    {
      "commit": "281e06ba69ce6f591697acf65a24651050809920",
      "tree": "c2a4caf009b63e8be398ef3da1f0e792f41c9746",
      "parents": [
        "925bf56447cf87da910441f12b302051e07549ba"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 17 10:23:52 2016 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 07 13:50:50 2016 -0800"
      },
      "message": "Switch bionic over to google-benchmark.\n\nAlso removes the old benchmarking library.\n\nChange-Id: I4791ae69fa5dea03644d3d411c60b7c6d1fceae3\n"
    },
    {
      "commit": "c217373bd69c501e5ad30d72df1893ab81c7fd66",
      "tree": "be998650c41a2bf0c46ec626e2e2efafe5fc5987",
      "parents": [
        "fe77d2d0036306eec978eccf7b4db81fa424a2f3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 13 13:18:04 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 13 13:18:04 2015 -0700"
      },
      "message": "Fix unused result errors in bionic.\n\nThis lets us use _FORTIFY_SOURCE\u003d2 on the host.\n\nChange-Id: I69f5ff9834bfd595aae6584104bee10c4d8a5eeb\n"
    },
    {
      "commit": "df4942c04a63ae6e4f5c78ece9f696d6b8b74d32",
      "tree": "f4e1061bcaf821753263413f1e89fb82f5d50e99",
      "parents": [
        "3e1b5f46c07aef5983ecf2feb1c3369b2cd200c0"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Feb 17 19:58:53 2015 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Feb 19 14:58:24 2015 -0800"
      },
      "message": "Refactor the benchmark code.\n\nChanges:\n- Modify the benchmarks to derive from a single Benchmark object.\n- Rewrite the main iteration code. This includes changing the iteration\n  code to use the actual total time calculated by the benchmark as a basis\n  for determining whether there are enough iterations instead of using\n  the time it takes to run the benchmark.\n- Allow benchmarks to take no argument, int, or double.\n- Fix the PrettyInt printer for negative integers.\n- Modify the max column width name to include the whole name including\n  the arg part.\n- Reformat property_benchmark.cpp in line with the rest of the code.\n- Modify a few of the math benchmarks to take an argument instead of\n  separate benchmarks for the same function with different args.\n- Create a vector of regex_t structs to represent the args all at\n  once instead of when running each benchmark.\n\nThis change is in preparation for adding new math based benchmarks.\n\nTested by running on a nexus flo running at max using the new code\nand the old code and comparing. All of the numbers are similar, but\nsome of the iterations are different due to the slightly different\nalgorithm used.\n\nChange-Id: I57ad1f3ff083282b9ffeb72e687cab369ce3523a\n"
    },
    {
      "commit": "8c4994bbc1a9a01e34ea92c91eb5b2d1a27bd074",
      "tree": "8b632cea0832373b9cb843427bb5976b3668f1a2",
      "parents": [
        "f374358414812d3e5a45ba75a2b1926693924420"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 20 18:09:05 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 21 10:33:30 2015 -0800"
      },
      "message": "Implement __fsetlocking.\n\nThe old __isthreaded hack was never very useful on Android because all user\ncode runs in a VM where there are lots of threads running. But __fsetlocking\nlets a caller say \"I\u0027ll worry about the locking for this FILE*\", which is\nuseful for the normal case where you don\u0027t share a FILE* between threads\nso you don\u0027t need any locking.\n\nBug: 17154740\nBug: 18593728\nChange-Id: I2a8dddc29d3edff39a3d7d793387f2253608a68d\n"
    },
    {
      "commit": "1cf32f83d3284785c64d3ea66560d23eec915956",
      "tree": "2cf23fe9c573f6f265db968f3569ac952f754289",
      "parents": [
        "481cf21e08a6cbbc686487744f1cb07b6d3f400e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 16 17:08:31 2015 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 16 17:08:31 2015 -0800"
      },
      "message": "Add a benchmark for using stdio to read a file in /proc.\n\nChange-Id: I12517aae19e36b7c022a11e8807aece61bb0cb9c\n"
    },
    {
      "commit": "47dc7c974e71f8d6275288f8137156ce317bf53c",
      "tree": "fddd8c11b64da013a5aa6ef6afc5f7b89f5655f0",
      "parents": [
        "3e6ef3f90285191976a60d7a94287fb0fec1af5d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 01 13:12:18 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 01 13:12:18 2014 -0800"
      },
      "message": "Benchmark fread/fwrite both buffered and unbuffered.\n\nBug: 18556607\nChange-Id: I53905aedcea75fe550d9c423fb701c2c9bf8e831\n"
    },
    {
      "commit": "b28e490b7350b21c5ae9e5b3bb3e082d8357a1b0",
      "tree": "0b14163dbc4e3dea19c9b81aa2f33096a856dac4",
      "parents": [
        "10f6beb3eb46cb2488427f58dccdd7bbfab5a250"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 11 11:19:06 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 11 11:20:52 2014 -0700"
      },
      "message": "Add various benchmarks.\n\nThese are based on ones from system/extras/tests/bionic/.\n\nChange-Id: I7b1ae15a2ca5d1031a6a511d97b88125c1770047\n"
    }
  ]
}
