)]}'
{
  "log": [
    {
      "commit": "89379355c4b532977ee77fa80d8763a8c784637c",
      "tree": "f73cfecdda524ef77c0ef411a60c4b2cbe174bfb",
      "parents": [
        "0e0b473a4c01ec6b739ac7aa9eccb63005fa3da2"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jan 29 15:21:09 2020 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jan 29 16:36:14 2020 -0800"
      },
      "message": "Add a couple of new benchmarks.\n\nAdd a calloc benchmark to make sure that a native allocator isn\u0027t\ndoing anything incorrectly when zero\u0027ing memory.\n\nAlso add a fork call benchmark to verify that the time to make a\nfork call isn\u0027t increasing.\n\nTest: Ran benchmarks on walleye and verified that the numbers are not\nTest: too variable between runs.\nChange-Id: I61d289d277f85ac432a315e539cf6391ea036866\n"
    },
    {
      "commit": "5a3c920051d8139a4c81f8804d3a7be94d150e85",
      "tree": "ddc7e20ab5777563640dc3b9b83939a6c871a27f",
      "parents": [
        "1752b5b9c0f2ae3845278e72d7ac9f83e33f0e32"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Dec 04 15:57:07 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Dec 05 15:46:22 2019 -0800"
      },
      "message": "Add mallopt M_PURGE benchmark.\n\nUpdate the native allocator documentation to include running of this\nbenchmark.\n\nMove the malloc_benchmark.cpp to malloc_sql_benchmark.cpp and use\nmalloc_benchmark.cpp for benchmarking functions from malloc.h.\n\nBug: 137795072\n\nTest: Ran new benchmark.\nChange-Id: I76856de833032da324ad0bc0b6bd85a4ea8c253d\n"
    },
    {
      "commit": "ae57a6b64195dc218dd060504e56250c874a251d",
      "tree": "f308bd33dd6ddd0e5189d6484847fd79c4ecc575",
      "parents": [
        "5e85d1b290877201174fdb2f09226b5bd34b80a9"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Nov 13 12:48:52 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Nov 13 12:50:50 2019 -0800"
      },
      "message": "Remove unused code.\n\nTest: Compiles.\nChange-Id: I92095bd0ee59a3b98ee8deba1c3efc4685389a1b\n"
    },
    {
      "commit": "96705e3712007e2739b809e02a6583c39756fc86",
      "tree": "9b0c06c53af6b526c47d33a14c8e0117ce204ba3",
      "parents": [
        "6ebeaac69db83624e14f96f0345ceae350e87c0e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 26 07:42:23 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 26 07:42:23 2019 -0700"
      },
      "message": "benchmarks: remove more boilerplate.\n\nMany of our benchmarks are basically just \"call one function with a\nfixed argument\". We don\u0027t need to keep repeating all the boilerplate for\nthat.\n\nThis also ensures we don\u0027t forget the benchmark::DoNotOptimize, which --\nin addition to being a good idea in general -- specifically solves the\nproblem with gettid benchmark and provides a more accurate result by\nremoving the indirection through a function pointer.\n\nTest: ran benchmarks\nChange-Id: Id67535243678cd0d48f51cf25141e2040da9af03\n"
    },
    {
      "commit": "7ec2c8a9b6f9a050d2ac9e0c35f0a631573f3de6",
      "tree": "289ddc73370f240d2feabf59fa855d11e04df3ce",
      "parents": [
        "1701d887aca0374c000a018a974227064e77d769"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Apr 05 12:47:39 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Apr 05 14:45:15 2019 -0700"
      },
      "message": "Add malloc benchmarks.\n\nAdding some benchmarks that keep a certain number of allocation\naround. This benchmark should not be used as an absolute for determining\nwhat is a good/bad native allocator. However, it should be used to make\nsure that numbers are not completely changed between allocator versions.\n\nAlso update the malloc sql benchmark to match the same style as these\nnew benchmarks.\n\nBug: 129743239\n\nTest: Ran these benchmarks.\nChange-Id: I1995d98fd269b61d9c96efed6eff3ed278e24c97\n"
    },
    {
      "commit": "4fae703029a75d7f8b649d1f4609ba8926c653e3",
      "tree": "a335dd49f8753a95bd53b16e455a87c4278dc388",
      "parents": [
        "8d11bea6c57cf62171f4157e0f2061ada4c19b10"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Sep 20 15:03:49 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Sep 20 15:03:49 2018 -0700"
      },
      "message": "Touch the memory when doing malloc/free benchmark.\n\nAlso, update the benchmark loop for modern C++.\n\nTest: Ran benchmarks.\nChange-Id: I925446b893793eb8c2c6759716cdd3dbbcf1e7c1\n"
    },
    {
      "commit": "32bc0fcf69dfccb3726fe572833a38b01179580e",
      "tree": "abca656f500087493e0997d5cf38cbcc9ec98eb8",
      "parents": [
        "65f82092a17518080178ff7004cc6db362ebfbcd"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Aug 02 17:31:13 2018 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Aug 02 18:09:44 2018 -0700"
      },
      "message": "Modernize codebase by replacing NULL with nullptr\n\nFixes -Wzero-as-null-pointer-constant warning.\n\nTest: m\nBug: 68236239\nChange-Id: I5b4123bc6709641315120a191e36cc57541349b2\n"
    },
    {
      "commit": "7063a838be5eb1f28f40a554944a31bab49c3211",
      "tree": "6f498b51428018eac4a519f7624b9e8131433433",
      "parents": [
        "721a5305e24b69b68ecc9431526f32131abc8f6c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 19 08:55:40 2017 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 19 08:55:40 2017 -0800"
      },
      "message": "More benchmarks.\n\nAdd a hand-rolled maps line parser as something to compare our realistic\nsscanf benchmark against. Also add benchmarks for the ato*/strto* family.\n\nThis patch doesn\u0027t fix the tests, which seem to have been broken by\nthe recent google-benchmark upgrade despite the benchmarks themselves\nall working just fine. To me that\u0027s a final strike against these tests\nwhich are hard to maintain and not obviously useful, but we can worry\nabout what to do with them -- whether to just delete them or to try to\nturn them into tests that actually have some value -- in a separate CL.\n\nBug: N/A\nTest: ran benchmarks\nChange-Id: I6c9a77ece98d624baeb049b360876ef5c35ea7f2\n"
    },
    {
      "commit": "858e33698d947a686fa59ed0206ce7c6656d3439",
      "tree": "74da61c257264c74bb683c5a7d7e0d387b53ac50",
      "parents": [
        "27d4977f1f4d0b4cbd67bd0cfc29d4d8cfff96f1"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Nov 30 08:53:15 2017 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Nov 30 09:09:41 2017 -0800"
      },
      "message": "Generate all the benchmarks to run.\n\nInstead of requiring the need to maintain a list of all the benchmarks,\nadd a programmatic way to generate all of the benchmarks.\n\nThis generation runs the benchmarks in alphabetical order.\n\nAdd a new macro BIONIC_BENCHMARK_WITH_ARG that will be the default argument\nto pass to the benchmark. Change the benchmarks that require default arguments.\n\nAdd a small example xml file, and remove the full.xml/host.xml files.\n\nUpdate readme.\n\nTest: Ran new unit tests, verified all tests are added.\nChange-Id: I8036daeae7635393222a7a92d18f34119adba745\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"
    }
  ]
}
