)]}'
{
  "log": [
    {
      "commit": "641a473912b3bcaaff2c71070611490b7c547cfc",
      "tree": "67bf5b2eaaeaf19c6cebac29984b49c19f172f9b",
      "parents": [
        "5555dd1df3c7f3aaea548c3b657b9325538e9780"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Aug 24 13:21:35 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Aug 25 08:59:29 2017 -0700"
      },
      "message": "ART: Fix reference-related warnings\n\nMake some parameters and locals references to avoid unnecessary\ncopies.\n\nBug: 32619234\nTest: m test-art-host\nChange-Id: Idfed600c7c5492a80f72f51424253bcbea824a94\n"
    },
    {
      "commit": "8eecddf0ccb18bd3b4d32a48c3b57852e03c12b4",
      "tree": "a3398ee0cd07d8ad8a8b89144c019c881a6e4388",
      "parents": [
        "c9267c48979698a9217760c914aba13ea20b5990"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 12 16:05:54 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 12 16:44:11 2017 -0700"
      },
      "message": "Add missing profman arg for compiled_method_threshold\n\nThe arg is --boot-image-sampled-method-threshold, this value\nspecifies how many profiles a non-hot method should be before it gets\nmarked as hot in the boot profile. This is useful if we want to do\nthings like compiling all executed methods for the boot image.\n\nBug: 37966211\nTest: test-art-host-gtest-profile_assistant_test\n\nChange-Id: Ib882df1856d555048a4a19343c233232ee848e8a\n"
    },
    {
      "commit": "2f7945540cf511148c73672f2ce80ae859b95bed",
      "tree": "ae78e1978b99b991a51a73281378ab70b2629e8a",
      "parents": [
        "a08c9bbe02073d34358c15e3339fa47ed49c39fc"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 19 10:58:08 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 23 00:00:34 2017 +0000"
      },
      "message": "Add support for generating boot image profile\n\nAdded three options:\n--generate-boot-image-profile:\nIf this option is passed in, profman creates a boot image profile.\n\n--boot-image-clean-class-threshold\u003d\u003cvalue\u003e\nSpecifies how many occurrences of a likely clean class are required\nbefore a class is added to the profile.\n\n--boot-image-class-threshold\u003d\u003cvalue\u003e\nSpecify how many occurrences of a possibly dirty class are required\nbefore a class is added to the profile.\n\nAdded unit test.\n\nTest: test-art-host\n\nBug: 37966211\n\nChange-Id: I8e12b0ec34dfa1d1bed0b51f342fffde09815348\n"
    },
    {
      "commit": "f70fe3d0b0b29c955a4f7310beae1cfb926ca5c7",
      "tree": "d69a44ce49c1745c2c2e08680915c7a1ce587693",
      "parents": [
        "7888b59b4542e15dd061047e4cb34f795cc2354c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jun 21 15:24:02 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 22 11:11:50 2017 -0700"
      },
      "message": "Add dex2oat support for profile based image creation\n\nAllow creating a boot image with only a profile without requiring\nany of --compiled-classes, --compiled-methods, or --image-classes.\n\nTo do so, you need to pass --profile-file and\n--compiler-filter\u003dspeed-profile.\n\nAdded a test dex2oat_image_test to verify behavior. This test covers:\n--compiled-classes\n--compiled-methods\n--image-classes\n--profile-file\n\nTest: test-art-host-gtest-dex2oat_image_test\n\nBug: 37966211\n\nChange-Id: I36d41b1c6e6560e6b3494b1df7024a4450ed0c0e\n"
    },
    {
      "commit": "bbe3a5efcdfb2fb15a4e5f724cc323ae0ada5111",
      "tree": "65fd149e1159674681d866e47e485d85b8464334",
      "parents": [
        "d58932f98a673c9d687863a7efafb2da168063a2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 13 16:36:17 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 15 11:45:06 2017 -0700"
      },
      "message": "Refactor some profiling info functions\n\nDeleted profile_compilation_info-inl.h\n\nAdded a new helper class MethodHotness to reduce the number of\nrequired getters for reading method hotness, startup, and post\nstartup booleans.\n\nTest: test-art-host\nBug: 62040831\n\nChange-Id: I799a38e2bea6177ba5816c54524f4ccacedba772\n"
    },
    {
      "commit": "28b5c582070a14979dc8cbcddba136ac334ed52a",
      "tree": "9ae2955e5d1c2ac832c86a8b0e71f0f6226007e8",
      "parents": [
        "6ecff4d2127e70738aa2493d6deceb946c204eff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 06 14:12:50 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 06 14:15:42 2017 -0700"
      },
      "message": "Dump startup and post startup methods for --dump-only\n\nThe format is:\nhot methods: ...\nstartup methods: id0, id1, ...\npost startup methods: id0, id1, ...\nclasses:\n\nAlso added test.\n\nTest: mm test-art-host-gtest-profile_assistant_test -j32\nBug: 62040831\n\nChange-Id: I2ffbe17e888d4adae348bb14e0b92c284ce1081c\n"
    },
    {
      "commit": "ea650f3bc4f54eb2c647cf0f7134398ef5038792",
      "tree": "cdddde74424cf9fbeb2ef62e6bebca619c5ed989",
      "parents": [
        "6559ba1cfb9d24fdca4b1b1ec9e0b8dc31679982"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed May 24 12:04:13 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 02 18:25:09 2017 +0000"
      },
      "message": "Move profiles to use bitmaps for startup methods\n\nThis CL enables changes like compiling only hot methods while still\ndoing layout for hot and startup methods.  The bitmaps are also a\nbit smaller for post-launch use cases.\n\nNo change in compilation strategy yet.\n\nFixed some bugs in dexlayout test like using a profile with the wrong\ndex location. This meant the second invocation of dexlayout didn\u0027t\nhave any profile data.\n\nAdded profman support for dump-classes-and-methods,\ncreate-profile-from, and related test.\n\nProfile sizes (bytes) post launch:\nGmail: 7290 -\u003e 6136\nMaps: 22896 -\u003e 18984\nMusic: 8582 -\u003e 7050\nYouTube: 16733 -\u003e 14592\n\nTest: test-art-host\n\nBug: 62040831\n\nChange-Id: I9915b81a2ff2c47464acbbdeb55ce30a33d5483f\n"
    },
    {
      "commit": "08556886a16ff2bb9fc3f184ac699de21c0369cd",
      "tree": "c90ddce83ac98252ced0a4181b0c4b1e0e34c1f8",
      "parents": [
        "854461a4cd5e4a38debe3616e12b52fe7f160782"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri May 26 16:40:45 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jun 01 06:54:11 2017 -0700"
      },
      "message": "Handle gracefully profiles with invalid classes or methods\n\nBug: 38410980\nTest: m test-art-host-run-test-707\nChange-Id: I8c1b0a00c113c0faf0cc5d141e67e4183322520f\n"
    },
    {
      "commit": "e6f87cc95e5351f3872a4c50e18915a282578ff8",
      "tree": "94af0c8fb8c8926f2bf3fe20d8c3ad6d7dcc4efb",
      "parents": [
        "798ba16bda747d74a27b7a748d3bb5deb2ccbf68"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed May 24 17:41:05 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu May 25 15:09:31 2017 -0700"
      },
      "message": "Fix compiler crash due to inline caches and improve docs\n\nFix a potential crash when extracting the inline caches from the method.\nThe way we copied the inline cache into a new map was not correct. In\nProfileCompilationInfo::GetMethod() we reused the same profile arena\nfor allocation which is not thread safe. When compiling with multiple\nthreads the profile arena could become corrupted due to races.\n\nAddress all the comments from the late reviews on the CL which migrates\nthe profiles to arena storage.\n\nTest: m test-art-host\n      compile with speed-profile apps on device\nBug: 37711886\nBug: 62062532\nChange-Id: I61af5175bc68b2c7dba77afb3cdff221989cc387\n"
    },
    {
      "commit": "cc3171ab3af35b4e4ad5671d7425aa8a6bfcc5f3",
      "tree": "ec2c8c37b4d4cb1c213aafd2e5ab41fb115fb241",
      "parents": [
        "80dd30abe3fac52f6de4aec0543918d360f7d08a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri May 19 16:47:53 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon May 22 19:00:04 2017 -0700"
      },
      "message": "Use arena allocation for profiles\n\nBy using our arena allocator we can madvise the memory used during\nprofile processing right way. jemalloc may defer the release based on\nunpredictable native allocation.\n\nThe other advantage of arenas is a much simpler way to measure the\nmemory needed by profiles.\n\nTest: m test-art-host\nTest: manual inspection with meminfo and heaptrack\nBug: 37711886\n\nChange-Id: Ib656a8ac63600477ff553831087a83dc40d9c537\n"
    },
    {
      "commit": "34067269b9493239e1fdbdd562eda1b0d2c9ec39",
      "tree": "bb0f37b56e62167896c60a1346d7a91d4c6c7aa2",
      "parents": [
        "8309d9b173b205bb9530dbd94e48731c20b8e4f4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 06 13:55:46 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 07 16:23:43 2017 -0700"
      },
      "message": "Change dump-classes profman option to dump-classes-and-methods\n\nThe new option is called \"--dump-classes-and-methods\". This option\ndumps methods and classes in the profile as a format that is valid\ninput for the \"--create-profile-from\" option.\n\nThe goal is to be able to store text based profiles that don\u0027t\ndepend on dex indices or checksums.\n\nTest: mm test-art-host-gtest-profile_assistant_test -j40\n\nBug: 36457259\nBug: 34927277\n\n(cherry picked from commit 09f6c36c0c5ac055bbb5e36991ab60156be1fb46)\n\nChange-Id: I79c4bd8da5c0b4dc9c4c6daed538845792f52299\n"
    },
    {
      "commit": "cea9e9d26c32372ec8c75e6c89b1bfc08c5e1911",
      "tree": "5132e19736f2afdd2b10f3243297e667b2ab0a21",
      "parents": [
        "f8d00ff206e33ff66fcabcf75d6b5bbe30cddb98"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Mar 23 19:04:59 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Mar 28 16:51:02 2017 -0700"
      },
      "message": "Fix profile merges in profman\n\nprofman used ProfileCompilationInfo::Load() which was not preserving the\ncorrect order of the dex files (in a multidex profile).\n\nThe CL fixes profman to use ProfileCompilationInfo::MergeWith which\nguarantees the right dex order and redesigns profile storage to avoid\nsuch mistakes in the future. Instead of keeping data in a map indexed by\nthe profile key, store it in a vector whose index match profile_index.\nThis way, any iteration over profile info becomes deterministic with\nrespect to the profile index of the dex files.\n\nTest: m test-art-host-gtest-profile_assistant_test\n      m test-art-host-gtest-profile_compilation_info_test\n      profile YouTube.apk and compile it based on the reference profile\n(failing before)\n\nBug: 36371709\nChange-Id: Ideda1336e5aff59a7c5560429da645fe02c804c9\n"
    },
    {
      "commit": "f0a31f865c3b3e5843ddd52f015c70293b54b4e4",
      "tree": "c6881a22ddb9523220861c070991a83e1bc1f97d",
      "parents": [
        "1082e0e46ddfae2ed9cc3d0a3d6025e7335ac239"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 27 15:50:37 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Mar 28 10:57:11 2017 -0700"
      },
      "message": "Add profman option to generate a random profile based on dex files.\n\nExtends --generate-test-profile to make a randomized profile based on a\nset of dex files. Will randomly incorporate classes and methods from all\nthe dex files given. Can be given a random seed for reproducibility.\n\nBug: 36107940\nTest: mm test-art-host-gtest-profile_assistant_test\nChange-Id: Ib0e54bde5317439516a39afa41c3c9980834fa54\n"
    },
    {
      "commit": "d808e8bb070b853639e41245d846f2fd9354b92f",
      "tree": "211dc821337006864fd4de739e0c24886f389894",
      "parents": [
        "f9806373ca50896ac54cb9da49a030c13ec14769"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 21 13:37:41 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 22 13:10:32 2017 -0700"
      },
      "message": "Add syntax for adding all class methods to profman\n\nUsed to generate methods from the class list. The logic adds all\nthe methods if the method string is \"*\". The class is also added to\nthe profile.\n\nBug: 36457259\n\nTest: mm test-art-host-gtest-profile_assistant_test -j32\n\nChange-Id: Ibee856646b94eccc48d9ef6566475be74e77a0cd\n"
    },
    {
      "commit": "589e71eb71477603c88b14118b2d3a33508c3c79",
      "tree": "95d88c7c8ba3a9b2009361d61164cef6a6339308",
      "parents": [
        "d9f647ac9a5cb0c6f112332d584756251c2cfb9f"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 03 16:05:05 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Mar 06 12:57:30 2017 -0800"
      },
      "message": "Encode inline caches with missing types in the profile\n\nNot all runtime types can be encoded in the profile. For example if the\nreceiver type is in a dex file which is not tracked for profiling its\ntype cannot be encoded.\n\nPreviously we would just skip over these types but that can lead to\nencode a polymorphic inline cache when in fact it should be megamorphic.\n\nWith this CL, inline caches for which types are missing are marked in\nthe profile with a special bit, kIsMissingTypesEncoding.\n\nAlso, extend profman to understand text lines which specify an inline\ncache with missing types.\n\nTest: test-art-host\n\nBug: 35927981\nBug: 32434870\nChange-Id: I34528a39c227f3133771fd4454701c1ddc234f40\n"
    },
    {
      "commit": "e0ac1151b360be7147fa20320c0b427688b1424f",
      "tree": "c33419b00c47b731075bcfd7b75b81f366beda91",
      "parents": [
        "425b5d23e2c60d295471817a75b1b554481c5334"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 13 19:03:47 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 03 13:12:31 2017 -0800"
      },
      "message": "Extend profman to generate profiles with inline caches\n\nExtend profman logic to generate profiles based on a simple textual\nrespresentation. This will help writing tests for profile guided\ncompilation.\n\nBefore this CL, profman was able to generate profiles based on a list of\nclasses like:\njava.lang.Comparable\njava.lang.Math\njava.lang.Object\n\nThis CL, enables profman to understand methods and classes alike. The\nnew format is:\n\n# Classes\nLjava/lang/Comparable;\nLjava/lang/Math;\n# Methods with inline caches\nLTestInline;-\u003einlinePolymorhic(LSuper;)I+LSubA;,LSubB;,LSubC;\nLTestInline;-\u003enoInlineCache(LSuper;)I\n\n\"LTestInline;-\u003einlinePolymorhic(LSuper;)I+LSubA;,LSubB;,LSubC;\"\nmeans that method `int inlineMonomorphicSubA(Super)` from class Main\nwill be added to the profile with the inline cache (SubA,SubB) for its\none and only invoke virtual.\n\n@Main#noInlineCache:(LSuper;)I+;\nmeaning that method `int noInlineCache\u0027 from class Main will be added\nto the profile with no inline cache.\n\nNote that the methods are allowed to have a single invoke virtual in\ntheir dex bytecode. That is to keep the parsing the file format\nsimple and easy to use.\n\nAlso, add a few more tests for profiles and fix an issue caused by\nwriting the dex files in a possibly wrong order.\n\nTest: m run-test-host-gtest-profile_assistant_test\nBug: 32434870\nChange-Id: I6b7340cf613007117d9818be206ccb3a27b815bf\n"
    },
    {
      "commit": "7c80f2d716a7931ab66096322fcb6b951426b151",
      "tree": "e1c2edf74b50af88e5310145f49925d6d436b883",
      "parents": [
        "e27abfa9faebd3ca251716e18f97876a73bca554"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Feb 07 16:47:58 2017 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Feb 10 14:26:21 2017 -0800"
      },
      "message": "Convert preload list to profile\n\nAdd functionality to profman to take a list of classes in a text file\n(dot notation rather than descriptors) and build a compiler profile\nfile from it.\n\nBug: 34929204\nTest: test-art-host\nChange-Id: Id867ec7b436cbd8412809a8adb093f588ff474b7\n"
    },
    {
      "commit": "97c381e3ce34cd327c2ec35fa850bd0eaa9b697f",
      "tree": "4a21b2db89c578cdb2908547547e0546748eec7f",
      "parents": [
        "3cb871ab1af47576959fd24a99d370381b8f193e"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Feb 01 15:09:58 2017 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Feb 01 15:51:42 2017 -0800"
      },
      "message": "Separate art::Exec from utils\n\nThe rest of utils.cc does not depend on art::Runtime. This separates\nthe part dependent on that class, so that including utils.cc in the\nbuild does not require the entire Runtime. Another preparatory cleanup\nto getting tools to build on Windows.\n\nBug: 22322814\nTest: test-art\nChange-Id: I194ff363fc2ab87e5311ecea6973a2d0fad2621d\n"
    },
    {
      "commit": "33083d626dbf2c8b06badfd73f50e98114483059",
      "tree": "f6f5db21855a6182b591b57e6a34e5c1fc41b7d0",
      "parents": [
        "fd5f52b60cfa217fb0c4d7dcabdd0336b55990d7"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jan 18 15:29:12 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jan 18 19:00:21 2017 -0800"
      },
      "message": "Rename offline_profiling_info to profile_compilation_info\n\nThis solves a long standing TODO to align the names of the files and the\nclass.\n\nBug: 32434870\nTest: test-art-host\n\nChange-Id: I2707da8fef8736a7223189d894fc00ff11bfab12\n"
    },
    {
      "commit": "a5b09a67034e57a6e10231dd4bd92f4cb50b824c",
      "tree": "304be738f4fa528b7ad2676103eecc84c79eaeeb",
      "parents": [
        "dac7ad17c78387d15d7aefae0f852dddf5f37e34"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 17 15:21:22 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 21 10:57:00 2016 -0800"
      },
      "message": "ART: Add dex::TypeIndex\n\nAdd abstraction for uint16_t type index.\n\nTest: m test-art-host\nChange-Id: I47708741c7c579cbbe59ab723c1e31c5fe71f83a\n"
    },
    {
      "commit": "7bcdb53803d8e276d374fc7bb74d6dd893b39345",
      "tree": "b4cb3757d6d8db36a7c3cdd9f029bf9b97dd1635",
      "parents": [
        "c45885712f70f3d0a328fe3df5550a2ee080cef3"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jun 07 16:14:47 2016 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jun 28 13:26:30 2016 +0100"
      },
      "message": "Add ability to generate a random test profile\n\nThis is usefull to drive automated profile guided compilations.\n\nTest: added TestProfileGeneration in profile_assistant_test.\n\nbug: 29066961\nChange-Id: Ib7ce7de898abefae1c2cf1b8ff16c4f0fc9b0d0e\n"
    },
    {
      "commit": "c824b51331bdd72c1c45ca4e45a0b025d30a09c9",
      "tree": "5077addabcb908ac33a978a2a107d2f4d2253605",
      "parents": [
        "900d7d44633675621e665536742a7a2b40dcc7f0"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Mar 29 20:33:33 2016 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Apr 25 13:21:49 2016 +0100"
      },
      "message": "Take into account the change in classes when analysing profiles\n\nBug: 27894914\n\n(cherry picked from commit e02348caea14a203a2ed7a6c859e1515c6c6778f)\n\nChange-Id: I02834424803a9368374f32507e0b637fbfa5d7a6\n"
    },
    {
      "commit": "6726546bf3fd6bdb96a34197119d210bccda7e01",
      "tree": "a3ef34066efd223c91dd5281932e3dbe88274385",
      "parents": [
        "b9c1b9bdd7689c0e80c64c371581f99e53749e05"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 18 16:23:40 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Apr 22 16:10:41 2016 +0100"
      },
      "message": "Improve ProfileSaver to cache data and do minimal I/O\n\nThis CLs introducing caching to further optimize the I/O performed by\nthe ProfileSaver. The cache stats are also recorded.\n\nResolved classes are captured and cached after 2 seconds but written\nlater during application lifetime.\n\nMethods are also cached and the write got smarter to avoid\nreading/writing them if it\u0027s not needed.\n\nOn non scientific experiments the size of the cache reaches just a few\nhundreds uint16_t values kept in set, so its impact is minimal.\n\nIn terms of how much data we write. In the same non scientific\nexperiments this reduces the total bytes written by at least 2-3x. In\nthe first few minutes of after the boot gmscore writes ~3KB (down from\n9kb) and quicksearchlauncher writes ~20KB (down from 40KB).\n\nBug: 27600652\n\n(cherry picked from commit 85f7bf3bbfa17d65ff77e3e826b5f7aff45838a9)\n\nChange-Id: I6ecb04ce81b281d1c1538060dbbaeeeb08906775\n"
    },
    {
      "commit": "c5dd319c574f67d11a71f1b60ac6c34bfe93b750",
      "tree": "51de8bdd7a891478e6d22a6f53781d53290c2d20",
      "parents": [
        "01c30e8dbc45bdc5d922cef6e5a404be7bed0e8c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 09 16:38:30 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 26 13:07:39 2016 -0800"
      },
      "message": "Add and use loaded class profiling\n\nClass profiling is a way to keep track of which classes are resolved.\nFrom here the compiler can use this information to generate a smaller\napp image.\n\nTODO: Add tests for profile stuff.\n\nBug: 22858531\n\n(cherry picked from commit 8913fc1a27df8cf3b37fd99e94d87f290591328e)\n\nChange-Id: Ifcd09230cbdc266305bc1247e0d31e7920eb353e\n"
    },
    {
      "commit": "de4fb63be26cd561111cad4574cac5e0c2314d11",
      "tree": "bd13d3f3f6820349ce87b3d248c62d831d4b3e51",
      "parents": [
        "6406b521bed1a1cc465edc6be083ce57ba0f524e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 23 16:53:30 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 23 16:53:30 2016 +0000"
      },
      "message": "Fix profman path for the gtest.\n\nChange-Id: Id332c50658b7dc1eb1edf6a58fcbdde4c2887d27\n"
    },
    {
      "commit": "2e2db786b8fbaa4dceb37603a4296b0b2aea4e9e",
      "tree": "7fef29d5fcdb997950fd1a2524ae853b4dcfac3d",
      "parents": [
        "3da74687e42de7d33a8e75df9bd64374e650f75e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 23 12:00:03 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 23 12:00:03 2016 +0000"
      },
      "message": "Revert \"Revert \"Add profman tool: responsible to process profiles\"\"\n\nThis reverts commit 3da74687e42de7d33a8e75df9bd64374e650f75e.\n\nChange-Id: Id005096bd8063c6c602744d4476d5eb7e0d34e90\n"
    },
    {
      "commit": "3da74687e42de7d33a8e75df9bd64374e650f75e",
      "tree": "f3bf62678200380dc672647af1da136c562f60b3",
      "parents": [
        "6caefd983a800a063b219f1d3ed71b1416cecd70"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 22 22:37:52 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 22 22:37:52 2016 +0000"
      },
      "message": "Revert \"Add profman tool: responsible to process profiles\"\n\nNeeds a profile_assistant_test fix.\n\nBug: 26719109\nBug: 26563023\n\nThis reverts commit 6caefd983a800a063b219f1d3ed71b1416cecd70.\n\nChange-Id: Ibdeb7385737dd7846ed861e0a95f083abb9aa974\n"
    },
    {
      "commit": "6caefd983a800a063b219f1d3ed71b1416cecd70",
      "tree": "7fef29d5fcdb997950fd1a2524ae853b4dcfac3d",
      "parents": [
        "c017318a7c5a9142b1fff9f57eb4105b1d397bbd"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 01 12:06:18 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 22 13:55:18 2016 +0000"
      },
      "message": "Add profman tool: responsible to process profiles\n\nThis pulls out profile parsing from dex2oat into a separate tool.\nSome additional refactoring:\n- better return codes\n- dex2oat now accepts only one profile file\n\nThis is the first step towards support secondary dex files and\nextracting profiles out of the code_cache directory.\n\nBug: 26719109\nBug: 26563023\n\n(cherry picked from commit d81c289e58f4ced8ec7674fd377c356669f97227)\n\nChange-Id: I34d408faa318e866e1a23d4d04c369131ee5012b\n"
    }
  ]
}
