)]}'
{"id":"android_frameworks_base~6195","triplet_id":"android_frameworks_base~sc~I39e1c4b03fe0e60f933f02e253d2d3c4a483146f","project":"android_frameworks_base","branch":"sc","topic":"sc-perf","attention_set":{},"removed_from_attention_set":{"1000071":{"account":{"_account_id":1000071,"name":"Sahil Sonar","email":"sss.sonar2003@gmail.com","username":"SahilSonar","avatars":[{"url":"https://www.gravatar.com/avatar/00002191405096d63d165b903b032343.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00002191405096d63d165b903b032343.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00002191405096d63d165b903b032343.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00002191405096d63d165b903b032343.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"last_update":"2021-11-09 00:13:30.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I39e1c4b03fe0e60f933f02e253d2d3c4a483146f","subject":"ThemedResourceCache: Replace ArrayMap with HashMap for performance","status":"MERGED","created":"2021-11-06 16:27:23.000000000","updated":"2021-11-09 00:13:30.000000000","submitted":"2021-11-09 00:13:30.000000000","submitter":{"_account_id":1000057,"name":"StatiXOS Gerrit","email":"statixgerrit@gmail.com","username":"statixgerrit","avatars":[{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"6195-sc-perf","meta_rev_id":"932497c9cf71f74d9bcabf2048bf9555232222d8","_number":6195,"virtual_id_number":6195,"owner":{"_account_id":1000071,"name":"Sahil Sonar","email":"sss.sonar2003@gmail.com","username":"SahilSonar","avatars":[{"url":"https://www.gravatar.com/avatar/00002191405096d63d165b903b032343.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00002191405096d63d165b903b032343.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00002191405096d63d165b903b032343.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00002191405096d63d165b903b032343.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"actions":{},"labels":{"Code-Review":{"approved":{"_account_id":1000000,"name":"Anay Wadhera","email":"anay1018@gmail.com","username":"anayw2001","avatars":[{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"status":"o fuc"},"all":[{"value":0,"_account_id":1000057,"name":"StatiXOS Gerrit","email":"statixgerrit@gmail.com","username":"statixgerrit","avatars":[{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},{"tag":"autogenerated:gerrit:merged","value":2,"date":"2021-11-09 00:13:30.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":1000000,"name":"Anay Wadhera","email":"anay1018@gmail.com","username":"anayw2001","avatars":[{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"status":"o fuc"}],"values":{"-2":"This shall not be merged","-1":"I would prefer this is not merged as is"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me, approved"},"description":"","default_value":0},"Verified":{"approved":{"_account_id":1000000,"name":"Anay Wadhera","email":"anay1018@gmail.com","username":"anayw2001","avatars":[{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"status":"o fuc"},"all":[{"value":0,"_account_id":1000057,"name":"StatiXOS Gerrit","email":"statixgerrit@gmail.com","username":"statixgerrit","avatars":[{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},{"tag":"autogenerated:gerrit:merged","value":1,"date":"2021-11-09 00:13:30.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":1000000,"name":"Anay Wadhera","email":"anay1018@gmail.com","username":"anayw2001","avatars":[{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"status":"o fuc"}],"values":{"-1":"Fails"," 0":"No score","+1":"Verified"},"description":"","default_value":0}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1000000,"name":"Anay Wadhera","email":"anay1018@gmail.com","username":"anayw2001","avatars":[{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"status":"o fuc"},{"_account_id":1000057,"name":"StatiXOS Gerrit","email":"statixgerrit@gmail.com","username":"statixgerrit","avatars":[{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2021-11-09 00:12:56.000000000","updated_by":{"_account_id":1000000,"name":"Anay Wadhera","email":"anay1018@gmail.com","username":"anayw2001","avatars":[{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"status":"o fuc"},"reviewer":{"_account_id":1000000,"name":"Anay Wadhera","email":"anay1018@gmail.com","username":"anayw2001","avatars":[{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"status":"o fuc"},"state":"REVIEWER"},{"updated":"2021-11-09 00:13:30.000000000","updated_by":{"_account_id":1000057,"name":"StatiXOS Gerrit","email":"statixgerrit@gmail.com","username":"statixgerrit","avatars":[{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"reviewer":{"_account_id":1000057,"name":"StatiXOS Gerrit","email":"statixgerrit@gmail.com","username":"statixgerrit","avatars":[{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"state":"REVIEWER"}],"messages":[{"id":"06587e831703d2e96a9c4ebd201f9e9c1703cd7b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000071,"name":"Sahil Sonar","email":"sss.sonar2003@gmail.com","username":"SahilSonar","avatars":[{"url":"https://www.gravatar.com/avatar/00002191405096d63d165b903b032343.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00002191405096d63d165b903b032343.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00002191405096d63d165b903b032343.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00002191405096d63d165b903b032343.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"date":"2021-11-06 16:27:23.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"4460454894dcd5db447f9aa3b9f9b5e3fcc45395","author":{"_account_id":1000000,"name":"Anay Wadhera","email":"anay1018@gmail.com","username":"anayw2001","avatars":[{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"status":"o fuc"},"date":"2021-11-09 00:12:56.000000000","message":"Patch Set 1: Verified+1 Code-Review+2","accounts_in_message":[],"_revision_number":1},{"id":"2d3d63f71672c3fa3383bf6f57444fecbce23d96","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000000,"name":"Anay Wadhera","email":"anay1018@gmail.com","username":"anayw2001","avatars":[{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"status":"o fuc"},"date":"2021-11-09 00:13:22.000000000","message":"Patch Set 2: Patch Set 1 was rebased","accounts_in_message":[],"_revision_number":2},{"id":"7bf9767d6b815ea35eeeb845bd0d9c00ad3fb7ec","author":{"_account_id":1000000,"name":"Anay Wadhera","email":"anay1018@gmail.com","username":"anayw2001","avatars":[{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"status":"o fuc"},"date":"2021-11-09 00:13:30.000000000","message":"Patch Set 2: Verified+1 Code-Review+2","accounts_in_message":[],"_revision_number":2},{"id":"932497c9cf71f74d9bcabf2048bf9555232222d8","tag":"autogenerated:gerrit:merged","author":{"_account_id":1000057,"name":"StatiXOS Gerrit","email":"statixgerrit@gmail.com","username":"statixgerrit","avatars":[{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"date":"2021-11-09 00:13:30.000000000","message":"Change has been successfully rebased and submitted as ffcbd72caabe77d3a49ad3b3815ece11bd668321","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"ffcbd72caabe77d3a49ad3b3815ece11bd668321","revisions":{"40b53fdb7e0c689b4d37d16c94517ad2bb2156d9":{"kind":"REWORK","_number":1,"created":"2021-11-06 16:27:23.000000000","uploader":{"_account_id":1000071,"name":"Sahil Sonar","email":"sss.sonar2003@gmail.com","username":"SahilSonar","avatars":[{"url":"https://www.gravatar.com/avatar/00002191405096d63d165b903b032343.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00002191405096d63d165b903b032343.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00002191405096d63d165b903b032343.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00002191405096d63d165b903b032343.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"ref":"refs/changes/95/6195/1","fetch":{"anonymous http":{"url":"https://github.com/StatiXOS/android_frameworks_base","ref":"refs/changes/95/6195/1","commands":{"Branch":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/95/6195/1 \u0026\u0026 git checkout -b change-6195 FETCH_HEAD","Checkout":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/95/6195/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/95/6195/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/95/6195/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://github.com/StatiXOS/android_frameworks_base refs/changes/95/6195/1","Reset To":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/95/6195/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"3ea3b7ce5ce2c6e69f7e1334653cdb43ad0a1197","subject":"Kill off provider info logspam","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/StatiXOS/android_frameworks_base/commit/3ea3b7ce5ce2c6e69f7e1334653cdb43ad0a1197"}]}],"author":{"name":"Danny Lin","email":"danny@kdrag0n.dev","date":"2021-03-25 01:56:33.000000000","tz":-420},"committer":{"name":"SahilSonar","email":"sss.sonar2003@gmail.com","date":"2021-11-06 16:26:24.000000000","tz":60},"subject":"ThemedResourceCache: Replace ArrayMap with HashMap for performance","message":"ThemedResourceCache: Replace ArrayMap with HashMap for performance\n\nWhen opening and closing activities in Settings, a significant amount of\nCPU time is spent looking up ArrayMap entries, as reported by simpleperf:\n\n0.12%     /system/framework/arm64/boot-framework.oat                                                                                                android.util.ArrayMap.binarySearchHashes\n\nThemedResourceCache is responsible for a significant portion of the time\nspent in ArrayMap lookups:\n\n0.08%     0.08%  /system/framework/arm64/boot-framework.oat                                                                              android.util.ArrayMap.binarySearchHashes\n       |\n       -- android.util.ArrayMap.binarySearchHashes\n          |\n           --50.00%-- android.util.ArrayMap.indexOf\n               |\n               |--36.71%-- android.util.ArrayMap.get\n               |    |--0.87%-- [hit in function]\n               |    |\n               |    |--9.64%-- android.content.res.ThemedResourceCache.getThemedLocked\n               |    |          android.content.res.ThemedResourceCache.get\n               |    |    |\n               |    |    |--77.92%-- android.content.res.DrawableCache.getInstance\n               |    |    |           android.content.res.ResourcesImpl.loadDrawable\n               |    |    |           android.content.res.Resources.loadDrawable\n               |    |    |           android.content.res.TypedArray.getDrawableForDensity\n               |    |    |           android.content.res.Resources.getColor [DEDUPED]\n               |    |    |    |\n               |    |    |    |--62.94%-- android.view.View.\u003cinit\u003e\n               |    |    |    |    |\n               |    |    |    |    |--64.58%-- android.view.ViewGroup.\u003cinit\u003e\n               |    |    |    |    |           android.widget.LinearLayout.\u003cinit\u003e\n               |    |    |    |    |           android.widget.LinearLayout.\u003cinit\u003e\n               |    |    |    |    |           art_quick_invoke_stub\n               |    |    |    |    |           art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)\n               |    |    |    |    |           art::InvokeConstructor(art::ScopedObjectAccessAlreadyRunnable const\u0026, art::ArtMethod*, art::ObjPtr\u003cart::mirror::Object\u003e, _jobject*)\n               |    |    |    |    |           art::Constructor_newInstance0(_JNIEnv*, _jobject*, _jobjectArray*)\n               |    |    |    |    |           art_jni_trampoline\n               |    |    |    |    |           java.lang.reflect.Constructor.newInstance\n               |    |    |    |    |           android.view.LayoutInflater.createView\n               |    |    |    |    |           com.android.internal.policy.PhoneLayoutInflater.onCreateView\n               |    |    |    |    |           android.view.LayoutInflater.onCreateView\n               |    |    |    |    |           android.view.LayoutInflater.onCreateView\n               |    |    |    |    |           android.view.LayoutInflater.createViewFromTag\n               |    |    |    |    |           android.view.LayoutInflater.inflate\n               |    |    |    |    |           android.view.LayoutInflater.inflate\n               |    |    |    |    |\n               |    |    |    |     --35.42%-- android.widget.TextView.\u003cinit\u003e\n               |    |    |    |                android.widget.Button.\u003cinit\u003e\n               |    |    |    |                art_quick_invoke_stub\n               |    |    |    |                art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)\n               |    |    |    |                art::InvokeConstructor(art::ScopedObjectAccessAlreadyRunnable const\u0026, art::ArtMethod*, art::ObjPtr\u003cart::mirror::Object\u003e, _jobject*)\n               |    |    |    |                art::Constructor_newInstance0(_JNIEnv*, _jobject*, _jobjectArray*)\n               |    |    |    |                art_jni_trampoline\n               |    |    |    |                java.lang.reflect.Constructor.newInstance\n               |    |    |    |                android.view.LayoutInflater.createView\n               |    |    |    |                com.android.internal.policy.PhoneLayoutInflater.onCreateView\n               |    |    |    |                android.view.LayoutInflater.onCreateView\n               |    |    |    |                android.view.LayoutInflater.onCreateView\n               |    |    |    |                android.view.LayoutInflater.createViewFromTag\n               |    |    |    |                android.view.LayoutInflater.rInflate\n               |    |    |    |                android.view.LayoutInflater.rInflate\n               |    |    |    |                android.view.LayoutInflater.rInflate\n               |    |    |    |                android.view.LayoutInflater.inflate\n               |    |    |    |                android.view.LayoutInflater.inflate\n               |    |    |    |                android.view.LayoutInflater.inflate\n               |    |    |    |\n               |    |    |     --37.06%-- com.android.internal.widget.ToolbarWidgetWrapper.\u003cinit\u003e\n               |    |    |\n               |    |     --22.08%-- android.content.res.ConfigurationBoundResourceCache.get\n               |    |                android.content.res.ConfigurationBoundResourceCache.getInstance\n               |    |                android.content.res.ResourcesImpl.loadComplexColorFromName\n               |    |                android.content.res.ResourcesImpl.loadColorStateList\n               |    |                android.content.res.Resources.loadColorStateList\n               |    |                android.content.res.TypedArray.getColorStateList\n               |    |                android.widget.TextView.readTextAppearance\n               |    |                android.widget.TextView.setTextAppearance\n               |    |                android.widget.TextView.setTextAppearance\n               |    |                android.widget.Toolbar.setTitle\n               |    |                com.android.wifi.x.com.android.internal.util.StateMachine$SmHandler.handleMessage\n               |    |                android.view.SurfaceControl.copyFrom\n\nEmpirical testing reveals that mThemedEntries usually contains around 14\nentries, at which HashMap is 35% faster than ArrayMap for lookups and\n54% faster [1] for insertions. The increased memory usage should be\nnegligible at this size, so we can safely convert the map to a HashMap\nin order to improve performance in this hotpath.\n\n[1] https://docs.google.com/spreadsheets/d/136UJS2yVlZyPx30KDNgj4AWldkp9xbzIcWkLFj9RGgk/edit\n\nTest: simpleperf record -a; verify that ThemedResourceCache no longer\n      appears under ArrayMap.binarySearchHashes\nChange-Id: I39e1c4b03fe0e60f933f02e253d2d3c4a483146f\n","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/StatiXOS/android_frameworks_base/commit/40b53fdb7e0c689b4d37d16c94517ad2bb2156d9"}],"resolve_conflicts_web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/StatiXOS/android_frameworks_base/commit/40b53fdb7e0c689b4d37d16c94517ad2bb2156d9"}]},"branch":"refs/heads/sc"},"137eb6e09987dc33178e19a98baf53914ec689ab":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2021-11-09 00:13:22.000000000","uploader":{"_account_id":1000000,"name":"Anay Wadhera","email":"anay1018@gmail.com","username":"anayw2001","avatars":[{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"status":"o fuc"},"ref":"refs/changes/95/6195/2","fetch":{"anonymous http":{"url":"https://github.com/StatiXOS/android_frameworks_base","ref":"refs/changes/95/6195/2","commands":{"Branch":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/95/6195/2 \u0026\u0026 git checkout -b change-6195 FETCH_HEAD","Checkout":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/95/6195/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/95/6195/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/95/6195/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://github.com/StatiXOS/android_frameworks_base refs/changes/95/6195/2","Reset To":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/95/6195/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"7cff9a819dc9e032b0f1486d0a8820b5f7b395fa","subject":"SystemUI: Allow overlaying max notification icons","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/StatiXOS/android_frameworks_base/commit/7cff9a819dc9e032b0f1486d0a8820b5f7b395fa"}]}],"author":{"name":"Danny Lin","email":"danny@kdrag0n.dev","date":"2021-03-25 01:56:33.000000000","tz":-420},"committer":{"name":"Anay Wadhera","email":"anay1018@gmail.com","date":"2021-11-09 00:13:22.000000000","tz":60},"subject":"ThemedResourceCache: Replace ArrayMap with HashMap for performance","message":"ThemedResourceCache: Replace ArrayMap with HashMap for performance\n\nWhen opening and closing activities in Settings, a significant amount of\nCPU time is spent looking up ArrayMap entries, as reported by simpleperf:\n\n0.12%     /system/framework/arm64/boot-framework.oat                                                                                                android.util.ArrayMap.binarySearchHashes\n\nThemedResourceCache is responsible for a significant portion of the time\nspent in ArrayMap lookups:\n\n0.08%     0.08%  /system/framework/arm64/boot-framework.oat                                                                              android.util.ArrayMap.binarySearchHashes\n       |\n       -- android.util.ArrayMap.binarySearchHashes\n          |\n           --50.00%-- android.util.ArrayMap.indexOf\n               |\n               |--36.71%-- android.util.ArrayMap.get\n               |    |--0.87%-- [hit in function]\n               |    |\n               |    |--9.64%-- android.content.res.ThemedResourceCache.getThemedLocked\n               |    |          android.content.res.ThemedResourceCache.get\n               |    |    |\n               |    |    |--77.92%-- android.content.res.DrawableCache.getInstance\n               |    |    |           android.content.res.ResourcesImpl.loadDrawable\n               |    |    |           android.content.res.Resources.loadDrawable\n               |    |    |           android.content.res.TypedArray.getDrawableForDensity\n               |    |    |           android.content.res.Resources.getColor [DEDUPED]\n               |    |    |    |\n               |    |    |    |--62.94%-- android.view.View.\u003cinit\u003e\n               |    |    |    |    |\n               |    |    |    |    |--64.58%-- android.view.ViewGroup.\u003cinit\u003e\n               |    |    |    |    |           android.widget.LinearLayout.\u003cinit\u003e\n               |    |    |    |    |           android.widget.LinearLayout.\u003cinit\u003e\n               |    |    |    |    |           art_quick_invoke_stub\n               |    |    |    |    |           art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)\n               |    |    |    |    |           art::InvokeConstructor(art::ScopedObjectAccessAlreadyRunnable const\u0026, art::ArtMethod*, art::ObjPtr\u003cart::mirror::Object\u003e, _jobject*)\n               |    |    |    |    |           art::Constructor_newInstance0(_JNIEnv*, _jobject*, _jobjectArray*)\n               |    |    |    |    |           art_jni_trampoline\n               |    |    |    |    |           java.lang.reflect.Constructor.newInstance\n               |    |    |    |    |           android.view.LayoutInflater.createView\n               |    |    |    |    |           com.android.internal.policy.PhoneLayoutInflater.onCreateView\n               |    |    |    |    |           android.view.LayoutInflater.onCreateView\n               |    |    |    |    |           android.view.LayoutInflater.onCreateView\n               |    |    |    |    |           android.view.LayoutInflater.createViewFromTag\n               |    |    |    |    |           android.view.LayoutInflater.inflate\n               |    |    |    |    |           android.view.LayoutInflater.inflate\n               |    |    |    |    |\n               |    |    |    |     --35.42%-- android.widget.TextView.\u003cinit\u003e\n               |    |    |    |                android.widget.Button.\u003cinit\u003e\n               |    |    |    |                art_quick_invoke_stub\n               |    |    |    |                art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)\n               |    |    |    |                art::InvokeConstructor(art::ScopedObjectAccessAlreadyRunnable const\u0026, art::ArtMethod*, art::ObjPtr\u003cart::mirror::Object\u003e, _jobject*)\n               |    |    |    |                art::Constructor_newInstance0(_JNIEnv*, _jobject*, _jobjectArray*)\n               |    |    |    |                art_jni_trampoline\n               |    |    |    |                java.lang.reflect.Constructor.newInstance\n               |    |    |    |                android.view.LayoutInflater.createView\n               |    |    |    |                com.android.internal.policy.PhoneLayoutInflater.onCreateView\n               |    |    |    |                android.view.LayoutInflater.onCreateView\n               |    |    |    |                android.view.LayoutInflater.onCreateView\n               |    |    |    |                android.view.LayoutInflater.createViewFromTag\n               |    |    |    |                android.view.LayoutInflater.rInflate\n               |    |    |    |                android.view.LayoutInflater.rInflate\n               |    |    |    |                android.view.LayoutInflater.rInflate\n               |    |    |    |                android.view.LayoutInflater.inflate\n               |    |    |    |                android.view.LayoutInflater.inflate\n               |    |    |    |                android.view.LayoutInflater.inflate\n               |    |    |    |\n               |    |    |     --37.06%-- com.android.internal.widget.ToolbarWidgetWrapper.\u003cinit\u003e\n               |    |    |\n               |    |     --22.08%-- android.content.res.ConfigurationBoundResourceCache.get\n               |    |                android.content.res.ConfigurationBoundResourceCache.getInstance\n               |    |                android.content.res.ResourcesImpl.loadComplexColorFromName\n               |    |                android.content.res.ResourcesImpl.loadColorStateList\n               |    |                android.content.res.Resources.loadColorStateList\n               |    |                android.content.res.TypedArray.getColorStateList\n               |    |                android.widget.TextView.readTextAppearance\n               |    |                android.widget.TextView.setTextAppearance\n               |    |                android.widget.TextView.setTextAppearance\n               |    |                android.widget.Toolbar.setTitle\n               |    |                com.android.wifi.x.com.android.internal.util.StateMachine$SmHandler.handleMessage\n               |    |                android.view.SurfaceControl.copyFrom\n\nEmpirical testing reveals that mThemedEntries usually contains around 14\nentries, at which HashMap is 35% faster than ArrayMap for lookups and\n54% faster [1] for insertions. The increased memory usage should be\nnegligible at this size, so we can safely convert the map to a HashMap\nin order to improve performance in this hotpath.\n\n[1] https://docs.google.com/spreadsheets/d/136UJS2yVlZyPx30KDNgj4AWldkp9xbzIcWkLFj9RGgk/edit\n\nTest: simpleperf record -a; verify that ThemedResourceCache no longer\n      appears under ArrayMap.binarySearchHashes\nChange-Id: I39e1c4b03fe0e60f933f02e253d2d3c4a483146f\n","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/StatiXOS/android_frameworks_base/commit/137eb6e09987dc33178e19a98baf53914ec689ab"}],"resolve_conflicts_web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/StatiXOS/android_frameworks_base/commit/137eb6e09987dc33178e19a98baf53914ec689ab"}]},"branch":"refs/heads/sc","description":"Rebase"},"ffcbd72caabe77d3a49ad3b3815ece11bd668321":{"kind":"NO_CODE_CHANGE","_number":3,"created":"2021-11-09 00:13:30.000000000","uploader":{"_account_id":1000057,"name":"StatiXOS Gerrit","email":"statixgerrit@gmail.com","username":"statixgerrit","avatars":[{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ebd886cc6fd2034435497832e0da1e2a.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"ref":"refs/changes/95/6195/3","fetch":{"anonymous http":{"url":"https://github.com/StatiXOS/android_frameworks_base","ref":"refs/changes/95/6195/3","commands":{"Branch":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/95/6195/3 \u0026\u0026 git checkout -b change-6195 FETCH_HEAD","Checkout":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/95/6195/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/95/6195/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/95/6195/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://github.com/StatiXOS/android_frameworks_base refs/changes/95/6195/3","Reset To":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/95/6195/3 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"7cff9a819dc9e032b0f1486d0a8820b5f7b395fa","subject":"SystemUI: Allow overlaying max notification icons","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/StatiXOS/android_frameworks_base/commit/7cff9a819dc9e032b0f1486d0a8820b5f7b395fa"}]}],"author":{"name":"Danny Lin","email":"danny@kdrag0n.dev","date":"2021-03-25 01:56:33.000000000","tz":-420},"committer":{"name":"StatiXOS Gerrit","email":"statixgerrit@gmail.com","date":"2021-11-09 00:13:30.000000000","tz":60},"subject":"ThemedResourceCache: Replace ArrayMap with HashMap for performance","message":"ThemedResourceCache: Replace ArrayMap with HashMap for performance\n\nWhen opening and closing activities in Settings, a significant amount of\nCPU time is spent looking up ArrayMap entries, as reported by simpleperf:\n\n0.12%     /system/framework/arm64/boot-framework.oat                                                                                                android.util.ArrayMap.binarySearchHashes\n\nThemedResourceCache is responsible for a significant portion of the time\nspent in ArrayMap lookups:\n\n0.08%     0.08%  /system/framework/arm64/boot-framework.oat                                                                              android.util.ArrayMap.binarySearchHashes\n       |\n       -- android.util.ArrayMap.binarySearchHashes\n          |\n           --50.00%-- android.util.ArrayMap.indexOf\n               |\n               |--36.71%-- android.util.ArrayMap.get\n               |    |--0.87%-- [hit in function]\n               |    |\n               |    |--9.64%-- android.content.res.ThemedResourceCache.getThemedLocked\n               |    |          android.content.res.ThemedResourceCache.get\n               |    |    |\n               |    |    |--77.92%-- android.content.res.DrawableCache.getInstance\n               |    |    |           android.content.res.ResourcesImpl.loadDrawable\n               |    |    |           android.content.res.Resources.loadDrawable\n               |    |    |           android.content.res.TypedArray.getDrawableForDensity\n               |    |    |           android.content.res.Resources.getColor [DEDUPED]\n               |    |    |    |\n               |    |    |    |--62.94%-- android.view.View.\u003cinit\u003e\n               |    |    |    |    |\n               |    |    |    |    |--64.58%-- android.view.ViewGroup.\u003cinit\u003e\n               |    |    |    |    |           android.widget.LinearLayout.\u003cinit\u003e\n               |    |    |    |    |           android.widget.LinearLayout.\u003cinit\u003e\n               |    |    |    |    |           art_quick_invoke_stub\n               |    |    |    |    |           art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)\n               |    |    |    |    |           art::InvokeConstructor(art::ScopedObjectAccessAlreadyRunnable const\u0026, art::ArtMethod*, art::ObjPtr\u003cart::mirror::Object\u003e, _jobject*)\n               |    |    |    |    |           art::Constructor_newInstance0(_JNIEnv*, _jobject*, _jobjectArray*)\n               |    |    |    |    |           art_jni_trampoline\n               |    |    |    |    |           java.lang.reflect.Constructor.newInstance\n               |    |    |    |    |           android.view.LayoutInflater.createView\n               |    |    |    |    |           com.android.internal.policy.PhoneLayoutInflater.onCreateView\n               |    |    |    |    |           android.view.LayoutInflater.onCreateView\n               |    |    |    |    |           android.view.LayoutInflater.onCreateView\n               |    |    |    |    |           android.view.LayoutInflater.createViewFromTag\n               |    |    |    |    |           android.view.LayoutInflater.inflate\n               |    |    |    |    |           android.view.LayoutInflater.inflate\n               |    |    |    |    |\n               |    |    |    |     --35.42%-- android.widget.TextView.\u003cinit\u003e\n               |    |    |    |                android.widget.Button.\u003cinit\u003e\n               |    |    |    |                art_quick_invoke_stub\n               |    |    |    |                art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)\n               |    |    |    |                art::InvokeConstructor(art::ScopedObjectAccessAlreadyRunnable const\u0026, art::ArtMethod*, art::ObjPtr\u003cart::mirror::Object\u003e, _jobject*)\n               |    |    |    |                art::Constructor_newInstance0(_JNIEnv*, _jobject*, _jobjectArray*)\n               |    |    |    |                art_jni_trampoline\n               |    |    |    |                java.lang.reflect.Constructor.newInstance\n               |    |    |    |                android.view.LayoutInflater.createView\n               |    |    |    |                com.android.internal.policy.PhoneLayoutInflater.onCreateView\n               |    |    |    |                android.view.LayoutInflater.onCreateView\n               |    |    |    |                android.view.LayoutInflater.onCreateView\n               |    |    |    |                android.view.LayoutInflater.createViewFromTag\n               |    |    |    |                android.view.LayoutInflater.rInflate\n               |    |    |    |                android.view.LayoutInflater.rInflate\n               |    |    |    |                android.view.LayoutInflater.rInflate\n               |    |    |    |                android.view.LayoutInflater.inflate\n               |    |    |    |                android.view.LayoutInflater.inflate\n               |    |    |    |                android.view.LayoutInflater.inflate\n               |    |    |    |\n               |    |    |     --37.06%-- com.android.internal.widget.ToolbarWidgetWrapper.\u003cinit\u003e\n               |    |    |\n               |    |     --22.08%-- android.content.res.ConfigurationBoundResourceCache.get\n               |    |                android.content.res.ConfigurationBoundResourceCache.getInstance\n               |    |                android.content.res.ResourcesImpl.loadComplexColorFromName\n               |    |                android.content.res.ResourcesImpl.loadColorStateList\n               |    |                android.content.res.Resources.loadColorStateList\n               |    |                android.content.res.TypedArray.getColorStateList\n               |    |                android.widget.TextView.readTextAppearance\n               |    |                android.widget.TextView.setTextAppearance\n               |    |                android.widget.TextView.setTextAppearance\n               |    |                android.widget.Toolbar.setTitle\n               |    |                com.android.wifi.x.com.android.internal.util.StateMachine$SmHandler.handleMessage\n               |    |                android.view.SurfaceControl.copyFrom\n\nEmpirical testing reveals that mThemedEntries usually contains around 14\nentries, at which HashMap is 35% faster than ArrayMap for lookups and\n54% faster [1] for insertions. The increased memory usage should be\nnegligible at this size, so we can safely convert the map to a HashMap\nin order to improve performance in this hotpath.\n\n[1] https://docs.google.com/spreadsheets/d/136UJS2yVlZyPx30KDNgj4AWldkp9xbzIcWkLFj9RGgk/edit\n\nTest: simpleperf record -a; verify that ThemedResourceCache no longer\n      appears under ArrayMap.binarySearchHashes\nChange-Id: I39e1c4b03fe0e60f933f02e253d2d3c4a483146f\nReviewed-on: https://review.statixos.com/c/android_frameworks_base/+/6195\nReviewed-by: Anay Wadhera \u003canay1018@gmail.com\u003e\nTested-by: Anay Wadhera \u003canay1018@gmail.com\u003e\n","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/StatiXOS/android_frameworks_base/commit/ffcbd72caabe77d3a49ad3b3815ece11bd668321"}],"resolve_conflicts_web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/StatiXOS/android_frameworks_base/commit/ffcbd72caabe77d3a49ad3b3815ece11bd668321"}]},"branch":"refs/heads/sc"}},"requirements":[],"submit_records":[{"status":"CLOSED","labels":[{"label":"Code-Review","status":"OK","applied_by":{"_account_id":1000000,"name":"Anay Wadhera","email":"anay1018@gmail.com","username":"anayw2001","avatars":[{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"status":"o fuc"}},{"label":"Verified","status":"OK","applied_by":{"_account_id":1000000,"name":"Anay Wadhera","email":"anay1018@gmail.com","username":"anayw2001","avatars":[{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/c4b5b98827974f96561d68d4b383b221.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}],"status":"o fuc"}}]}],"submit_requirements":[{"name":"Verified","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Verified\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}},{"name":"Code-Review","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Code-Review\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}}]}
