)]}'
{
  "log": [
    {
      "commit": "751afc9821625cad83d782394aaa1a344feec8d8",
      "tree": "0f95ef367e450d0bbc8290a3bde97f7b1ebefd84",
      "parents": [
        "0454f3b8aefdf1387468a96e6de60530fcf55f83"
      ],
      "author": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Tue Apr 02 18:23:54 2019 +0100"
      },
      "committer": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Thu Apr 04 17:09:58 2019 +0100"
      },
      "message": "Add getTextClassifier perf test\n\nThis helps us to evaluate the fix.\n\nBUG: 129695635\n\nTest: frameworks/base/apct-tests/perftests/textclassifier/run.sh\n\nChange-Id: I7d2d019faecb3721c044a43e24d86d98a08be64b\n"
    },
    {
      "commit": "117d17b96f8102076564f369b6d8c55ab2d0cdb2",
      "tree": "d0f21f887c6bcf88e71725863784e3e25f22b7d5",
      "parents": [
        "1a07f6411b2e7fd0a17737aea5d963c4022a05fe",
        "57908d9f2eff5b1e86d65d6bc556c90e7757c84a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 03 22:03:51 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 03 22:03:51 2019 +0000"
      },
      "message": "Merge \"MultiUserPerfTest - test restart profile\""
    },
    {
      "commit": "12294a48ad38a3fd3cf138e6955b061a434e7719",
      "tree": "7866705b8ed0a9b489e15b7497ac549f08f0665c",
      "parents": [
        "38d786f0828eb8379a63768d63413786d85e7e84",
        "52b12ac7a13418e69008b7758f4bb40f137bd0dc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 03 21:34:44 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 03 21:34:44 2019 +0000"
      },
      "message": "Merge \"MultiUserPerfTest test switch to pre-existing user\""
    },
    {
      "commit": "ab922b13cdf676dd444279ad095b297f5667bbb6",
      "tree": "2a1a3166434d3ec1aeb269e4b9ce0da552767329",
      "parents": [
        "aa07312d8d8545ed60348ae861b6961530c17ae0",
        "2487d357a1f916c823b664cc07f41dcd61aa14c1"
      ],
      "author": {
        "name": "Misha Wagner",
        "email": "mishaw@google.com",
        "time": "Tue Apr 02 13:19:49 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 02 13:19:49 2019 +0000"
      },
      "message": "Merge \"Add diffing to KernelCpuThreadReader\""
    },
    {
      "commit": "c78069aef7cfee94efe56d2331a74ae94ede6c16",
      "tree": "d4e0ed7afec49ee3bcb7474baf40041693acca96",
      "parents": [
        "3acdae62228f70b5e0913f074bf9726e04d1f5d4"
      ],
      "author": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Mon Apr 01 23:56:55 2019 +0100"
      },
      "committer": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Mon Apr 01 22:59:38 2019 +0000"
      },
      "message": "Fix AndroidTest.xml\n\nTest: Run run.sh\n\nChange-Id: If9f088dccacd30313380bedba4f8731ca6b47477\n"
    },
    {
      "commit": "e5ee70516e5a3abc4110c31f16f0a96f1c3c6249",
      "tree": "98ec0d5ec10e67c6d0c2a2486aa95df35628b96d",
      "parents": [
        "ee10d8bc36dbff7a10200ca047c416539eead994"
      ],
      "author": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Mon Apr 01 20:51:37 2019 +0100"
      },
      "committer": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Mon Apr 01 21:15:57 2019 +0100"
      },
      "message": "Move TextClassifierPerfTest to a separate package\n\nSo, other tests in other package no longer affect us.\nCurrently, TextClassifierPerfTest is not run continuously because of\nfailures in other packages.\n\nBUG: 129695635\n\nTest: Run run.sh\n\nChange-Id: I2253360d98404608193b53c8b34611c2ff1b231e\n"
    },
    {
      "commit": "52b12ac7a13418e69008b7758f4bb40f137bd0dc",
      "tree": "7ac614a36c2b9490eb450c696a4c408b8ca57313",
      "parents": [
        "b0ee8019bd7f55895fb859486d1f9dbbf31b4b0f"
      ],
      "author": {
        "name": "Bookatz",
        "email": "bookatz@google.com",
        "time": "Thu Feb 28 17:29:26 2019 -0800"
      },
      "committer": {
        "name": "Bookatz",
        "email": "bookatz@google.com",
        "time": "Fri Mar 29 10:46:09 2019 -0700"
      },
      "message": "MultiUserPerfTest test switch to pre-existing user\n\nCreates two new MultiUserPerfTests, timing how long it takes to switch\nto a pre-existing user, one for when the user is already-started, and\nthe other for when it is stopped.\n\nBug: 126745587\nTest: make MultiUserPerfTests \u0026\u0026 adb install -r ${ANDROID_PRODUCT_OUT}/data/app/MultiUserPerfTests/MultiUserPerfTests.apk \u0026\u0026 adb shell am instrument -e class android.multiuser.UserLifecycleTests -w com.android.perftests.multiuser/androidx.test.runner.AndroidJUnitRunner\nChange-Id: I734f4971ad992e906a0090f4ef328255ab2a0349\n"
    },
    {
      "commit": "57908d9f2eff5b1e86d65d6bc556c90e7757c84a",
      "tree": "fe8f3022272ba55f3da50ce4cb6738d5bb04e263",
      "parents": [
        "b0ee8019bd7f55895fb859486d1f9dbbf31b4b0f"
      ],
      "author": {
        "name": "Bookatz",
        "email": "bookatz@google.com",
        "time": "Fri Mar 29 10:40:10 2019 -0700"
      },
      "committer": {
        "name": "Bookatz",
        "email": "bookatz@google.com",
        "time": "Fri Mar 29 10:40:10 2019 -0700"
      },
      "message": "MultiUserPerfTest - test restart profile\n\nCreates a profile, starts it, stops it, then restarts it, timing how\nlong the restart takes. This gives an indication of how long it takes to\nstart a previously-initialized profile, and mimics toggling\nsetQuietModeEnabled.\n\nRight now, this process is especially slow due to\nRoleManagerService.onStartUser(), so it is worthwhile tracking this.\n\nBug: 129415917\nTest: atest  android.multiuser.UserLifecycleTests#managedProfileUnlock_stopped\nChange-Id: Ic7f3bdb6fa7daaab53cb23dbf8e8a68e293d23b2\n"
    },
    {
      "commit": "2487d357a1f916c823b664cc07f41dcd61aa14c1",
      "tree": "2f67585db1629a4addf4f06215ef89514747e33d",
      "parents": [
        "3989eb02bc3396a71ca15fe8419697887f53504a"
      ],
      "author": {
        "name": "Misha Wagner",
        "email": "mishaw@google.com",
        "time": "Mon Mar 18 17:30:14 2019 +0000"
      },
      "committer": {
        "name": "Misha Wagner",
        "email": "mishaw@google.com",
        "time": "Wed Mar 27 10:58:42 2019 +0000"
      },
      "message": "Add diffing to KernelCpuThreadReader\n\nWe want to not use WestWorld\u0027s diffing so that we can apply thresholds\non the diffs. This is further explained in the KernelCpuThreadReaderDiff\ndocumentation.\n\nTest: atest KernelCpuThreadReaderDiffTest\nBug: 129387487\n\nChange-Id: I638ae92a28236830444dc80e470114a0e23d79a4\n"
    },
    {
      "commit": "3989eb02bc3396a71ca15fe8419697887f53504a",
      "tree": "0ae31a75363334a1ce05a9ad3fd5e42ff49a255f",
      "parents": [
        "f7a0b28443d8997f19892cc3806e6b7a94150aab"
      ],
      "author": {
        "name": "Misha Wagner",
        "email": "mishaw@google.com",
        "time": "Tue Mar 19 11:05:37 2019 +0000"
      },
      "committer": {
        "name": "Misha Wagner",
        "email": "mishaw@google.com",
        "time": "Wed Mar 20 11:19:21 2019 +0000"
      },
      "message": "Clean up KernelCpuThreadReader\n\nThis includes (as well as nits by IntelliJ):\n- Removing getCurrentProcessCpuUsage, as it was only used in tests\n- Updating class documentation\n- Adding @Presubmit annotations to tests\n- Reformat using google-java-format\n\nTest: atest KernelCpuThreadReaderTest\n\nChange-Id: I710773043b9e9ef40545c20667fe2f79e9915e43\n"
    },
    {
      "commit": "3d61f8927545b95252276c9be45bd5a72e50b903",
      "tree": "1a8c94ab7e9d23500eb8f145aaac6c00d76acb5e",
      "parents": [
        "44261a37107cb79a11fba8bafed9f5ea0da50908",
        "e57475e6c9bf1ba463b51f5214c8d9f1c794070d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 25 19:21:52 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 25 19:21:52 2019 +0000"
      },
      "message": "Merge \"Address API council feedback\""
    },
    {
      "commit": "e57475e6c9bf1ba463b51f5214c8d9f1c794070d",
      "tree": "d7b12f0258d35ae2f880ff76da5c3e73691bd24f",
      "parents": [
        "ab5938c3077371d1770d87316342526e28cadacb"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Feb 20 17:39:52 2019 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Feb 22 14:24:28 2019 -0800"
      },
      "message": "Address API council feedback\n\nBug: 125027187\nBug: 125026102\nBug: 125026678\nBug: 125026234\nBug: 125027586\nBug: 125026476\nBug: 125026103\nBug: 125026237\nBug: 125027248\nBug: 125026475\nBug: 125027487\nTest: RenderNodeTests\nChange-Id: Ic63ea7a3cfe359a7dff0c1b46e534e499f7e928b\n"
    },
    {
      "commit": "c7dc355feb1b9c69de1160ab4133e189ee7811c0",
      "tree": "2307264a21b1e324a61ac86c9ddf3d783998e9ce",
      "parents": [
        "dd6eb81b19e0e528937c3fa1cb84492b7c43bf58",
        "f69fc9c44581d7e474f2ddf55dae6fcce83f1cd5"
      ],
      "author": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Fri Feb 22 18:31:07 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 22 18:31:07 2019 +0000"
      },
      "message": "Merge \"Don\u0027t change the order of test results.\""
    },
    {
      "commit": "4cac1f42f0f4d77b0e6f69a0ccdd1610e5f17695",
      "tree": "2fa9f321d168b7697b9241da6658b5f190e912dc",
      "parents": [
        "d17fca2cb239736b5ed29c2d7ab8f63dc87a57ea",
        "324572e747b2196d5777eb26120a4283bc0ba0d7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 20 16:40:21 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 20 16:40:21 2019 +0000"
      },
      "message": "Merge \"Move TextClassifier.getLocalTextClassifier() API.\""
    },
    {
      "commit": "500db62bfa834b191bc353596528127f69da4c39",
      "tree": "d12bb1aaa116599aacfaefbf998868c7c63f5e75",
      "parents": [
        "5fe2936fcb67bd559fbdefa40b782c2c6eb7ebc7"
      ],
      "author": {
        "name": "Sasha Smundak",
        "email": "asmundak@google.com",
        "time": "Tue Feb 12 09:38:16 2019 -0800"
      },
      "committer": {
        "name": "Sasha Smundak",
        "email": "asmundak@google.com",
        "time": "Tue Feb 19 13:46:51 2019 -0800"
      },
      "message": "Convert Android.mk file to Android.bp\n\nSee build/soong/README.md for more information.\n\nBug: 122332340\nTest: treehugger\nChange-Id: I23d8d5a019155a0f3296f7ab75e9b44b7621f3c8\n"
    },
    {
      "commit": "dc5beb50c828bd3af2033a733ad64586596331c3",
      "tree": "430201af0118d03e37ad3dc055079558afeb9c13",
      "parents": [
        "090779c8a7549d37eec1625ae847054eb5a31210",
        "648d20359ffc42ce50ebf6f772451fb7a8d5ab39"
      ],
      "author": {
        "name": "Misha Wagner",
        "email": "mishaw@google.com",
        "time": "Wed Feb 13 10:31:15 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 13 10:31:15 2019 +0000"
      },
      "message": "Merge \"Add KernelCpuThreadReader minimium CPU usage threshold\""
    },
    {
      "commit": "324572e747b2196d5777eb26120a4283bc0ba0d7",
      "tree": "53742981c528e5291b74d0c32301035a4a5c23c4",
      "parents": [
        "dd9b3b4b3ae1787dee19189c6b908d3bf1f3be68"
      ],
      "author": {
        "name": "Abodunrinwa Toki",
        "email": "toki@google.com",
        "time": "Tue Feb 12 19:01:01 2019 +0000"
      },
      "committer": {
        "name": "Abodunrinwa Toki",
        "email": "toki@google.com",
        "time": "Tue Feb 12 20:56:58 2019 +0000"
      },
      "message": "Move TextClassifier.getLocalTextClassifier() API.\n\nIn the future, we think the TextClassifier is going to run in an\nexternal process. This CL moves the getLocalTextClassifier() API so\nthat we don\u0027t have to guarantee this to apps.\nOEMs implementing TextClassifierServices however will want access to\nthis API so this CL effectively moves the the API from where apps\ntypically look for a TC (we prefer apps to call getTextClassifier()\ninstead) to where TCS implementations are most likely to be accessing\nsuch APIs. The method is also renamed appropriately to what it will be\nlong term (i.e. the default TC implementation rather than as the local\nTC).\n\nBug: 123681286\nTest: atest core/tests/coretests/src/android/view/textclassifier\nTest: atest cts/tests/tests/view/src/android/view/textclassifier/cts\nTest: adb shell am instrument -w -e class android.textclassifier.TextClassifierPerfTest com.android.perftests.core/androidx.test.runner.AndroidJUnitRunner\nChange-Id: I685e2b5263ffddbe301256fc2ed0d6254c3357ed\n"
    },
    {
      "commit": "648d20359ffc42ce50ebf6f772451fb7a8d5ab39",
      "tree": "be6ae5d84f1e1e2c4a6713f630d2c94cbaf3564f",
      "parents": [
        "02cc423fd9eafb910a4a9127e4cb27876b0914c1"
      ],
      "author": {
        "name": "Misha Wagner",
        "email": "mishaw@google.com",
        "time": "Mon Feb 11 10:43:27 2019 +0000"
      },
      "committer": {
        "name": "Misha Wagner",
        "email": "mishaw@google.com",
        "time": "Tue Feb 12 11:05:29 2019 +0000"
      },
      "message": "Add KernelCpuThreadReader minimium CPU usage threshold\n\nConfigurable using KernelCpuThreadReaderSettingsObserver.\n\nTest: atest KernelCpuThreadReaderTest#testReader_filtersLowUsage\nChange-Id: I92bb5fbee6b56bff00c61f359e8281966e2882c1\n"
    },
    {
      "commit": "ca7433e2da35d91610dc9a1ee0933f569e42b8d5",
      "tree": "0dc3db932f73d5a2d793d11912b21034b7d8d589",
      "parents": [
        "8c83a07c367482c4a68be33e02e030a59a1f144f"
      ],
      "author": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Mon Feb 11 17:08:44 2019 +0000"
      },
      "committer": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Mon Feb 11 17:13:40 2019 +0000"
      },
      "message": "Use local textclassifier in perf test\n\nReason:\nWe are more interested in the performance of the textclassifier in\nAOSP, rather than AiAi\n\nTest: adb shell am instrument -w -e class android.textclassifier.TextClassifierPerfTest com.android.perftests.core/androidx.test.runner.AndroidJUnitRunner\n\nChange-Id: I00ccc1c4fb5c5469e029d2f70474ddbab65a5732\n"
    },
    {
      "commit": "f69fc9c44581d7e474f2ddf55dae6fcce83f1cd5",
      "tree": "9f9e6b1915f08183bff9742502781a3e79edbc6c",
      "parents": [
        "0671c44a85bf38db54445a909979382d521318cc"
      ],
      "author": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Mon Feb 11 00:23:29 2019 -0800"
      },
      "committer": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Mon Feb 11 00:23:29 2019 -0800"
      },
      "message": "Don\u0027t change the order of test results.\n\nTest: atest apct-tests/perftests/multiuser/src/android/multiuser/UserLifecycleTests.java\nChange-Id: Ie21030581ae81509eaa5b3ec31d5e6978dcb23d4\n"
    },
    {
      "commit": "3bca79c93272516fe0e4739a926a5ce351c6f991",
      "tree": "2bd3a0693ab6c41ee25f076ba6cb22a8c21d1379",
      "parents": [
        "c62a965e46e1ffa4e808ea53ee85373a8566bdae",
        "4b32c9fbe996d61e874ad38167a736ab5ee5370c"
      ],
      "author": {
        "name": "Misha Wagner",
        "email": "mishaw@google.com",
        "time": "Fri Feb 01 10:44:12 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 01 10:44:12 2019 +0000"
      },
      "message": "Merge \"Add settings for KernelCpuThreadReader\""
    },
    {
      "commit": "4b32c9fbe996d61e874ad38167a736ab5ee5370c",
      "tree": "eedda4d21f2c8d191fe1e37a3b99afec8c5ea496",
      "parents": [
        "4086088aa9e65ef5e4201a0ae44fc98c839de595"
      ],
      "author": {
        "name": "Misha Wagner",
        "email": "mishaw@google.com",
        "time": "Fri Jan 25 15:30:14 2019 +0000"
      },
      "committer": {
        "name": "Misha Wagner",
        "email": "mishaw@google.com",
        "time": "Wed Jan 30 16:24:00 2019 +0000"
      },
      "message": "Add settings for KernelCpuThreadReader\n\nSettings include:\n- Number of buckets\n- UID predicate for which threads to collect data for\n\nTest: to test UID selection: `atest KernelCpuThreadReaderTest`\nTest: to test settings application: `adb shell cmd settings put ...` and\nmanual inspection of `pull-source`\nBug: 123562450\nChange-Id: I9d97dfc1c120fcf1b04dadb6ce24863afeff053c\n"
    },
    {
      "commit": "c7410ea13004da73a534313e9ebda0e3f9718bf3",
      "tree": "e1a45308067ffa8165ef318fc971603988b61a3a",
      "parents": [
        "f5e95eff500a03e52c165130ab5f41623d32fd8b",
        "dcf274b3ce12e8ded982ccfd2ea3c43022ed1bd7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 29 16:18:12 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 29 16:18:12 2019 +0000"
      },
      "message": "Merge \"Fix the test format.\""
    },
    {
      "commit": "dcf274b3ce12e8ded982ccfd2ea3c43022ed1bd7",
      "tree": "332d8ecd705b449d4f3e259ebe2e540eb3504750",
      "parents": [
        "ba759e1332370ace8c12b7186765b9d5df97433c"
      ],
      "author": {
        "name": "gopinath",
        "email": "gelanchezhian@google.com",
        "time": "Mon Jan 28 14:46:55 2019 -0800"
      },
      "committer": {
        "name": "gopinath",
        "email": "gelanchezhian@google.com",
        "time": "Mon Jan 28 14:46:55 2019 -0800"
      },
      "message": "Fix the test format.\n\nRemove \"\u003d\" sign.\n\nChange-Id: If989e3f6d2e9a67cf1ded9e1fd30d017782a5cd6\n"
    },
    {
      "commit": "91daa15eea2c76c11b8e0c7d3972144b4ed4de5f",
      "tree": "4f384fa3c89bb3c1cee7a47e7636fb7206ca455a",
      "parents": [
        "07182c8622947e0407c6cd72fea4f6ab629f4b55"
      ],
      "author": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Thu Jan 24 16:00:28 2019 +0000"
      },
      "committer": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Fri Jan 25 12:07:50 2019 +0000"
      },
      "message": "Rename PERSON_USER_LOCAL and PERSON_USER_REMOTE\n\nTest: atest TextClassificationManagerTest.java\nBug: 123223181\n\nChange-Id: I077d06aabf96d824942b99dd6ab95fe8adc2641f\n"
    },
    {
      "commit": "412796e584d6930c2e97b4cdda8261414aa20205",
      "tree": "b150a823c13161849b108e825060573d8693e3ae",
      "parents": [
        "5a5f0d52c3e17970829dccd04ffe489a4295c9a8"
      ],
      "author": {
        "name": "KOUSHIK PANUGANTI",
        "email": "kpanuganti@google.com",
        "time": "Mon Dec 17 14:16:52 2018 -0800"
      },
      "committer": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Tue Jan 08 11:33:52 2019 +0000"
      },
      "message": "Migrate frameworks/base/apct-tests/perftests/core to androidx.test\n\nSee go/jetpack-test-android-migration\n\nTest: make checkbuild\nChange-Id: I16a302b5ea2b0b18cdac0a407040df641a36fe1b\n"
    },
    {
      "commit": "3b07fcbfc5ebab79297bb197b0021d124e289233",
      "tree": "7ce8d76209c7e3c467b3c45df96fd0cc403a134a",
      "parents": [
        "6af8b02244cc934e10bee951d427783fbb3663d6",
        "936589160e977950213c8af0d423c74abbdf9f36"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 04 02:34:12 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 04 02:34:12 2019 +0000"
      },
      "message": "Merge \"Migrate frameworks/base/apct-tests/perftests/autofill to androidx.test\""
    },
    {
      "commit": "d3cb31d66a1bf50619e5e3cea6701cfc3d24f400",
      "tree": "9a30451bdc5dbdbecbfd5c8fc0ab2f0a93353f4c",
      "parents": [
        "ee00fea76b3685851458183b63d6087a32343ee9",
        "511606f5da1e778ee1fb686e33675b10c7a3f622"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 04 00:28:14 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 04 00:28:14 2019 +0000"
      },
      "message": "Merge \"Migrate frameworks/base/apct-tests/perftests/utils to androidx.test\""
    },
    {
      "commit": "511606f5da1e778ee1fb686e33675b10c7a3f622",
      "tree": "faaaa2943778312e6892fe62c5d9f239f4065c81",
      "parents": [
        "1e65287c50a5c7177564a6ba415acdf55a4a8ada"
      ],
      "author": {
        "name": "KOUSHIK PANUGANTI",
        "email": "kpanuganti@google.com",
        "time": "Mon Dec 17 14:53:34 2018 -0800"
      },
      "committer": {
        "name": "KOUSHIK PANUGANTI",
        "email": "kpanuganti@google.com",
        "time": "Mon Dec 17 14:53:34 2018 -0800"
      },
      "message": "Migrate frameworks/base/apct-tests/perftests/utils to androidx.test\n\nSee go/jetpack-test-android-migration\n\nTest: make checkbuild\nChange-Id: I2fd63c13d298e9651566171837d14cc30d05850e\n"
    },
    {
      "commit": "130f0a5c48564363d61758eeaf876dd4d9f1f52f",
      "tree": "39da856e06bad1dd1937589ab7326ffa1523bca2",
      "parents": [
        "1e65287c50a5c7177564a6ba415acdf55a4a8ada"
      ],
      "author": {
        "name": "KOUSHIK PANUGANTI",
        "email": "kpanuganti@google.com",
        "time": "Mon Dec 17 14:41:06 2018 -0800"
      },
      "committer": {
        "name": "KOUSHIK PANUGANTI",
        "email": "kpanuganti@google.com",
        "time": "Mon Dec 17 14:41:06 2018 -0800"
      },
      "message": "Migrate frameworks/base/apct-tests/perftests/multiuser to androidx.test\n\nSee go/jetpack-test-android-migration\n\nTest: make checkbuild\nChange-Id: I73fc89de69f1eb54896a2dc19cf93b22bc4f049d\n"
    },
    {
      "commit": "936589160e977950213c8af0d423c74abbdf9f36",
      "tree": "99025dbba69d36a97aab03263e7da28f37a70053",
      "parents": [
        "f98c2c41bd4e390756be5d057da165237323da99"
      ],
      "author": {
        "name": "koushik panuganti",
        "email": "kpanuganti@google.com",
        "time": "Mon Dec 17 11:46:51 2018 -0800"
      },
      "committer": {
        "name": "koushik panuganti",
        "email": "kpanuganti@google.com",
        "time": "Mon Dec 17 11:46:51 2018 -0800"
      },
      "message": "Migrate frameworks/base/apct-tests/perftests/autofill to androidx.test\n\nSee go/jetpack-test-android-migration\n\nTest: make checkbuild\nChange-Id: Ia4540aaf2eadedd9c1a9702ae8cfeb120da53e88\n"
    },
    {
      "commit": "c8ccab6840ded90b57094a43a79eef8e04d7d97e",
      "tree": "654829e3e6c5262ee689d022173824f45770f3e4",
      "parents": [
        "267d6ac11e3066dff3c3b664891bae468239ebe8"
      ],
      "author": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Wed Dec 12 18:46:38 2018 +0800"
      },
      "committer": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Thu Dec 13 22:32:37 2018 +0800"
      },
      "message": "Add performance test for suggestConversationActions and detectLanguage\n\nThis is the framework used by other system component like autofill.\nWe will use this to answer system health question.\n\nWe can also monitor the metric in this dashboard once it is submitted.\nhttps://blackbox.googleplex.com/#/custom/fw_other\n\nResult in pixel2 eng build (unit: nano second)\n(We will have more accurate result in the dashboard, we are advised not to run perf test\nin eng build)\nandroid.textclassifier.TextClassifierPerfTest:INSTRUMENTATION_STATUS: detectLanguage[size\u003d0]_mean\u003d15010771\nINSTRUMENTATION_STATUS: detectLanguage[size\u003d0]_median\u003d15203514\nINSTRUMENTATION_STATUS: detectLanguage[size\u003d0]_min\u003d10497747\nINSTRUMENTATION_STATUS: detectLanguage[size\u003d0]_standardDeviation\u003d3061947\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: suggestConversationActions[size\u003d0]_mean\u003d39863316\nINSTRUMENTATION_STATUS: suggestConversationActions[size\u003d0]_median\u003d41535711\nINSTRUMENTATION_STATUS: suggestConversationActions[size\u003d0]_min\u003d35979326\nINSTRUMENTATION_STATUS: suggestConversationActions[size\u003d0]_standardDeviation\u003d3297779\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: detectLanguage[size\u003d10]_mean\u003d14711781\nINSTRUMENTATION_STATUS: detectLanguage[size\u003d10]_median\u003d13608035\nINSTRUMENTATION_STATUS: detectLanguage[size\u003d10]_min\u003d12184472\nINSTRUMENTATION_STATUS: detectLanguage[size\u003d10]_standardDeviation\u003d3144018\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: suggestConversationActions[size\u003d10]_mean\u003d43076381\nINSTRUMENTATION_STATUS: suggestConversationActions[size\u003d10]_median\u003d43618067\nINSTRUMENTATION_STATUS: suggestConversationActions[size\u003d10]_min\u003d38747603\nINSTRUMENTATION_STATUS: suggestConversationActions[size\u003d10]_standardDeviation\u003d3502977\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: detectLanguage[size\u003d100]_mean\u003d20646733\nINSTRUMENTATION_STATUS: detectLanguage[size\u003d100]_median\u003d20766674\nINSTRUMENTATION_STATUS: detectLanguage[size\u003d100]_min\u003d19184218\nINSTRUMENTATION_STATUS: detectLanguage[size\u003d100]_standardDeviation\u003d892559\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: suggestConversationActions[size\u003d100]_mean\u003d42126088\nINSTRUMENTATION_STATUS: suggestConversationActions[size\u003d100]_median\u003d43709436\nINSTRUMENTATION_STATUS: suggestConversationActions[size\u003d100]_min\u003d36636031\nINSTRUMENTATION_STATUS: suggestConversationActions[size\u003d100]_standardDeviation\u003d4863678\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: detectLanguage[size\u003d1,000]_mean\u003d21721753\nINSTRUMENTATION_STATUS: detectLanguage[size\u003d1,000]_median\u003d22690096\nINSTRUMENTATION_STATUS: detectLanguage[size\u003d1,000]_min\u003d16252464\nINSTRUMENTATION_STATUS: detectLanguage[size\u003d1,000]_standardDeviation\u003d3445673\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: suggestConversationActions[size\u003d1,000]_mean\u003d45968389\nINSTRUMENTATION_STATUS: suggestConversationActions[size\u003d1,000]_median\u003d47465009\nINSTRUMENTATION_STATUS: suggestConversationActions[size\u003d1,000]_min\u003d39389483\nINSTRUMENTATION_STATUS: suggestConversationActions[size\u003d1,000]_standardDeviation\u003d3820288\nINSTRUMENTATION_STATUS_CODE: -1\n\nTest: Run commands below\nmmma -j ./frameworks/base/apct-tests/perftests/core/;\nadb install -r $OUT/data/app/CorePerfTests/CorePerfTests.apk;\nadb shell am instrument -w -e class android.textclassifier.TextClassifierPerfTest com.android.perftests.core/android.support.test.runner.AndroidJUnitRunner\nadb shell cmd package compile -m speed -f com.android.perftests.core;\n\nChange-Id: Ia2c746f48ed018269a230422a695caca05844a12\n"
    },
    {
      "commit": "76c231d0d836b945e04b7c7cb999583f6f37ba38",
      "tree": "279f2c4645a010c45f562ca99bc951f2850c79ec",
      "parents": [
        "0e4d61ea1387f0d274edf99ac475d79444b29219"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Wed Dec 05 12:52:08 2018 +0000"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Tue Dec 11 15:43:19 2018 +0000"
      },
      "message": "Sets ThreadLocalWorkSource to authorized work source.\n\nTest: atest binderLibTest BinderWorkSourceTest BinderCallsStatsServiceTest\nChange-Id: I4995c35eed87154312e5e560716d66b3fc2ae221\n"
    },
    {
      "commit": "1debe9a3053d1ca9b1d6aa2935ef347fdaf6db7b",
      "tree": "69b30e8df9b3b241695520406410b709ec446368",
      "parents": [
        "4445345f201844299ed82e23e6a0402c07ba5119"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Nov 16 09:05:14 2018 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Nov 16 09:10:00 2018 -0800"
      },
      "message": "Add test case for different text direction.\n\nBug: 113635044\nTest: StaticLayoutPerfTest\nChange-Id: I74f42bfc25aff25bfc1783ad0977b92526c87ef6\n"
    },
    {
      "commit": "d39ded73768266500f222f5a47eda78c122ca5bd",
      "tree": "fdddd54453a7c69f5a0ed542e566dd00cbbda4a3",
      "parents": [
        "25eb63ac4aeb767eaab3d7462264e959b78d8736"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Nov 09 17:03:37 2018 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Nov 09 17:03:37 2018 -0800"
      },
      "message": "Fix TextViewPRecomputedTextPerfTest\n\nBug: N/A\nTest: manually\nChange-Id: I22c135b246ce288f1729b1622e4307d68af6b61a\n"
    },
    {
      "commit": "53de12ef0d25b6b981daac54bc2664a6fe6c5917",
      "tree": "88f3483e52f53bc6beb58df280d79af00fea411b",
      "parents": [
        "09698951a9a251e3a7692a455bc9dc8b8a1e25d0",
        "65b5ee346d94cdc3150f6226910779f01c61a98b"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Nov 02 22:28:48 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 02 22:28:48 2018 +0000"
      },
      "message": "Merge \"Slight improvements to ArraySet.\""
    },
    {
      "commit": "65b5ee346d94cdc3150f6226910779f01c61a98b",
      "tree": "7c0143d868e682feb6e0fe2a53a2b408c451ef79",
      "parents": [
        "9b882d88ee900feb056c25f332966c0d6088cc06"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Wed Oct 24 17:55:34 2018 -0700"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Thu Nov 01 17:39:35 2018 -0700"
      },
      "message": "Slight improvements to ArraySet.\n\n1. There are cases where valueAt could return null even though the given\nindex was out of bounds. I\u0027ve added a check for that in the code.\n2. The default implementation of Collection.removeIf() uses the\niterator(). This change avoids that since the iterator is an inefficient\nway to access the array contents.\n\nBenchmark tests. Note that these times are in nanoseconds:\n\nBefore:\n\nINSTRUMENTATION_STATUS: removeIf_Small_Base_mean\u003d163679\nINSTRUMENTATION_STATUS: removeIf_Small_Base_median\u003d158215\nINSTRUMENTATION_STATUS: removeIf_Small_Base_min\u003d129564\nINSTRUMENTATION_STATUS: removeIf_Small_Base_standardDeviation\u003d24779\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: valueAt_OutOfBounds_Negative_mean\u003d5645195\nINSTRUMENTATION_STATUS: valueAt_OutOfBounds_Negative_median\u003d5584964\nINSTRUMENTATION_STATUS: valueAt_OutOfBounds_Negative_min\u003d5448560\nINSTRUMENTATION_STATUS: valueAt_OutOfBounds_Negative_standardDeviation\u003d206915\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: removeIf_Large_RemoveHalf_mean\u003d1316514\nINSTRUMENTATION_STATUS: removeIf_Large_RemoveHalf_median\u003d1282442\nINSTRUMENTATION_STATUS: removeIf_Large_RemoveHalf_min\u003d1216533\nINSTRUMENTATION_STATUS: removeIf_Large_RemoveHalf_standardDeviation\u003d109087\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: removeIf_Large_Base_mean\u003d571712\nINSTRUMENTATION_STATUS: removeIf_Large_Base_median\u003d566500\nINSTRUMENTATION_STATUS: removeIf_Large_Base_min\u003d535726\nINSTRUMENTATION_STATUS: removeIf_Large_Base_standardDeviation\u003d26374\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: valueAt_OutOfBounds_EdgeCase_mean\u003d946\nINSTRUMENTATION_STATUS: valueAt_OutOfBounds_EdgeCase_median\u003d896\nINSTRUMENTATION_STATUS: valueAt_OutOfBounds_EdgeCase_min\u003d841\nINSTRUMENTATION_STATUS: valueAt_OutOfBounds_EdgeCase_standardDeviation\u003d106\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: removeIf_Large_RemoveAll_mean\u003d2196954\nINSTRUMENTATION_STATUS: removeIf_Large_RemoveAll_median\u003d2163910\nINSTRUMENTATION_STATUS: removeIf_Large_RemoveAll_min\u003d2136283\nINSTRUMENTATION_STATUS: removeIf_Large_RemoveAll_standardDeviation\u003d91149\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: removeIf_Small_RemoveHalf_mean\u003d356644\nINSTRUMENTATION_STATUS: removeIf_Small_RemoveHalf_median\u003d350376\nINSTRUMENTATION_STATUS: removeIf_Small_RemoveHalf_min\u003d337067\nINSTRUMENTATION_STATUS: removeIf_Small_RemoveHalf_standardDeviation\u003d17354\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: removeIf_Large_RemoveNothing_mean\u003d1044645\nINSTRUMENTATION_STATUS: removeIf_Large_RemoveNothing_median\u003d1040981\nINSTRUMENTATION_STATUS: removeIf_Large_RemoveNothing_min\u003d1010144\nINSTRUMENTATION_STATUS: removeIf_Large_RemoveNothing_standardDeviation\u003d35016\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: removeIf_Small_RemoveAll_mean\u003d507561\nINSTRUMENTATION_STATUS: removeIf_Small_RemoveAll_median\u003d503419\nINSTRUMENTATION_STATUS: removeIf_Small_RemoveAll_min\u003d471564\nINSTRUMENTATION_STATUS: removeIf_Small_RemoveAll_standardDeviation\u003d33141\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: removeIf_Small_RemoveNothing_mean\u003d300889\nINSTRUMENTATION_STATUS: removeIf_Small_RemoveNothing_median\u003d295486\nINSTRUMENTATION_STATUS: removeIf_Small_RemoveNothing_min\u003d282948\nINSTRUMENTATION_STATUS: removeIf_Small_RemoveNothing_standardDeviation\u003d19869\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: valueAt_InBounds_mean\u003d644\nINSTRUMENTATION_STATUS: valueAt_InBounds_median\u003d584\nINSTRUMENTATION_STATUS: valueAt_InBounds_min\u003d528\nINSTRUMENTATION_STATUS: valueAt_InBounds_standardDeviation\u003d141\nINSTRUMENTATION_STATUS_CODE: -1\n\nAfter:\n\nINSTRUMENTATION_STATUS: removeIf_Small_Base_mean\u003d143926\nINSTRUMENTATION_STATUS: removeIf_Small_Base_median\u003d145985\nINSTRUMENTATION_STATUS: removeIf_Small_Base_min\u003d125700\nINSTRUMENTATION_STATUS: removeIf_Small_Base_standardDeviation\u003d11112\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: valueAt_OutOfBounds_Negative_mean\u003d5173581\nINSTRUMENTATION_STATUS: valueAt_OutOfBounds_Negative_median\u003d5168995\nINSTRUMENTATION_STATUS: valueAt_OutOfBounds_Negative_min\u003d5108405\nINSTRUMENTATION_STATUS: valueAt_OutOfBounds_Negative_standardDeviation\u003d45739\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: removeIf_Large_RemoveHalf_mean\u003d695812\nINSTRUMENTATION_STATUS: removeIf_Large_RemoveHalf_median\u003d690070\nINSTRUMENTATION_STATUS: removeIf_Large_RemoveHalf_min\u003d679793\nINSTRUMENTATION_STATUS: removeIf_Large_RemoveHalf_standardDeviation\u003d17959\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: removeIf_Large_Base_mean\u003d591815\nINSTRUMENTATION_STATUS: removeIf_Large_Base_median\u003d588499\nINSTRUMENTATION_STATUS: removeIf_Large_Base_min\u003d573707\nINSTRUMENTATION_STATUS: removeIf_Large_Base_standardDeviation\u003d14348\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: valueAt_OutOfBounds_EdgeCase_mean\u003d4010666\nINSTRUMENTATION_STATUS: valueAt_OutOfBounds_EdgeCase_median\u003d4017245\nINSTRUMENTATION_STATUS: valueAt_OutOfBounds_EdgeCase_min\u003d3970170\nINSTRUMENTATION_STATUS: valueAt_OutOfBounds_EdgeCase_standardDeviation\u003d28577\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: removeIf_Large_RemoveAll_mean\u003d734297\nINSTRUMENTATION_STATUS: removeIf_Large_RemoveAll_median\u003d732576\nINSTRUMENTATION_STATUS: removeIf_Large_RemoveAll_min\u003d720065\nINSTRUMENTATION_STATUS: removeIf_Large_RemoveAll_standardDeviation\u003d14906\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: removeIf_Small_RemoveHalf_mean\u003d195026\nINSTRUMENTATION_STATUS: removeIf_Small_RemoveHalf_median\u003d194430\nINSTRUMENTATION_STATUS: removeIf_Small_RemoveHalf_min\u003d190400\nINSTRUMENTATION_STATUS: removeIf_Small_RemoveHalf_standardDeviation\u003d4012\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: removeIf_Large_RemoveNothing_mean\u003d772914\nINSTRUMENTATION_STATUS: removeIf_Large_RemoveNothing_median\u003d785834\nINSTRUMENTATION_STATUS: removeIf_Large_RemoveNothing_min\u003d737947\nINSTRUMENTATION_STATUS: removeIf_Large_RemoveNothing_standardDeviation\u003d23808\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: removeIf_Small_RemoveAll_mean\u003d194325\nINSTRUMENTATION_STATUS: removeIf_Small_RemoveAll_median\u003d196492\nINSTRUMENTATION_STATUS: removeIf_Small_RemoveAll_min\u003d186998\nINSTRUMENTATION_STATUS: removeIf_Small_RemoveAll_standardDeviation\u003d5091\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: removeIf_Small_RemoveNothing_mean\u003d187122\nINSTRUMENTATION_STATUS: removeIf_Small_RemoveNothing_median\u003d187292\nINSTRUMENTATION_STATUS: removeIf_Small_RemoveNothing_min\u003d182272\nINSTRUMENTATION_STATUS: removeIf_Small_RemoveNothing_standardDeviation\u003d4902\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: valueAt_InBounds_mean\u003d918\nINSTRUMENTATION_STATUS: valueAt_InBounds_median\u003d919\nINSTRUMENTATION_STATUS: valueAt_InBounds_min\u003d801\nINSTRUMENTATION_STATUS: valueAt_InBounds_standardDeviation\u003d80\nINSTRUMENTATION_STATUS_CODE: -1\n\nPerf test command:\nmmma -j ./frameworks/base/apct-tests/perftests/core/;\nadb install -r $OUT/data/app/CorePerfTests/CorePerfTests.apk;\nadb shell cmd package compile -m speed -f com.android.perftests.core;\nadb shell am instrument -w -e class android.util.ArraySetPerfTest com.android.perftests.core/android.support.test.runner.AndroidJUnitRunner\n\nBug: 118339123\nBug: 117846754\nTest: atest android.util.cts.ArraySetTest\nand benchmark tests (see above)\nChange-Id: Ic4b10fd2bbc7a745ca4e4029ca4829847812fabe\n"
    },
    {
      "commit": "3875001f5988958d0dbac1ad94f768a3eef8898d",
      "tree": "57568fdd60bee09af047de5e4af8f8f3c0c20c24",
      "parents": [
        "6331237ae7f5a11f072031a4e82f83b54fdbd86d",
        "f401c7e8f5c9f49f6d384b021b9f0df87f48211b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 30 23:57:23 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 30 23:57:23 2018 +0000"
      },
      "message": "Merge \"Add missing endRecording calls\""
    },
    {
      "commit": "f401c7e8f5c9f49f6d384b021b9f0df87f48211b",
      "tree": "eb89bc6401636aa2ecdb30b8d0c655e775834a88",
      "parents": [
        "367d14a1b5172efb2e60e20fc8daf708603aaeda"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Oct 30 10:50:41 2018 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Oct 30 10:50:41 2018 -0700"
      },
      "message": "Add missing endRecording calls\n\nStaticLayoutPerfTest was previously leaking\ndisplay lists. RenderNode now notices and yells\nabout that, exposing this bug\n\nChange-Id: If85c85211a115a4af09edf2a215415fd0d2d0b4b\nFixes: 118650198\nTest: this\n"
    },
    {
      "commit": "566903ab47c684c0b955fe446ab4dbf5dfaf1a79",
      "tree": "955a66b6c9a84e0186d8858aa7b325aec5a0be49",
      "parents": [
        "78ecd34d29d7bb9e7e07be1fbbcfda3ff06ff896"
      ],
      "author": {
        "name": "Misha Wagner",
        "email": "mishaw@google.com",
        "time": "Tue Oct 02 10:50:12 2018 +0100"
      },
      "committer": {
        "name": "Misha Wagner",
        "email": "mishaw@google.com",
        "time": "Tue Oct 30 10:48:27 2018 +0000"
      },
      "message": "Add class to read per-thread CPU usage from proc filesystem\n\nReads all thread CPU usage for the current process. This traverses\n\"/proc/self/task/*/time_in_state\" to gather the thread ID and CPU usage\nof each child thread. Process name, thread name, and UID are also read from\n\"/proc\" for interpretable data.\n\nBug: 111534779\nTest: Unit test in CpuThreadProcReaderTest\n\nChange-Id: I6c71dde1dfcc9bbb87d95baf0886f9da7a782299\n"
    },
    {
      "commit": "815aa66d3cb21d4bcb84688a2b180a22e5efe4c1",
      "tree": "118752a3b74a45b1cd93c2ec3d92d8cda990df43",
      "parents": [
        "abc7c746667601500b9b65d1e59f39859da393c5",
        "c7ddcf390ffdc71e48ba402a7cc451f4a2a0f62e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Oct 27 00:24:59 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Oct 27 00:24:59 2018 +0000"
      },
      "message": "Merge \"Update some docs \u0026 tweak some method names\""
    },
    {
      "commit": "c7ddcf390ffdc71e48ba402a7cc451f4a2a0f62e",
      "tree": "34eef9e215c1b4edace2bcb59665d6eea7160378",
      "parents": [
        "bef47d02d5ccf0238173027e6830b3f1bf05f0df"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Oct 25 13:56:17 2018 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Oct 26 13:57:12 2018 -0700"
      },
      "message": "Update some docs \u0026 tweak some method names\n\nTest: builds\nChange-Id: Id0e5cf6fdb3a391136a1d314498f75e0b954ceeb\n"
    },
    {
      "commit": "f307adc83eaa33a9fdf5e58f4134c4ff3a500deb",
      "tree": "26e6b85c0b46462f742c8236b8015ad3fd15191c",
      "parents": [
        "ffe3226069984e6c8e3f7bf08941d74c2afd3fdc"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Oct 19 19:10:02 2018 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Oct 26 10:31:33 2018 -0700"
      },
      "message": "Do not pass context to minikin in case of Canvas.drawText\n\nCanvas.drawText don\u0027t use context info, just draw the given slice of\ntext.\n\nBy this change the performance for the long text gets back.\n\nandroid.text.CanvasDrawTextTest\n  drawText_LongText_SmallWindow : 94,526 us -\u003e 11,268 us\n\nBug: 111638688\nTest: atest CanvasDrawTextTest\nChange-Id: I69f8cbf4ff361d213f5d041148dbcc41ebd16c84\n"
    },
    {
      "commit": "8a3e20a76c15aa0b05d7014929be40128f4f8c4e",
      "tree": "a64458045720bd715b4ba653ac2d81bdbacf1329",
      "parents": [
        "e367c38d5ce242dd2c68f4136d981fd7c427bb47"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Thu Oct 25 13:17:51 2018 +0100"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Thu Oct 25 16:46:59 2018 +0100"
      },
      "message": "Update BinderCallsStats perf tests to use a more realistic workload.\n\nTest: this is a test\nChange-Id: I6dc7151c3df2a1e488db7d1b703ca29049b2e01a\n"
    },
    {
      "commit": "8884cfc13ef7a8848a41094e4452c7a72a62c908",
      "tree": "a97e06d08e4f27852457a5ba7c046fc2dcb1f207",
      "parents": [
        "51d48e09a5140c697d2af072c18f6e3cd89be54a",
        "32f140aa6764ebc71b549e57479a42fc3daefc8a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Oct 23 20:02:00 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 23 20:02:00 2018 +0000"
      },
      "message": "Merge \"Rename \u0026 package shuffle\""
    },
    {
      "commit": "e2693cb9cae5cbb045e7aafc49755f71b3bc1ecf",
      "tree": "d0c53c0f19d5c0e7f3f016cbdbca389d403a213e",
      "parents": [
        "a4b1fe65470ea4c015207fa8b2016d95603e5931"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Mon Sep 24 11:11:49 2018 +0100"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Mon Oct 08 13:52:46 2018 +0100"
      },
      "message": "Perf test to measure various mechanisms to track CPU.\n\nChange-Id: I84cac933c62b03421632a7321a40526d9d3884cf\nTest: this is a test\n"
    },
    {
      "commit": "32f140aa6764ebc71b549e57479a42fc3daefc8a",
      "tree": "83fcf0c85b8ee80d70afc48b86151621f98dc296",
      "parents": [
        "b577f20c23093ff263adc30083928c1d70266fd3"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Oct 04 15:08:24 2018 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Oct 04 16:18:12 2018 -0700"
      },
      "message": "Rename \u0026 package shuffle\n\nRename DisplayListCanvas -\u003e RecordingCanvas\nMove RecordingCanvas to android.graphics\nMove RenderNode to android.graphics\n\nBug: 112709971\nTest: make \u0026 boot\nChange-Id: Iddeb6a89f8923ea81a1f37bbee4e9b1db8ede238\n"
    },
    {
      "commit": "1003f75bc473834059acdb507a2d89f433130704",
      "tree": "4d8b05bbab3ad11e7a5973895d6832b1298d6eda",
      "parents": [
        "c80c81a516930a61a516291f0ac1d6c9da2854fa"
      ],
      "author": {
        "name": "Marcin Oczeretko",
        "email": "marcinoc@google.com",
        "time": "Mon Sep 03 14:15:57 2018 +0100"
      },
      "committer": {
        "name": "Marcin Oczeretko",
        "email": "marcinoc@google.com",
        "time": "Thu Sep 06 10:55:03 2018 +0100"
      },
      "message": "Add perf tests for LooperStats\n\nTest: n/a\nChange-Id: I97e290398ca67d3fda0ffeae723c2cb2d0bc10f3\n"
    },
    {
      "commit": "c80c81a516930a61a516291f0ac1d6c9da2854fa",
      "tree": "55d9034c780e00932b5b40edd61e7f6e1142b143",
      "parents": [
        "3680ae6276850d8750170b6364bd5162ecebff2e"
      ],
      "author": {
        "name": "Marcin Oczeretko",
        "email": "marcinoc@google.com",
        "time": "Thu Aug 30 20:15:52 2018 +0100"
      },
      "committer": {
        "name": "Marcin Oczeretko",
        "email": "marcinoc@google.com",
        "time": "Thu Sep 06 10:54:55 2018 +0100"
      },
      "message": "Extract CachedDeviceState from BinderCallsStats\n\nAdd a service that tracks the device state properties which are\ninteresting to System Server telemetry services. Allows the services to\nshare this code and have consistent state information.\n\nTest: Unit tests and manually tested\nChange-Id: Ia5c78c45a55414a0c5c46202db2a37283b50a703\n"
    },
    {
      "commit": "64ec5b84b996370dbe1c0893dc124267d2ef5edd",
      "tree": "f0fe2ac388e157055622d749a447bbb682f06ca6",
      "parents": [
        "d5796dd4f1cce3860241ab179e0bd07fbaf19864"
      ],
      "author": {
        "name": "Aurimas Liutikas",
        "email": "aurimas@google.com",
        "time": "Thu Aug 23 15:09:04 2018 -0700"
      },
      "committer": {
        "name": "Aurimas Liutikas",
        "email": "aurimas@google.com",
        "time": "Thu Aug 23 15:10:27 2018 -0700"
      },
      "message": "Add a simple benchmark for getting view attributes from Theme_Material.\n\nTest: atest CorePerfTests:ResourcesThemePerfTest\nChange-Id: I228273c8b83ebfee73c478f72ceec42d3f81a53b\n"
    },
    {
      "commit": "3f26befd102ed4016bde33c69c99845b9e2dddaf",
      "tree": "646d5c939fc7112d327c49d80d0bd9c416c431c3",
      "parents": [
        "3066d1eb51b00144ba5468c22d15ad34e729e572"
      ],
      "author": {
        "name": "Aurimas Liutikas",
        "email": "aurimas@google.com",
        "time": "Fri Aug 03 14:21:56 2018 -0700"
      },
      "committer": {
        "name": "Aurimas Liutikas",
        "email": "aurimas@google.com",
        "time": "Fri Aug 03 14:37:27 2018 -0700"
      },
      "message": "Add a basic ResourcePerfTest.\n\nMoving ResourcesBenchmark.java to the proper android.perftests infrastructure.\n\nTest: ran the benchmark locally.\nChange-Id: Ia981274e1e3c167a2a8900498fc40b7a03508a74\n"
    },
    {
      "commit": "86714d1347ca8d7df265a1f9f3e441ee951d1fca",
      "tree": "851c7b691b8efd7e1f01bf32b02334c6f97bdf96",
      "parents": [
        "024059cfbed106288a0587db7f7d8a87122e12c9"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Wed Aug 01 15:05:36 2018 +0100"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Wed Aug 01 21:03:59 2018 +0100"
      },
      "message": "Add support for battery/screen state changes.\n\nOnly collect data when the device is charging to be consistent with what\nbattery stats is doing.\n\nAdd a screen interactive dimension to have more context to analysis the\nbinder calls data.\n\nTest: unit test\nChange-Id: Id31c53ae315d905e5d8e67918f64780f34ff5d72\n"
    },
    {
      "commit": "b80d30d88772c7b662b3a7b4be979d111a9cdbf1",
      "tree": "2adcedf58b8c364661c0956553737a0cf26911a2",
      "parents": [
        "f3a5834bb21db94526a415790fae0ae427315284"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Mon Jul 30 23:51:02 2018 +0100"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Tue Jul 31 19:56:40 2018 +0000"
      },
      "message": "Improve the performance tests.\n\nThe original tests would only run 5 iterations per test.\n\nTest: unit test\nChange-Id: I221129b44e81d4b8dc7151185104af8515a04b29\n"
    },
    {
      "commit": "eac5c5a189a940ed454e78c8e5f94626c4fdf826",
      "tree": "01342291f394186ebe75a152d6bf1206052edd9f",
      "parents": [
        "11eedb6379fdf81587f43c9d5c077231340841d7"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Mon Jul 30 17:44:45 2018 +0100"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Tue Jul 31 09:43:28 2018 +0000"
      },
      "message": "Add perf tests for binder calls to measure sampling performance.\n\nTest: should I test my test?\nChange-Id: Ia96e33966567ffd32c9c50a0d88b82bf4abb21b8\n"
    },
    {
      "commit": "289ba40237270ff1036a85fa7c2b7e164dc15225",
      "tree": "78d94c8d3561c2649f6e397e0892845573d2461b",
      "parents": [
        "0b6543bb0fde0b9e3662795ccac164fe790a6ad0"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Tue Jul 24 18:50:13 2018 +0100"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Wed Jul 25 21:20:59 2018 +0000"
      },
      "message": "Adds an Observer interface to observes binder API calls.\n\nThis is the first step to move BinderCallsStats implementation to the\nserver package in order to have an implementation more specific to the\nsystem server (tracking charger on/off).\n\nRemoves the volatile keywords in BinderCallsStats.\n\nAlso exposes a clean API to StatsCompanionService instead of\nBinderCallsStats directly.\n\nTest: unit test\nChange-Id: Ied98c555acc8489420104098561b4608346509b5\n"
    },
    {
      "commit": "2c13c6f37b0c5375650e84ec24c79960809f5b6d",
      "tree": "d4aa73d4cf4142c2d01cd401c9a041ee504d02df",
      "parents": [
        "2e8c7670b12ce7075bcc34c1502d268a71f99a0d"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Mon Jul 16 16:55:58 2018 +0100"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Mon Jul 23 17:39:22 2018 +0100"
      },
      "message": "Binder calls stats - random sampling.\n\nChange the sampling method to be random. The previous mechanism recorded\none call for each key (uid/API name) and every X calls for each key:\n- This is biased and will make it to interpret the data from\nwestworld.  It was especially unfair for apps using many different APIs\nsince the first call to each API was always recorded.\n- It uses more memory since we will keep track of all the long tail\n\nSimplify/unify the way we keep track of sampled calls.\n\nDo not estimate the CPU usage of non-recorded calls\n    long samplesCount \u003d cs.callCount / mPeriodicSamplingInterval + 1;\n    duration \u003d cs.cpuTimeMicros / samplesCount;\nIt biases the results, let\u0027s use an example with 3 calls: 1ms, 3ms, 5ms\nwith an sampling interval of 2. With the previous algorithm we would get an\naverage per call of (1+1+3+2+5)/5\u003d2.4ms. With the new one (1+3+5)/3\u003d3ms.\n\nTest: unit tests\nChange-Id: I1dd7eb3c6c631b86a53485bccbfa397882cccc92\n"
    },
    {
      "commit": "301cda906f1f95f530ada91592e71bdc0cecbfe6",
      "tree": "f023f2a8546e120a68db494aa3c2ef30495e7ec0",
      "parents": [
        "3e2d62bd86e91f3dc62a8c323b84c4b90bf1d79e"
      ],
      "author": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Sun Jul 22 12:52:15 2018 -0700"
      },
      "committer": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Sun Jul 22 12:52:15 2018 -0700"
      },
      "message": "Disable hyphen for TextView perf test\n\nTest: atest  CorePerfTests:TextViewSetTextMeasurePerfTest\nBug: 78350836\nChange-Id: I83ed7dc29180a010f67e0dc181e1e2e35c25e849\n"
    },
    {
      "commit": "d5a9dc06be523d3414a8a3103304357228e53072",
      "tree": "ac8de24ec11f6f23517f6907e2fd01325c831f40",
      "parents": [
        "71fa53f8a548993d30d91343caee0e6269e8c0c5"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jul 16 10:42:35 2018 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Jul 17 14:35:01 2018 +0000"
      },
      "message": "Expose async \u0026 counter publicly\n\nAlso add some go-faster to the JNI\n\nBefore:\nandroid.os.TracePerfTest:INSTRUMENTATION_STATUS: enabled_mean\u003d13\nINSTRUMENTATION_STATUS: enabled_median\u003d13\nINSTRUMENTATION_STATUS: enabled_min\u003d13\nINSTRUMENTATION_STATUS: enabled_standardDeviation\u003d0\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: beginEndSection_mean\u003d3849\nINSTRUMENTATION_STATUS: beginEndSection_median\u003d3850\nINSTRUMENTATION_STATUS: beginEndSection_min\u003d3829\nINSTRUMENTATION_STATUS: beginEndSection_standardDeviation\u003d14\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: counter_mean\u003d1836\nINSTRUMENTATION_STATUS: counter_median\u003d1837\nINSTRUMENTATION_STATUS: counter_min\u003d1832\nINSTRUMENTATION_STATUS: counter_standardDeviation\u003d2\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: asyncBeginEnd_mean\u003d4992\nINSTRUMENTATION_STATUS: asyncBeginEnd_median\u003d4988\nINSTRUMENTATION_STATUS: asyncBeginEnd_min\u003d4964\nINSTRUMENTATION_STATUS: asyncBeginEnd_standardDeviation\u003d21\nINSTRUMENTATION_STATUS_CODE: -1\n\nAfter:\nandroid.os.TracePerfTest:INSTRUMENTATION_STATUS: enabled_mean\u003d13\nINSTRUMENTATION_STATUS: enabled_median\u003d13\nINSTRUMENTATION_STATUS: enabled_min\u003d13\nINSTRUMENTATION_STATUS: enabled_standardDeviation\u003d0\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: beginEndSection_mean\u003d2974\nINSTRUMENTATION_STATUS: beginEndSection_median\u003d2971\nINSTRUMENTATION_STATUS: beginEndSection_min\u003d2958\nINSTRUMENTATION_STATUS: beginEndSection_standardDeviation\u003d15\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: counter_mean\u003d1737\nINSTRUMENTATION_STATUS: counter_median\u003d1739\nINSTRUMENTATION_STATUS: counter_min\u003d1732\nINSTRUMENTATION_STATUS: counter_standardDeviation\u003d3\nINSTRUMENTATION_STATUS_CODE: -1\n.INSTRUMENTATION_STATUS: asyncBeginEnd_mean\u003d3677\nINSTRUMENTATION_STATUS: asyncBeginEnd_median\u003d3679\nINSTRUMENTATION_STATUS: asyncBeginEnd_min\u003d3663\nINSTRUMENTATION_STATUS: asyncBeginEnd_standardDeviation\u003d11\nINSTRUMENTATION_STATUS_CODE: -1\n\nTest: builds, benchmarks, verified tracing still works\nBug: 111503982\nChange-Id: I71cb026d034bf9b9f97427d10d5ff9ce3d103561\n"
    },
    {
      "commit": "09206cd86aede308ca95676b14c92bb8aab08c76",
      "tree": "0cda3da8791d35527f97e04e3d0c33a1070075bc",
      "parents": [
        "5fd43b5a88b5e5b7c962e2a9eb0f24c17e8c162a",
        "099554e2abc31236e317654a1a08b6467d04b203"
      ],
      "author": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Wed Jul 11 01:11:23 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 11 01:11:23 2018 +0000"
      },
      "message": "Merge \"Remove equal sign and comma from some text perf tests\""
    },
    {
      "commit": "099554e2abc31236e317654a1a08b6467d04b203",
      "tree": "3e2a1e2ab701e7d521e27248b4a17938bb797427",
      "parents": [
        "ce77407144346c6fad679a4297910eea07d0d601"
      ],
      "author": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Tue Jul 10 16:26:07 2018 -0700"
      },
      "committer": {
        "name": "Siyamed Sinir",
        "email": "siyamed@google.com",
        "time": "Tue Jul 10 16:26:07 2018 -0700"
      },
      "message": "Remove equal sign and comma from some text perf tests\n\nTest: atest android.text.BoringLayoutCreateDrawPerfTest\nTest: android.text.BoringLayoutIsBoringPerfTest\nTest: android.text.StaticLayoutCreateDrawPerfTest\nTest: android.text.TextViewSetTextMeasurePerfTest\nTest: android.text.PaintMeasureDrawPerfTest\n\nBug: 111319857\nChange-Id: Idb9f24cef0c829e0d7d239554463d92fe8093004\n"
    },
    {
      "commit": "1d7f615eec2076b76f5e7582204df00edd15d941",
      "tree": "7df93e2c298d7052db63fcac85f8a0eb69c81b10",
      "parents": [
        "beac1471aab97797a66542e9fd22e5cfc5447c02"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Tue Jul 03 13:57:58 2018 +0100"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Wed Jul 04 13:36:46 2018 +0100"
      },
      "message": "Add experiment flag to control binder call stats.\n\nFor instance, to enabled detailed tracking locally.\nadb shell settings put global binder_calls_stats detailed_tracking\u003dtrue\n\nAlso adds the ability to turn off data collection completely and\nchanging the sampling interval. Uploading data through westworld can\nre-use the same flag once implemented.\n\nTest: Unit tested\n\nChange-Id: I808c9902b8124ab643d9b197703d537da040ae3e\n"
    },
    {
      "commit": "4c51b7c057d2185d031c408bc346e669d590159b",
      "tree": "8e5fb78a61ab443f2f175a7acd5273bc614ffb72",
      "parents": [
        "37200f966f22fea6c2fd29123249cf44722fdf2f",
        "568b2a64f0f8e4f6b93dfe68316fcbad0dbdb28b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 21 19:05:27 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 21 19:05:27 2018 +0000"
      },
      "message": "Merge \"Tweak some RenderNode API surfaces\""
    },
    {
      "commit": "b251b7f0910547c864d7e623c220d136c5c3f13f",
      "tree": "cc72e9639642a0f567cd022f503f4e7e5c95d917",
      "parents": [
        "292b08ff878e33ffd71312a48213dcf131cfbc3e"
      ],
      "author": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Thu Jun 14 10:23:31 2018 -0700"
      },
      "committer": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Thu Jun 14 10:26:59 2018 -0700"
      },
      "message": "Uses autofill callback to throttle performance tests.\n\nCurrently the Autofill performance tests work fine, but if we change IAutofillManager\nto make oneway binder calls, the tests will crash because of the excessive number of\nunfinished binder transactions.\n\nWe can fix this issue by using the autofill callbacks that are shown when the UI is shown\nor hidden.\n\nTest: mmma -j ./frameworks/base/apct-tests/perftests/autofill/ \u0026\u0026 \\\n  adb install -r $OUT/data/app/AutofillPerfTests/AutofillPerfTests.apk \u0026\u0026 \\\n  adb shell am instrument -w -e class android.view.autofill.LoginTest \\\n  com.android.perftests.autofill/android.support.test.runner.AndroidJUnitRunner\n\nBug: 73536867\n\nChange-Id: I216e67ca97cab059851b0873601e82b368a6abea\n"
    },
    {
      "commit": "568b2a64f0f8e4f6b93dfe68316fcbad0dbdb28b",
      "tree": "a41c5e12803ad85817eee3b5672f7009a6d5adba",
      "parents": [
        "e42868974bda97f00dfd63559074bb02c1fc6531"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jun 04 17:02:02 2018 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jun 04 17:02:02 2018 -0700"
      },
      "message": "Tweak some RenderNode API surfaces\n\n* no-arg #start()\n* remove no-op #destroy method\n* fix a Java-imposed quirk that you can\u0027t draw a\n  currently invalid RenderNode, forcing bottom-up\n  recording for no particular reason\n\nTest: builds\nChange-Id: I28b41c83b4f7f9ddced843b0d57e9ac510d40ae5\n"
    },
    {
      "commit": "58b56e3720823c10e654648ebe9cabb761c2579b",
      "tree": "00f5f7c28aa6712479d3c9dbb316074a14ce6799",
      "parents": [
        "de86e57e42f6048cbba4cc90a0049d29200604f2"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Fri Jun 01 16:18:43 2018 +0100"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Fri Jun 01 21:25:53 2018 +0100"
      },
      "message": "Collect a few more binder stats when detailed tracking is enabled.\n\nTest: unit tested\n\nChange-Id: Ibdbbd2b9b60dbc6fa375d60c76f04d42392d6bd3\n"
    },
    {
      "commit": "15c6708f23ff68f74f484c91749b786496db7930",
      "tree": "ab7cbd8bef3fe03e39ca4dba2c25f4c839c902eb",
      "parents": [
        "df821032eec0874bbdd4737cd64edfaae0df8937",
        "f6f73145449d8b6ed3d73e4a46222f97476c1fb6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 17 19:37:08 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 17 19:37:08 2018 +0000"
      },
      "message": "Merge \"Introduce perf test for Layout.getOffsetForHorizontal\""
    },
    {
      "commit": "f6f73145449d8b6ed3d73e4a46222f97476c1fb6",
      "tree": "9247319464f50aafc91254681fb801c348fe07b0",
      "parents": [
        "8ee93af8447cf0db21a6597584cea9b5d9c9c8f2"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue May 15 22:11:22 2018 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu May 17 11:07:40 2018 -0700"
      },
      "message": "Introduce perf test for Layout.getOffsetForHorizontal\n\nBug: 78464361\nTest: atest StaticLayoutGetOffsetForHorizontalPerfTest\nChange-Id: I2543463daddf6ab174c14e11705de603d0286690\n"
    },
    {
      "commit": "f97d380ca791ed47fb55e9f6558c7313bb5e1ad7",
      "tree": "bded6dbfc162cd701f0bebd85a3a4cb073650576",
      "parents": [
        "acc0043abdef3aab17ea30af2e0a52ac060dedbb",
        "d00c851e55a487d03e11ce48e58cba5ff65fa59b"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue May 15 15:52:51 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 15 15:52:51 2018 -0700"
      },
      "message": "Merge \"Convert to Soong\" am: acbd94d76f am: b1005a8a2a\nam: d00c851e55\n\nChange-Id: I889b5d31535d927b3aa9cf5ad6af955ca0678356\n"
    },
    {
      "commit": "d00c851e55a487d03e11ce48e58cba5ff65fa59b",
      "tree": "a01d99cd4906dc6f1dac035ee2f73d7d35f6bf91",
      "parents": [
        "73e4d170c542d0d68ed857e433d04b77dd12aff3",
        "b1005a8a2affd887b1503945fa94a4bc0240a42b"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue May 15 15:06:19 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 15 15:06:19 2018 -0700"
      },
      "message": "Merge \"Convert to Soong\" am: acbd94d76f\nam: b1005a8a2a\n\nChange-Id: If5cb26e0669f79240d8fee1d40aaa2162d8e611f\n"
    },
    {
      "commit": "4888b1f6f0f607de913fbd0dc5eaed6575464c06",
      "tree": "662ea285f420c21f406e8dc09b6fbf42b7b28880",
      "parents": [
        "5d58a302e3dc3e63c1d5cc87807f29863e89b2a9"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed May 09 20:30:33 2018 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon May 14 16:47:02 2018 -0700"
      },
      "message": "Convert to Soong\n\nSee build/soong/README.md for more information.\n\nTest: m libframeworks_coretests_jni\nTest: m FrameworkCoreTests_install\nTest: m libshim_jni\nTest: m CtsShimPrivUpgrade\nTest: m libfilterfw\nTest: m PMTest_Java_dual\nTest: m libdefcontainer_jni\nTest: m libperftestscore_jni\nTest: m libpmtest32 libpmtest64\nTest: m libprintspooler_jni\nTest: m libsmartcamera_jni\nTest: m idmap\nTest: m libdrmframework_jni\nTest: m libdvr_loader com.google.vr.platform com.google.vr.platform.xml\nTest: m libfilterpack_imageproc libfilterpack_base\nTest: m libwebviewchromium_loader\nTest: m shared_mem_test\nTest: m test-touchlag\nChange-Id: I868561dd237fa28647896d59049ab9260373ada1\n"
    },
    {
      "commit": "660327dda6e1e87a995d9afd7dab37cf50b7381a",
      "tree": "5c07ec0f28e41b331d7ca380edacd88b8d8f37e9",
      "parents": [
        "e145f4d7ff988f2aa61f5fba1f15300f3f093942"
      ],
      "author": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Fri May 04 11:26:41 2018 -0700"
      },
      "committer": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Fri May 04 11:42:46 2018 -0700"
      },
      "message": "Spun off Autofill PERF tests on its own package...\n\n...so bugs on it (like starving the UI Thread) don\u0027t impact other tests\n\nTest: mmma -j ./frameworks/base/apct-tests/perftests/autofill/ \u0026\u0026 \\\n  adb install -r $OUT/data/app/AutofillPerfTests/AutofillPerfTests.apk \u0026\u0026 \\\n  adb shell am instrument -w -e class android.view.autofill.LoginTest \\\n  com.android.perftests.autofill/android.support.test.runner.AndroidJUnitRunner\n\nBug: 38345816\n\nChange-Id: I76346f1d1c45790788400fcd9765f6b424d99f4c\n"
    },
    {
      "commit": "236c626458708ab48b505efecb5704ee109fdc63",
      "tree": "c5951e36e7983aa2a9785c393d1e25dc97e1fea6",
      "parents": [
        "f63735289f7554f167ef149af0e924e71d89f11c"
      ],
      "author": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Thu May 03 14:51:12 2018 -0700"
      },
      "committer": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Thu May 03 15:44:58 2018 -0700"
      },
      "message": "Make Autofill PERF tests more lenient to error.\n\nThese tests were based on CTS autofill tests, where correctness is the priority\n(for example, there should be no \"orphan\" onFillRequest() call) and the number\nof UI interactions is small.\n\nBut that \"correctness\" model doesn\u0027t work well on PERF, because the\nonFillRequest() calls are handled in the main thread and the main test loop can\nmake hundreds of UI calls. For example, if testFocus_autofillUsernameOnly()\ndoesn\u0027t set the ignored id on the password field, each focus on that field would\nresult in a new onFillRequest(), which is not called right away. As such, the\nmain loop would finish, but subsequent tests would hang until all those calls\nare made.\n\nTest: mmma -j ./frameworks/base/apct-tests/perftests/core/ \u0026\u0026  \\\n  adb install -r $OUT/data/app/CorePerfTests/CorePerfTests.apk \u0026\u0026 \\\n  adb shell am instrument -w -e class android.view.autofill.AutofillPerfTest \\\n  com.android.perftests.core/android.support.test.runner.AndroidJUnitRunner\n\nBug: 38345816\n\nChange-Id: I83a311e719966dcf41e86142952075e68d0c64bf\n"
    },
    {
      "commit": "984cfdf988cf6696083ea8afc1f91b11c302921c",
      "tree": "5c819fd80147f218340bda1a16c2afbc467acf57",
      "parents": [
        "9c65721e98325ed573cc9fc02d3aeb45d891e102"
      ],
      "author": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Wed May 02 16:50:50 2018 -0700"
      },
      "committer": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Thu May 03 14:16:05 2018 -0700"
      },
      "message": "New Autofill PERF test that waits for AutofillCallbacks.\n\nTest: mmma -j ./frameworks/base/apct-tests/perftests/core/ \u0026\u0026  \\\n  adb install -r $OUT/data/app/CorePerfTests/CorePerfTests.apk \u0026\u0026 \\\n  adb shell am instrument -w -e class android.view.autofill.AutofillPerfTest \\\n  com.android.perftests.core/android.support.test.runner.AndroidJUnitRunner\n\nBug: 38345816\n\nChange-Id: I60c9061b37c7f1f933740657732825e6edbe665f\n"
    },
    {
      "commit": "a052c98fce903cda31cd7949006120d238df6f5e",
      "tree": "426c54f03cd153a0e2339563d1372fab5073cf5e",
      "parents": [
        "394eacf36391e0384e23a6ebb5b8b635b64a0594"
      ],
      "author": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Thu May 03 10:06:15 2018 -0700"
      },
      "committer": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Thu May 03 10:07:19 2018 -0700"
      },
      "message": "Removed temporary Autofill PERF tests.\n\nTest: mmma -j ./frameworks/base/apct-tests/perftests/core/ \u0026\u0026  \\\n  adb install -r $OUT/data/app/CorePerfTests/CorePerfTests.apk \u0026\u0026 \\\n  adb shell am instrument -w -e class android.view.autofill.AutofillPerfTest \\\n  com.android.perftests.core/android.support.test.runner.AndroidJUnitRunner\n\nBug: 38345816\n\nChange-Id: Ic37b0b2b0cf4a233cdb0104c86990200ed1ea57c\n"
    },
    {
      "commit": "bc90715a1ab9f4752a7f54284f18ef45f68ecb04",
      "tree": "772272ed7816074a8ef2b40f28467c1c5f26244c",
      "parents": [
        "d4dcdb11c59608dca3cdd7069f108b4881ddfac4"
      ],
      "author": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Wed May 02 14:57:23 2018 -0700"
      },
      "committer": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Wed May 02 16:17:58 2018 -0700"
      },
      "message": "Minor refactorings on Autofill tests:\n\n- Move common code to AbstractAutofillTestCase.\n- Copied existing codes to LoginTest, which does not use @Parameters.\n- Deprecated AutofillPerfTest (it will be removed once LoginTest has some runs).\n- Added some (temporary) no-op tests to help us investigate why some tests are\n  missing from the dashboard.\n\nTest: mmma -j ./frameworks/base/apct-tests/perftests/core/ \u0026\u0026  \\\n  adb install -r $OUT/data/app/CorePerfTests/CorePerfTests.apk \u0026\u0026 \\\n  adb shell am instrument -w -e class android.view.autofill.AutofillPerfTest \\\n  com.android.perftests.core/android.support.test.runner.AndroidJUnitRunner\n\nBug: 38345816\n\nChange-Id: Iab703205f1e01a1e5413b10c3008aac8efcc5dc2\n"
    },
    {
      "commit": "15a074393bea5e4f1ec52362f075f114c8c0b975",
      "tree": "1de92d6d430927dccc80d73ff36e38df79e47fe5",
      "parents": [
        "c6e7c750b7646afbd1549fd2d42b44433c87a4f7"
      ],
      "author": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Tue May 01 21:48:14 2018 -0700"
      },
      "committer": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Wed May 02 07:30:47 2018 -0700"
      },
      "message": "Added missing @LargeTest annotation.\n\nTest: mmma -j ./frameworks/base/apct-tests/perftests/core/ \u0026\u0026  \\\n  adb install -r $OUT/data/app/CorePerfTests/CorePerfTests.apk \u0026\u0026 \\\n  adb shell am instrument -w -e class android.view.autofill.AutofillPerfTest \\\n  com.android.perftests.core/android.support.test.runner.AndroidJUnitRunner\n\nBug: 38345816wip\n\nChange-Id: I0a6f85683ffb3457fe54a05b4b46b273a3b58cec\n"
    },
    {
      "commit": "e4d053886b7dc5efb1872f722228c48730979416",
      "tree": "9ba1085e2788556acf0ff1293fcb8563ac8bb2bc",
      "parents": [
        "f9dc8d966394794f39248708a0134de5f7c03aff"
      ],
      "author": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Tue May 01 13:02:40 2018 -0700"
      },
      "committer": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Tue May 01 13:08:31 2018 -0700"
      },
      "message": "Uses a custom JUnit rule to preserve value of autofill service settings.\n\nResetting it is also fine, but it could accidentally \"solve\" performance issues\non other tests that are affected by the default service set by the OEM.\n\nTest: mmma -j ./frameworks/base/apct-tests/perftests/core/ \u0026\u0026  \\\n  adb install -r $OUT/data/app/CorePerfTests/CorePerfTests.apk \u0026\u0026 \\\n  adb shell am instrument -w -e class android.view.autofill.AutofillPerfTest \\\n  com.android.perftests.core/android.support.test.runner.AndroidJUnitRunner\n\nBug: 38345816\n\nChange-Id: Ic196ef3140697e64a5feb39f6b5363387fbf0b14\n"
    },
    {
      "commit": "f9dc8d966394794f39248708a0134de5f7c03aff",
      "tree": "0a3eccada5e43c26609e225a68ef6f9c6fb9ad24",
      "parents": [
        "6378b48f239963cfad496f9c7ffec3b99d1a1fd4"
      ],
      "author": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Tue May 01 11:51:51 2018 -0700"
      },
      "committer": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Tue May 01 12:54:53 2018 -0700"
      },
      "message": "Moar PERF tests for autofill.\n\nThese tests render an activity that has 2 autofillable views (username and\npassword) and keep changint their values, observing what happens in 4 scenarios:\n\n1. No autofill service (baseline)\n2. Autofill service returning no datasets.\n3. Autofill service returning a dataset with username and password.\n4. Autofill service returning a dataset with just username.\n\nTest: mmma -j ./frameworks/base/apct-tests/perftests/core/ \u0026\u0026  \\\n  adb install -r $OUT/data/app/CorePerfTests/CorePerfTests.apk \u0026\u0026 \\\n  adb shell am instrument -w -e class android.view.autofill.AutofillPerfTest \\\n  com.android.perftests.core/android.support.test.runner.AndroidJUnitRunner\n\nBug: 38345816\n\nChange-Id: Ifeb8d038f90450ebc96fa7d3ffc7d719a11234ce\n"
    },
    {
      "commit": "6378b48f239963cfad496f9c7ffec3b99d1a1fd4",
      "tree": "67f584199cdea591f09a140a04653323ad2ddad9",
      "parents": [
        "633c4d9875c019539d6e6f0821977b8d586e64e8"
      ],
      "author": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Mon Apr 30 09:39:55 2018 -0700"
      },
      "committer": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Tue May 01 12:40:33 2018 -0700"
      },
      "message": "Initial PERF tests for autofill.\n\nThese tests render an activity that has 2 autofillable views (username and\npassword) and keep focusing between then, observing what happens in 4 scenarios:\n\n1. No autofill service (baseline)\n2. Autofill service returning no datasets.\n3. Autofill service returning a dataset with username and password.\n4. Autofill service returning a dataset with just username.\n\nBecause this change introduced a helper class to run shell commands without\nneeding the UiAutomator package, it also changed the MultiUserPerfTests to use\nsuch helper.\n\nTest: mmma -j ./frameworks/base/apct-tests/perftests/core/ \u0026\u0026  \\\n  adb install -r $OUT/data/app/CorePerfTests/CorePerfTests.apk \u0026\u0026 \\\n  adb shell am instrument -w -e class android.view.autofill.AutofillPerfTest \\\n  com.android.perftests.core/android.support.test.runner.AndroidJUnitRunner\nTest: mmma -j ./frameworks/base/apct-tests/perftests/multiuser \u0026\u0026 \\\n  adb install -r $OUT/data/app/MultiUserPerfTests/MultiUserPerfTests.apk \u0026\u0026 \\\n  adb shell am instrument -w -e class android.multiuser.UserLifecycleTests \\\n  com.android.perftests.multiuser/android.support.test.runner.AndroidJUnitRunner\n\nBug: 38345816\n\nChange-Id: Ie283dff8dd19c38ea829de9164b23aae2bfeb015\n"
    },
    {
      "commit": "b0ad3dd2c622890d9ef294a4358ef81551626f1e",
      "tree": "987546f48fb5feff6a238044b7028c26984554a3",
      "parents": [
        "30ebd415a3fb9bb6a90c3b693a07488cdcf54828",
        "adb9a96b8e87bc215faea4d04447b1cd147fb077"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Mon Apr 23 11:09:00 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 23 11:09:00 2018 -0700"
      },
      "message": "Merge \"Enabled aggregated per-uid stats collection by default\" into pi-dev am: 981d61ddf8\nam: adb9a96b8e\n\nChange-Id: I76eb5d2c94af5138232142ef603f7da6c088b2fa\n"
    },
    {
      "commit": "3f3af617ae9fab797248a9a855fe396c0d2ab590",
      "tree": "aa3ea0144523b6d5255d0b7e0735fd798f4d7852",
      "parents": [
        "5e12ebfffd813fc7035c9eef60220914dc92482f"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Wed Apr 18 17:26:43 2018 -0700"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Fri Apr 20 16:12:41 2018 -0700"
      },
      "message": "Enabled aggregated per-uid stats collection by default\n\nEnabled collection of number of calls per-uid. It has relatively small\noverhead. Memory impact is minimal and cpu overhead is also small -\n250 ns vs 1500 ns with detailed tracking\n\nDetailed tracking is disabled by default. Controlled by\npersist.sys.binder_calls_detailed_tracking\n\nAdded commands to reset and enable/disable detailed stats:\ndumpsys binder_calls_stats --reset\ndumpsys binder_calls_stats --enable-detailed-tracking\ndumpsys binder_calls_stats --disable-detailed-tracking\n\nTest: manual\nBug: 75318418\nChange-Id: I7c1280c025001b6d2b46e4a37bad841712b6da2f\n"
    },
    {
      "commit": "c5fe9674248d12fd5b2989b5de74fdc777844a31",
      "tree": "c6660f31e0ca986dd0110c35e1280abd3465590a",
      "parents": [
        "aac73522b587645555fe39dfd5a2d915102911e3"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Apr 13 14:10:39 2018 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Apr 13 14:11:28 2018 -0700"
      },
      "message": "Add memory usage tests for various scripts\n\nHere is an example of test result:\n\nandroid.text.PrecomputedTextMemoryUsageTest:\n  MemoryUsage\n    Arabic Hyphenation  : 26,087\n    Arabic NoHyphenation: 26,087\n    CJK Hyphenation     : 58,515\n    CJK NoHyphenation   : 58,515\n    Latin Hyphenation   : 38,333\n    Latin NoHyphenation : 16,077\n\nBug: 72461923\nTest: manually\nChange-Id: If3df2243cf9901178b3fd34882fb20f499fef5ab\n"
    },
    {
      "commit": "eff3f442605baa51d834987bcfaf47d0ea02ed05",
      "tree": "7c5515cb6085966ffea02a6e25c156733e58c82b",
      "parents": [
        "8d8a35a90ec568da101f3e05dc8f12b58f99af5b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 06 09:20:33 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 06 09:20:33 2018 +0100"
      },
      "message": "Exempt two performance tests from hidden API checks.\n\nBug: 64382372\nBug: 74963051\nBug: 76162083\n\nTest: m\nChange-Id: I50f2c8993cfb8fc7b78dc8c87b2cd8d9ee92d98e\n"
    },
    {
      "commit": "3e0970566276039dbceed737bbc55e9094b53645",
      "tree": "6b3abc9238ca0dd67d9834244442b0b4f49e26ef",
      "parents": [
        "a210ef268756b80c4d09ee716d4a07c2e63bf75f"
      ],
      "author": {
        "name": "jdesprez",
        "email": "jdesprez@google.com",
        "time": "Thu Mar 29 12:17:50 2018 -0700"
      },
      "committer": {
        "name": "jdesprez",
        "email": "jdesprez@google.com",
        "time": "Thu Mar 29 12:17:50 2018 -0700"
      },
      "message": "Add the CorePerfTests and MultiUserPerfTests to APCT metrics\n\nAdd them to the suite version of APCT metric instrumentation.\n\nTest: atest CorePerfTests\nBug: 77280599\nChange-Id: Ia8f0c44fcb9fd21869ed64e54483aa87556a469d\n"
    },
    {
      "commit": "163a57d71e6844856b2c7a3a1dc9ce3b5e2100b5",
      "tree": "6581b5311bc6dbe5fe2217f496d97cb0903ebeda",
      "parents": [
        "96fd5d9ed2f5ff2d2944e843144d7f467fa8af7b",
        "ca34851eadffb3a557cb8d03a83d5c78eb35483a"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Wed Mar 21 23:02:58 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 21 23:02:58 2018 +0000"
      },
      "message": "Merge \"Added BinderCallsStatsService\" into pi-dev"
    },
    {
      "commit": "c3328d648e827c8a65f46ed3a8b0ec96076b5ebe",
      "tree": "fdf374969c3c618b43411eaafeadd737bbd9d573",
      "parents": [
        "3483bc7d648ad96916eb68203103dc9668dd0be7"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Mar 20 15:18:59 2018 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Mar 20 18:57:38 2018 -0700"
      },
      "message": "Stop creating PrecomputedText in StaticLayout\n\nNo performance regressions are expected\n\nandroid.text.PrecomputedTextPerfTest:\n  create NoStyled Hyphenation                  : 17,849,966 -\u003e 17,858,570: (+0.0%)\n  create NoStyled Hyphenation WidthOnly        : 17,814,338 -\u003e 17,801,205: (-0.1%)\n  create NoStyled NoHyphenation                :  7,123,449 -\u003e  7,068,308: (-0.8%)\n  create NoStyled NoHyphenation WidthOnly      :  7,108,169 -\u003e  7,074,908: (-0.5%)\n  create Styled Hyphenation                    : 12,179,203 -\u003e 12,131,020: (-0.4%)\n  create Styled Hyphenation WidthOnly          : 12,112,347 -\u003e 12,241,311: (+1.1%)\n  create Styled NoHyphenation                  : 11,870,126 -\u003e 11,880,442: (+0.1%)\n  create Styled NoHyphenation WidthOnly        : 11,836,742 -\u003e 11,860,292: (+0.2%)\n\nandroid.text.StaticLayoutPerfTest:\n  create PrecomputedText Balanced Hyphenation  :    697,713 -\u003e    691,148: (-0.9%)\n  create PrecomputedText Balanced NoHyphenation:    517,113 -\u003e    498,106: (-3.7%)\n  create PrecomputedText Greedy Hyphenation    :    468,243 -\u003e    455,015: (-2.8%)\n  create PrecomputedText Greedy NoHyphenation  :    479,514 -\u003e    461,617: (-3.7%)\n  create RandomText Balanced Hyphenation       : 17,183,044 -\u003e 17,049,811: (-0.8%)\n  create RandomText Balanced NoHyphenation     :  7,183,745 -\u003e  7,025,070: (-2.2%)\n  create RandomText Greedy Hyphenation         :  7,130,841 -\u003e  6,995,785: (-1.9%)\n  create RandomText Greedy NoHyphenation       :  7,122,398 -\u003e  7,037,074: (-1.2%)\n\n  draw PrecomputedText NoStyled                :    520,306 -\u003e    551,465: (+6.0%)\n  draw PrecomputedText NoStyled WithoutCache   :    545,773 -\u003e    566,956: (+3.9%)\n  draw PrecomputedText Styled                  :    826,044 -\u003e    838,979: (+1.6%)\n  draw PrecomputedText Styled WithoutCache     :    829,958 -\u003e    841,749: (+1.4%)\n  draw RandomText NoStyled                     :    537,079 -\u003e    545,428: (+1.6%)\n  draw RandomText NoStyled WithoutCache        :  6,473,166 -\u003e  6,445,194: (-0.4%)\n  draw RandomText Styled                       :    995,033 -\u003e  1,015,913: (+2.1%)\n  draw RandomText Styled WithoutCache          :  2,725,313 -\u003e  2,770,604: (+1.7%)\n\nandroid.widget.TextViewPrecomputedTextPerfTest:\n  newLayout PrecomputedText                    :    754,311 -\u003e    718,130: (-4.8%)\n  newLayout PrecomputedText Selectable         : 17,716,239 -\u003e 17,484,046: (-1.3%)\n  newLayout RandomText                         : 16,657,952 -\u003e 16,511,625: (-0.9%)\n  newLayout RandomText Selectable              : 17,675,222 -\u003e 17,520,653: (-0.9%)\n  onDraw PrecomputedText                       :  1,307,123 -\u003e  1,280,009: (-2.1%)\n  onDraw PrecomputedText Selectable            : 17,613,031 -\u003e 17,404,379: (-1.2%)\n  onDraw RandomText                            : 17,369,256 -\u003e 17,295,363: (-0.4%)\n  onDraw RandomText Selectable                 : 18,207,392 -\u003e 18,077,660: (-0.7%)\n  onMeasure PrecomputedText                    :    748,537 -\u003e    739,128: (-1.3%)\n  onMeasure PrecomputedText Selectable         : 17,842,953 -\u003e 17,784,459: (-0.3%)\n  onMeasure RandomText                         : 16,633,454 -\u003e 16,549,182: (-0.5%)\n  onMeasure RandomText Selectable              : 18,022,286 -\u003e 17,873,919: (-0.8%)\n  setText PrecomputedText                      :    120,769 -\u003e    119,496: (-1.1%)\n  setText PrecomputedText Selectable           :    162,411 -\u003e    150,809: (-7.1%)\n  setText RandomText                           :     11,096 -\u003e     10,956: (-1.3%)\n  setText RandomText Selectable                :     48,852 -\u003e     48,593: (-0.5%)\n\nBug: 72998298\nTest: atest CtsWidgetTestCases:EditTextTest\n    CtsWidgetTestCases:TextViewFadingEdgeTest\n    FrameworksCoreTests:TextViewFallbackLineSpacingTest\n    FrameworksCoreTests:TextViewTest FrameworksCoreTests:TypefaceTest\n    CtsGraphicsTestCases:TypefaceTest CtsWidgetTestCases:TextViewTest\n    CtsTextTestCases FrameworksCoreTests:android.text\n    CtsWidgetTestCases:TextViewPrecomputedTextTest\n\nChange-Id: I3af758ecc5a15975c4e59c6378faf7c14c3bd65b\n"
    },
    {
      "commit": "ca34851eadffb3a557cb8d03a83d5c78eb35483a",
      "tree": "9d33ab7b898ee70f87592d2bb4b6966623f56ef8",
      "parents": [
        "9531b70cae96e8e59d38bd91d636cbe084574f3a"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Wed Jan 10 18:05:53 2018 -0800"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Fri Mar 16 23:17:03 2018 +0000"
      },
      "message": "Added BinderCallsStatsService\n\nIt tracks binder calls into the system server and reports\nstatistics about CPU time spent per call on multiple dimensions,\ne.g. uid or call description.\n\nUsage: dumpsys binder_calls_stats\nOverhead: ~0.5% per binder call (if enabled)\n\nTest: manual\nBug: 75318418\nChange-Id: I13b854f67f8fd1c9f985b8e45f74dcba2e73b9cb\n"
    },
    {
      "commit": "b0f07d14901126d9b0606e9c34c99bab61f666b4",
      "tree": "f64f30a333fdedf47bc1a7e632565e89dbe81d42",
      "parents": [
        "216c28d4463e2891d08045de5442fcbd7302e93a"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Wed Mar 14 14:38:32 2018 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Mar 15 00:15:58 2018 +0000"
      },
      "message": "Set span boundary at word boundary in perf test\n\nThe style span interval should be the same with word boundary. This\ngenerates weird test case.\n\nBug: 72998298\nTest: N/A\nChange-Id: Id1132a455c8b1dd74e21eaeb259703a33ac3b01f\n"
    },
    {
      "commit": "86db3b5c10eebe58fcac69fe85a41db533440b83",
      "tree": "4eeda4deb6bed126cf2575d4964ba960f01c81e0",
      "parents": [
        "7cadb341cf34a50eef9e914509e3a76c2d271924",
        "5346f19f9e536e8d08d89e79ef0c6ed16c6b55b7"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Wed Mar 14 17:16:12 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 14 17:16:12 2018 +0000"
      },
      "message": "Merge \"Added performance tests for SQLiteCursor iteration\" into pi-dev"
    },
    {
      "commit": "5346f19f9e536e8d08d89e79ef0c6ed16c6b55b7",
      "tree": "f819ce3e355cff1cae8423663c69359685e57de4",
      "parents": [
        "ee83dd2cd04387852997aa4c2cf66120612b9cb5"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Tue Mar 13 18:32:01 2018 -0700"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Tue Mar 13 18:32:01 2018 -0700"
      },
      "message": "Added performance tests for SQLiteCursor iteration\n\nTests forward/backfards iteration when dataset exceeds default\nwindow size.\n\nTest: atest frameworks/base/apct-tests/perftests/core/src/android/database/SQLiteDatabasePerfTest.java\nBug: 37095915\nBug: 64262688\nChange-Id: Icc4e4864de0d2c510f7f3da55a6ebf526d5a4506\n"
    },
    {
      "commit": "12f867ca9856749c164f12df4bbbdc6330921fac",
      "tree": "209e4ecad65e133db7896002313add5d084d41e4",
      "parents": [
        "0efaf2088d8e3ba8ec560aa5eb597ef456b5213e"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Mar 08 09:15:46 2018 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Mar 09 11:12:07 2018 -0800"
      },
      "message": "Add selectable text view perf test for random text\n\nThe performance characteristics are quite different if selection is\nenabled. Good to add selectable random text case for reference.\n\nThis CL also fixes makeMeasureSpec miss usage.\n\nandroid.widget.TextViewPrecomputedTextPerfTest:\n    newLayout_PrecomputedText           :    758,899\n    newLayout_PrecomputedText_Selectable: 17,923,065\n    newLayout_RandomText                : 17,059,504\n    newLayout_RandomText_Selectable     : 18,523,234\n    onDraw_PrecomputedText              :  4,097,640\n    onDraw_PrecomputedText_Selectable   : 17,733,448\n    onDraw_RandomText                   : 17,941,208\n    onDraw_RandomText_Selectable        : 18,948,912\n    onMeasure_PrecomputedText           :    781,546\n    onMeasure_PrecomputedText_Selectable: 18,423,652\n    onMeasure_RandomText                : 18,067,749\n    onMeasure_RandomText_Selectable     : 19,364,439\n    setText_PrecomputedText             :     91,383\n    setText_PrecomputedText_Selectable  :    161,088\n    setText_RandomText                  :     11,142\n    setText_RandomText_Selectable       :     54,596\n\nBug: 72998298\nTest: N/A\nChange-Id: I8c04fd972897eb804be42adff883df13d87bf11e\n"
    },
    {
      "commit": "d15f04ef69a61722ea35de2e91923e44118e503b",
      "tree": "dfa41b02c933c1922ad82a294d4b578a4c67f682",
      "parents": [
        "1e36211a9633c2f0a87701e0f9bf78291514da03"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Mar 06 19:13:42 2018 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Wed Mar 07 11:34:54 2018 -0800"
      },
      "message": "Introduce new perf test for TextView with precomputed text\n\nHere is an example of perf test result:\n\nTextView new layout creation time:\n  PrecomputedText           :    740,173\n  PrecomputedText_Selectable: 17,727,649\n  RandomText                : 17,130,685\n\nTextView onDraw time:\n  PrecomputedText           :  1,471,075\n  PrecomputedText_Selectable: 31,971,393\n  RandomText                : 17,667,572\n\nTextView onMeasure time:\n  PrecomputedText           :    177,669\n  PrecomputedText_Selectable: 17,773,204\n  RandomText                :  6,296,358\n\nTextView setText (w/o layout creation) time:\n  PrecomputedText           :     91,858\n  PrecomputedText_Selectable:    152,665\n  RandomText                :     11,130\n\nBug: 72998298\nTest: ran perf test\nChange-Id: I69af74ba743499bc444c441c1472fb19878c2eec\n"
    },
    {
      "commit": "a3e79fbb8cdc9ef78e519f2d89e2f70e41864a1d",
      "tree": "e2bac4b9794e76f3923b096f5efb99d631a19c6a",
      "parents": [
        "e8b557bc08facb3d60b605f3e8cb26b31baaa28b"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Feb 23 12:57:51 2018 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed Feb 28 17:15:21 2018 +0000"
      },
      "message": "frameworks/base: Set LOCAL_SDK_VERSION where possible.\n\nThis change sets LOCAL_SDK_VERSION for all packages where\nthis is possible without breaking the build, and\nLOCAL_PRIVATE_PLATFORM_APIS :\u003d true otherwise.\n\nSetting one of these two will be made required soon, and this\nis a change in preparation for that. Not setting LOCAL_SDK_VERSION\nmakes the app implicitly depend on the bootclasspath, which is\noften not required. This change effectively makes depending on\nprivate apis opt-in rather than opt-out.\n\nTest: make relevant packages\nBug: 73535841\nChange-Id: Ibcffec873a693d1c792ca210fb597d2bf37e9068\nMerged-In: I4233b9091d9066c4fa69f3d24aaf367ea500f760\n"
    },
    {
      "commit": "ab6ec61251786bf6b4d0407db3bc28aeefcb55db",
      "tree": "fbdb5c5bd38879440eac702018dd53c0ed639541",
      "parents": [
        "58c83fa7c8609059f3d66a5860abb302284c2981"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Feb 23 12:57:51 2018 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed Feb 28 15:13:23 2018 +0000"
      },
      "message": "frameworks/base: Set LOCAL_SDK_VERSION where possible.\n\nThis change sets LOCAL_SDK_VERSION for all packages where\nthis is possible without breaking the build, and\nLOCAL_PRIVATE_PLATFORM_APIS :\u003d true otherwise.\n\nSetting one of these two will be made required soon, and this\nis a change in preparation for that. Not setting LOCAL_SDK_VERSION\nmakes the app implicitly depend on the bootclasspath, which is\noften not required. This change effectively makes depending on\nprivate apis opt-in rather than opt-out.\n\nTest: make relevant packages\nBug: 73535841\nChange-Id: I4233b9091d9066c4fa69f3d24aaf367ea500f760\n"
    },
    {
      "commit": "98e10b829de5746ad7bc0f81673e44505900e5fd",
      "tree": "4bb230138a70dfb0c1ff1912d96df38c29439ecf",
      "parents": [
        "5d108838257b60e344f1f34a0eb95bccdd115410",
        "3ffc6e7e0f3f473e9d9bf2d0e32d4948c809b8b8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 22 02:14:07 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 22 02:14:07 2018 +0000"
      },
      "message": "Merge \"Add 90th and 95th percentile to ManualBenchmarkState\""
    },
    {
      "commit": "1469365c38bc0da536c47a67d9b198301f8793ba",
      "tree": "b7e9ec9da16075130c285fb1f58eebba55f99c9f",
      "parents": [
        "e68ba070bbc68b6a336c1f7b02bbfdc02375defc"
      ],
      "author": {
        "name": "Kevin Cheng",
        "email": "kevcheng@google.com",
        "time": "Tue Feb 20 14:27:17 2018 -0800"
      },
      "committer": {
        "name": "Kevin Cheng",
        "email": "kevcheng@google.com",
        "time": "Tue Feb 20 14:51:13 2018 -0800"
      },
      "message": "Auto-gen AndroidTest.xml for CorePerfTests so atest can run it.\n\nBug: 68946306\nTest: atest CorePerfTests\nhttps://sponge.corp.google.com/target?id\u003d5238c8a7-0016-485f-9eb4-7a91fe86c454\u0026target\u003dCorePerfTests\u0026searchFor\u003d\u0026show\u003dALL\u0026sortBy\u003dSTATUS\nChange-Id: I4fe680dddb51151e17546704f554813a588e5f86\n"
    },
    {
      "commit": "beafa1f9d2845ee9b5ca352087de03ed0afe7db7",
      "tree": "fc74171bcb29ea1e720d9b16d195d344e998c310",
      "parents": [
        "c4c7f9bf1c93c7499240dacea7116786397ed76b"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Feb 01 21:39:24 2018 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Fri Feb 16 19:42:00 2018 -0800"
      },
      "message": "Reorganize MeasuredText API (2nd)\n\nThis is 2nd attempt of I7db9e2ca4db68a16648cfb8fcf63555f501304c2\n\nThis CL changes the MeasuredText API:\n- Rename MeasuredText to PrecomputedText.\n- Introduce PrecomputedText.Param which holds all text layout parameters.\n- Add API to get PrecomputedText.Param from TextView.\n- Remove MeasuredText.Builder and add PrecomputedText.create method instead.\n- Remove setRange from MeasuredText since it is not for normal use case.\n  (It can not be used for TextView)\n\nBug: 67504091\nBug: 72861572\nTest: bit FrameworksCoreTests:android.text.\nTest: atest CtsWidgetTestCases:EditTextTest \\\n    CtsWidgetTestCases:TextViewFadingEdgeTest \\\n    FrameworksCoreTests:TextViewFallbackLineSpacingTest \\\n    FrameworksCoreTests:TextViewTest FrameworksCoreTests:TypefaceTest \\\n    CtsGraphicsTestCases:TypefaceTest CtsWidgetTestCases:TextViewTest \\\n    CtsTextTestCases\n\nChange-Id: Ie73bce52c6c673cda58973ddad04627a7cf2e5e9\n"
    },
    {
      "commit": "4e90fa262d57c1c1ee72166e2ddfce391696ca24",
      "tree": "0b38575786a462224d2cddd07355649c6c939015",
      "parents": [
        "acc788a9525ab1759fb1a81100b6161a22b5b97d"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Feb 13 21:40:01 2018 +0000"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Wed Feb 14 17:03:16 2018 +0000"
      },
      "message": "Revert \"Reorganize MeasuredText API\"\n\nThe last change needs more discussion and found some edge cases. Revert and make small step-by-step changes.\n\nBug: 73091756\n\nThis reverts commit 7fd36d19e309ea515b4048cfaabb8035ceab7baf.\n\nChange-Id: I89ff52a70cf6a5d6c553afa20f83719e1f9eb726\n"
    },
    {
      "commit": "7fd36d19e309ea515b4048cfaabb8035ceab7baf",
      "tree": "30db8688e29ada27b365300ed08014a220464517",
      "parents": [
        "d3905e654452c68390835e31fcb752884e57a67b"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Thu Feb 01 21:39:24 2018 -0800"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Mon Feb 12 20:50:41 2018 -0800"
      },
      "message": "Reorganize MeasuredText API\n\nThis CL changes the MeasuredText API:\n- Rename MeasuredText to PrecomputedText.\n- PrecomputedText is no longer a Spanned.\n- Introduce PrecomputedText.Param which holds all text layout parameters.\n- Add API to get PrecomputedText.Param from TextView.\n- Remove MeasuredText.Builder and add PrecomputedText.create method instead.\n- Remove setRange from MeasuredText since it is not for normal use case.\n  (It can not be used for TextView)\n\nHere is a performance scores: (median, walleye-userdebug, N\u003d20)\n\nStaticLayout creation time (w/o patch -\u003e w/ patch)\n PrecomputedText Balanced Hyphenation  :    743,615 -\u003e    737,145: (-0.9%)\n PrecomputedText Balanced NoHyphenation:    551,544 -\u003e    542,715: (-1.6%)\n PrecomputedText Greedy Hyphenation    :    500,343 -\u003e    499,601: (-0.1%)\n PrecomputedText Greedy NoHyphenation  :    497,987 -\u003e    492,587: (-1.1%)\n RandomText Balanced Hyphenation       : 19,100,592 -\u003e 19,135,289: (+0.2%)\n RandomText Balanced NoHyphenation     :  8,015,088 -\u003e  7,954,260: (-0.8%)\n RandomText Greedy Hyphenation         :  7,950,915 -\u003e  7,877,424: (-0.9%)\n RandomText Greedy NoHyphenation       :  7,939,337 -\u003e  7,863,471: (-1.0%)\n\nPrecomputedText creation time (w/o patch -\u003e w/ patch)\n NoStyled Hyphenation                  : 18,935,638 -\u003e 18,925,422: (-0.1%)\n NoStyled Hyphenation WidthOnly        : 18,469,726 -\u003e 18,978,413: (+2.8%)\n NoStyled NoHyphenation                :  7,940,792 -\u003e  7,919,127: (-0.3%)\n NoStyled NoHyphenation WidthOnly      :  7,463,230 -\u003e  7,922,643: (+6.2%)\n Styled Hyphenation                    : 14,822,501 -\u003e 14,809,017: (-0.1%)\n Styled Hyphenation WidthOnly          : 13,891,770 -\u003e 14,656,617: (+5.5%)\n Styled NoHyphenation                  : 14,511,134 -\u003e 14,301,503: (-1.4%)\n Styled NoHyphenation WidthOnly        : 13,495,345 -\u003e 14,264,314: (+5.7%)\n\nStaticLayout draw time (w/o patch -\u003e w/ patch)\n PrecomputedText NoStyled              :    663,974 -\u003e    661,610: (-0.4%)\n PrecomputedText NoStyled WithoutCache :    648,294 -\u003e    648,766: (+0.1%)\n PrecomputedText Styled                :    879,322 -\u003e    852,770: (-3.0%)\n PrecomputedText Styled WithoutCache   :  1,084,570 -\u003e  1,110,147: (+2.4%)\n RandomText NoStyled                   :    565,682 -\u003e    555,435: (-1.8%)\n RandomText NoStyled WithoutCache      :  9,070,533 -\u003e  9,064,825: (-0.1%)\n RandomText Styled                     :  2,955,202 -\u003e  2,962,008: (+0.2%)\n RandomText Styled WithoutCache        : 12,242,325 -\u003e 12,228,573: (-0.1%)\n\nBug: 67504091\nBug: 73091756\nTest: bit FrameworksCoreTests:android.text.\nTest: atest CtsWidgetTestCases:EditTextTest \\\n    CtsWidgetTestCases:TextViewFadingEdgeTest \\\n    FrameworksCoreTests:TextViewFallbackLineSpacingTest \\\n    FrameworksCoreTests:TextViewTest FrameworksCoreTests:TypefaceTest \\\n    CtsGraphicsTestCases:TypefaceTest CtsWidgetTestCases:TextViewTest \\\n    CtsTextTestCases\nChange-Id: I7db9e2ca4db68a16648cfb8fcf63555f501304c2\n"
    },
    {
      "commit": "793a823467f48ea8b92f0b53578b603f50a560ba",
      "tree": "04413bb262da8787bce83d8b5d41d314e71bf1fc",
      "parents": [
        "261a1077b3d0b31c2fbc24fd72b87f9291190803",
        "97314af57693edc85f99c4118c36f7d946a12886"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 08 21:42:52 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 08 21:42:52 2018 +0000"
      },
      "message": "Merge \"Introduce perf tests for background text layout performance\""
    }
  ],
  "next": "3ffc6e7e0f3f473e9d9bf2d0e32d4948c809b8b8"
}
