)]}'
{"id":"android_frameworks_base~6199","triplet_id":"android_frameworks_base~sc~I8fcc0e05813ff9ecf1eddca3cc6920e747adf4fc","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:15:17.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I8fcc0e05813ff9ecf1eddca3cc6920e747adf4fc","subject":"LayoutInflater: Opportunistically create views directly for performance","status":"MERGED","created":"2021-11-06 16:27:23.000000000","updated":"2021-11-09 00:15:17.000000000","submitted":"2021-11-09 00:15:17.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":"6199-sc-perf","meta_rev_id":"cb6317f8a4e6e076c7e52f2e67b6790829d79b4f","_number":6199,"virtual_id_number":6199,"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:15:17.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:15:17.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:15:17.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:15:17.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":"b9e0ddf2e386b8e7c5f17f33ca11274087e6c025","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":"92cfa9393efc7cd05e25a7ad38f9f1ccc6f0474f","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:15:06.000000000","message":"Patch Set 2: Patch Set 1 was rebased","accounts_in_message":[],"_revision_number":2},{"id":"e32fd176d0c1a213fa1abbfe5bf7c3440afaf783","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:15:17.000000000","message":"Patch Set 2: Verified+1 Code-Review+2","accounts_in_message":[],"_revision_number":2},{"id":"cb6317f8a4e6e076c7e52f2e67b6790829d79b4f","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:15:17.000000000","message":"Change has been successfully rebased and submitted as ec290811e0e87f5624d871be667455e989b0cb5f","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"ec290811e0e87f5624d871be667455e989b0cb5f","revisions":{"5b8be8b0e3d0ef6cf5c1ae1660c31b60d96dc910":{"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/99/6199/1","fetch":{"anonymous http":{"url":"https://github.com/StatiXOS/android_frameworks_base","ref":"refs/changes/99/6199/1","commands":{"Branch":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/99/6199/1 \u0026\u0026 git checkout -b change-6199 FETCH_HEAD","Checkout":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/99/6199/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/99/6199/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/99/6199/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://github.com/StatiXOS/android_frameworks_base refs/changes/99/6199/1","Reset To":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/99/6199/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"05813eaaa467d1fd702c269fedce39afcfe28765","subject":"SystemServiceRegistry: Replace ArrayMap with HashMap for performance","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/StatiXOS/android_frameworks_base/commit/05813eaaa467d1fd702c269fedce39afcfe28765"}]}],"author":{"name":"Danny Lin","email":"danny@kdrag0n.dev","date":"2021-04-06 22:30:33.000000000","tz":-420},"committer":{"name":"SahilSonar","email":"sss.sonar2003@gmail.com","date":"2021-11-06 16:26:32.000000000","tz":60},"subject":"LayoutInflater: Opportunistically create views directly for performance","message":"LayoutInflater: Opportunistically create views directly for performance\n\nWhen opening and closing activities in Settings, a significant amount of\nCPU time is spent performing JNI calls, as reported by simpleperf:\n\n0.39%     /system/framework/arm64/boot-framework.oat                                                                                                art_jni_trampoline\n\nReflection in LayoutInflater is responsible for a significant portion\nof the time spent in the JNI trampoline:\n\n6.08%     0.08%  /apex/com.android.art/javalib/arm64/boot.oat                                                                            art_jni_trampoline\n       |\n       -- art_jni_trampoline\n          |\n          |--12.38%-- java.lang.reflect.Constructor.newInstance\n          |    |--0.09%-- [hit in function]\n          |    |\n          |    |--88.32%-- android.view.LayoutInflater.createView\n          |    |    |\n          |    |    |--83.39%-- com.android.internal.policy.PhoneLayoutInflater.onCreateView\n          |    |    |           android.view.LayoutInflater.onCreateView\n          |    |    |           android.view.LayoutInflater.onCreateView\n          |    |    |           android.view.LayoutInflater.createViewFromTag\n          |    |    |    |\n          |    |    |    |--72.73%-- android.view.LayoutInflater.rInflate\n          |    |    |    |    |\n          |    |    |    |    |--57.90%-- android.view.LayoutInflater.rInflate\n          |    |    |    |    |    |\n          |    |    |    |    |    |--94.90%-- android.view.LayoutInflater.inflate\n          |    |    |    |    |    |           android.view.LayoutInflater.inflate\n          |    |    |    |    |    |    |--35.86%-- [hit in function]\n          |    |    |    |    |    |    |\n          |    |    |    |    |    |    |--58.15%-- androidx.preference.PreferenceGroupAdapter.onCreateViewHolder\n\nEmpirical testing of interacting with ~113 real-world apps reveals that\nmany of the most frequently-inflated views are framework classes:\n\n  13486 android.widget.LinearLayout\n   6930 android.widget.View\n   6447 android.widget.FrameLayout\n   5613 android.widget.ViewStub\n   5608 androidx.constraintlayout.widget.ConstraintLayout\n   4722 android.widget.TextView\n   4431 com.google.android.material.textview.MaterialTextView\n   3570 eu.faircode.email.FixedTextView\n   3044 android.widget.ImageView\n   2665 android.widget.RelativeLayout\n   1694 android.widget.Space\n    979 androidx.preference.internal.PreferenceImageView\n    926 androidx.appcompat.view.menu.ActionMenuItemView\n    884 androidx.appcompat.widget.AppCompatImageView\n    855 slack.uikit.components.icon.SKIconView\n    770 android.widget.ProgressBar\n    743 com.fastaccess.ui.widgets.FontTextView\n    541 androidx.recyclerview.widget.RecyclerView\n    442 androidx.appcompat.widget.AppCompatTextView\n    404 org.mariotaku.twidere.view.MediaPreviewImageView\n    393 com.moez.QKSMS.common.widget.QkTextView\n    382 android.widget.Button\n    365 slack.widgets.core.textview.ClickableLinkTextView\n    365 slack.uikit.components.avatar.SKAvatarView\n    352 com.google.android.libraries.inputmethod.widgets.SoftKeyView\n    351 com.android.launcher3.BubbleTextView\n    315 slack.widgets.core.viewcontainer.SingleViewContainer\n    315 slack.widgets.core.textview.MaxWidthTextView\n    313 androidx.constraintlayout.widget.Barrier\n    302 slack.app.ui.widgets.ReactionsLayout\n    302 slack.app.ui.messages.widgets.MessageLayout\n    302 slack.app.ui.messages.widgets.MessageHeader\n    290 com.android.launcher3.views.DoubleShadowBubbleTextView\n    285 com.android.internal.widget.CachingIconView\n    265 android.widget.ImageButton\n    262 androidx.constraintlayout.widget.Guideline\n    249 org.thoughtcrime.securesms.components.emoji.EmojiTextView\n    234 com.google.android.libraries.inputmethod.widgets.AutoSizeTextView\n    232 com.android.internal.widget.RemeasuringLinearLayout\n    228 android.view.ViewStub\n    227 android.app.ViewStub\n    226 android.webkit.ViewStub\n    221 im.vector.app.core.ui.views.ShieldImageView\n    219 androidx.constraintlayout.widget.Group\n    214 androidx.coordinatorlayout.widget.CoordinatorLayout\n    204 androidx.appcompat.widget.ContentFrameLayout\n\nAll framework classes seen:\n\n  13486 android.widget.LinearLayout\n   6930 android.widget.View\n   6447 android.widget.FrameLayout\n   5613 android.widget.ViewStub\n   4722 android.widget.TextView\n   3044 android.widget.ImageView\n   2665 android.widget.RelativeLayout\n   1694 android.widget.Space\n    770 android.widget.ProgressBar\n    382 android.widget.Button\n    265 android.widget.ImageButton\n    228 android.view.ViewStub\n    227 android.app.ViewStub\n    226 android.webkit.ViewStub\n    145 android.widget.Switch\n    117 android.widget.DateTimeView\n     86 android.widget.Toolbar\n     68 android.widget.HorizontalScrollView\n     67 android.widget.ScrollView\n     65 android.widget.NotificationHeaderView\n     65 android.webkit.NotificationHeaderView\n     65 android.view.NotificationHeaderView\n     65 android.app.NotificationHeaderView\n     63 android.webkit.View\n     63 android.view.View\n     62 android.app.View\n     58 android.widget.ListView\n     50 android.widget.QuickContactBadge\n     40 android.widget.SeekBar\n     38 android.widget.CheckBox\n     16 android.widget.GridLayout\n     15 android.widget.TableRow\n     15 android.widget.RadioGroup\n     15 android.widget.Chronometer\n     13 android.widget.ViewFlipper\n      9 android.widget.Spinner\n      8 android.widget.ViewSwitcher\n      8 android.widget.TextSwitcher\n      8 android.widget.SurfaceView\n      8 android.widget.CheckedTextView\n      8 android.preference.PreferenceFrameLayout\n      7 android.widget.TwoLineListItem\n      5 android.widget.TableLayout\n      5 android.widget.EditText\n      3 android.widget.TabWidget\n      3 android.widget.TabHost\n      2 android.widget.ZoomButton\n      2 android.widget.TextureView\n      2 android.widget.ExpandableListView\n      2 android.webkit.TextureView\n      2 android.view.TextureView\n      2 android.app.TextureView\n      1 android.widget.WebView\n      1 android.widget.ViewAnimator\n      1 android.widget.TextClock\n      1 android.widget.AutoCompleteTextView\n      1 android.webkit.WebView\n      1 android.webkit.SurfaceView\n      1 android.view.SurfaceView\n      1 android.app.SurfaceView\n\nUnfortunately, replacing reflection with MethodHandle constructors is\ncounter-productive in terms of performance:\n\n    Constructor direct:             create\u003d5    invoke\u003d42\n    Constructor reflection:         create\u003d310  invoke\u003d433\n    Constructor MethodHandle:       create\u003d3283 invoke\u003d3489\n    Constructor MethodHandle-exact: create\u003d3273 invoke\u003d3453\n\nTo reduce the performance impact of slow reflection, we can leverage the\nfact that the most frequently-inflated classes are from the framework,\nand hard-code direct constructor references for them in a switch-case\nblock. Reflection will automatically be used as a fallback for custom\napp views.\n\nTest: simpleperf record -a; verify that Constructor.newInstance -\u003e\n      LayoutInflater no longer appears at the top under\n      art_jni_trampoline\nChange-Id: I8fcc0e05813ff9ecf1eddca3cc6920e747adf4fc\n","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/StatiXOS/android_frameworks_base/commit/5b8be8b0e3d0ef6cf5c1ae1660c31b60d96dc910"}],"resolve_conflicts_web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/StatiXOS/android_frameworks_base/commit/5b8be8b0e3d0ef6cf5c1ae1660c31b60d96dc910"}]},"branch":"refs/heads/sc"},"e4d0d645a82d27d12340ecf956aedc197499c2a1":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2021-11-09 00:15:06.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/99/6199/2","fetch":{"anonymous http":{"url":"https://github.com/StatiXOS/android_frameworks_base","ref":"refs/changes/99/6199/2","commands":{"Branch":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/99/6199/2 \u0026\u0026 git checkout -b change-6199 FETCH_HEAD","Checkout":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/99/6199/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/99/6199/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/99/6199/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://github.com/StatiXOS/android_frameworks_base refs/changes/99/6199/2","Reset To":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/99/6199/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"b77c29c00f310970135df0dc3b6ce8a6cec371b4","subject":"SystemServiceRegistry: Replace ArrayMap with HashMap for performance","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/StatiXOS/android_frameworks_base/commit/b77c29c00f310970135df0dc3b6ce8a6cec371b4"}]}],"author":{"name":"Danny Lin","email":"danny@kdrag0n.dev","date":"2021-04-06 22:30:33.000000000","tz":-420},"committer":{"name":"Anay Wadhera","email":"anay1018@gmail.com","date":"2021-11-09 00:15:06.000000000","tz":60},"subject":"LayoutInflater: Opportunistically create views directly for performance","message":"LayoutInflater: Opportunistically create views directly for performance\n\nWhen opening and closing activities in Settings, a significant amount of\nCPU time is spent performing JNI calls, as reported by simpleperf:\n\n0.39%     /system/framework/arm64/boot-framework.oat                                                                                                art_jni_trampoline\n\nReflection in LayoutInflater is responsible for a significant portion\nof the time spent in the JNI trampoline:\n\n6.08%     0.08%  /apex/com.android.art/javalib/arm64/boot.oat                                                                            art_jni_trampoline\n       |\n       -- art_jni_trampoline\n          |\n          |--12.38%-- java.lang.reflect.Constructor.newInstance\n          |    |--0.09%-- [hit in function]\n          |    |\n          |    |--88.32%-- android.view.LayoutInflater.createView\n          |    |    |\n          |    |    |--83.39%-- com.android.internal.policy.PhoneLayoutInflater.onCreateView\n          |    |    |           android.view.LayoutInflater.onCreateView\n          |    |    |           android.view.LayoutInflater.onCreateView\n          |    |    |           android.view.LayoutInflater.createViewFromTag\n          |    |    |    |\n          |    |    |    |--72.73%-- android.view.LayoutInflater.rInflate\n          |    |    |    |    |\n          |    |    |    |    |--57.90%-- android.view.LayoutInflater.rInflate\n          |    |    |    |    |    |\n          |    |    |    |    |    |--94.90%-- android.view.LayoutInflater.inflate\n          |    |    |    |    |    |           android.view.LayoutInflater.inflate\n          |    |    |    |    |    |    |--35.86%-- [hit in function]\n          |    |    |    |    |    |    |\n          |    |    |    |    |    |    |--58.15%-- androidx.preference.PreferenceGroupAdapter.onCreateViewHolder\n\nEmpirical testing of interacting with ~113 real-world apps reveals that\nmany of the most frequently-inflated views are framework classes:\n\n  13486 android.widget.LinearLayout\n   6930 android.widget.View\n   6447 android.widget.FrameLayout\n   5613 android.widget.ViewStub\n   5608 androidx.constraintlayout.widget.ConstraintLayout\n   4722 android.widget.TextView\n   4431 com.google.android.material.textview.MaterialTextView\n   3570 eu.faircode.email.FixedTextView\n   3044 android.widget.ImageView\n   2665 android.widget.RelativeLayout\n   1694 android.widget.Space\n    979 androidx.preference.internal.PreferenceImageView\n    926 androidx.appcompat.view.menu.ActionMenuItemView\n    884 androidx.appcompat.widget.AppCompatImageView\n    855 slack.uikit.components.icon.SKIconView\n    770 android.widget.ProgressBar\n    743 com.fastaccess.ui.widgets.FontTextView\n    541 androidx.recyclerview.widget.RecyclerView\n    442 androidx.appcompat.widget.AppCompatTextView\n    404 org.mariotaku.twidere.view.MediaPreviewImageView\n    393 com.moez.QKSMS.common.widget.QkTextView\n    382 android.widget.Button\n    365 slack.widgets.core.textview.ClickableLinkTextView\n    365 slack.uikit.components.avatar.SKAvatarView\n    352 com.google.android.libraries.inputmethod.widgets.SoftKeyView\n    351 com.android.launcher3.BubbleTextView\n    315 slack.widgets.core.viewcontainer.SingleViewContainer\n    315 slack.widgets.core.textview.MaxWidthTextView\n    313 androidx.constraintlayout.widget.Barrier\n    302 slack.app.ui.widgets.ReactionsLayout\n    302 slack.app.ui.messages.widgets.MessageLayout\n    302 slack.app.ui.messages.widgets.MessageHeader\n    290 com.android.launcher3.views.DoubleShadowBubbleTextView\n    285 com.android.internal.widget.CachingIconView\n    265 android.widget.ImageButton\n    262 androidx.constraintlayout.widget.Guideline\n    249 org.thoughtcrime.securesms.components.emoji.EmojiTextView\n    234 com.google.android.libraries.inputmethod.widgets.AutoSizeTextView\n    232 com.android.internal.widget.RemeasuringLinearLayout\n    228 android.view.ViewStub\n    227 android.app.ViewStub\n    226 android.webkit.ViewStub\n    221 im.vector.app.core.ui.views.ShieldImageView\n    219 androidx.constraintlayout.widget.Group\n    214 androidx.coordinatorlayout.widget.CoordinatorLayout\n    204 androidx.appcompat.widget.ContentFrameLayout\n\nAll framework classes seen:\n\n  13486 android.widget.LinearLayout\n   6930 android.widget.View\n   6447 android.widget.FrameLayout\n   5613 android.widget.ViewStub\n   4722 android.widget.TextView\n   3044 android.widget.ImageView\n   2665 android.widget.RelativeLayout\n   1694 android.widget.Space\n    770 android.widget.ProgressBar\n    382 android.widget.Button\n    265 android.widget.ImageButton\n    228 android.view.ViewStub\n    227 android.app.ViewStub\n    226 android.webkit.ViewStub\n    145 android.widget.Switch\n    117 android.widget.DateTimeView\n     86 android.widget.Toolbar\n     68 android.widget.HorizontalScrollView\n     67 android.widget.ScrollView\n     65 android.widget.NotificationHeaderView\n     65 android.webkit.NotificationHeaderView\n     65 android.view.NotificationHeaderView\n     65 android.app.NotificationHeaderView\n     63 android.webkit.View\n     63 android.view.View\n     62 android.app.View\n     58 android.widget.ListView\n     50 android.widget.QuickContactBadge\n     40 android.widget.SeekBar\n     38 android.widget.CheckBox\n     16 android.widget.GridLayout\n     15 android.widget.TableRow\n     15 android.widget.RadioGroup\n     15 android.widget.Chronometer\n     13 android.widget.ViewFlipper\n      9 android.widget.Spinner\n      8 android.widget.ViewSwitcher\n      8 android.widget.TextSwitcher\n      8 android.widget.SurfaceView\n      8 android.widget.CheckedTextView\n      8 android.preference.PreferenceFrameLayout\n      7 android.widget.TwoLineListItem\n      5 android.widget.TableLayout\n      5 android.widget.EditText\n      3 android.widget.TabWidget\n      3 android.widget.TabHost\n      2 android.widget.ZoomButton\n      2 android.widget.TextureView\n      2 android.widget.ExpandableListView\n      2 android.webkit.TextureView\n      2 android.view.TextureView\n      2 android.app.TextureView\n      1 android.widget.WebView\n      1 android.widget.ViewAnimator\n      1 android.widget.TextClock\n      1 android.widget.AutoCompleteTextView\n      1 android.webkit.WebView\n      1 android.webkit.SurfaceView\n      1 android.view.SurfaceView\n      1 android.app.SurfaceView\n\nUnfortunately, replacing reflection with MethodHandle constructors is\ncounter-productive in terms of performance:\n\n    Constructor direct:             create\u003d5    invoke\u003d42\n    Constructor reflection:         create\u003d310  invoke\u003d433\n    Constructor MethodHandle:       create\u003d3283 invoke\u003d3489\n    Constructor MethodHandle-exact: create\u003d3273 invoke\u003d3453\n\nTo reduce the performance impact of slow reflection, we can leverage the\nfact that the most frequently-inflated classes are from the framework,\nand hard-code direct constructor references for them in a switch-case\nblock. Reflection will automatically be used as a fallback for custom\napp views.\n\nTest: simpleperf record -a; verify that Constructor.newInstance -\u003e\n      LayoutInflater no longer appears at the top under\n      art_jni_trampoline\nChange-Id: I8fcc0e05813ff9ecf1eddca3cc6920e747adf4fc\n","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/StatiXOS/android_frameworks_base/commit/e4d0d645a82d27d12340ecf956aedc197499c2a1"}],"resolve_conflicts_web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/StatiXOS/android_frameworks_base/commit/e4d0d645a82d27d12340ecf956aedc197499c2a1"}]},"branch":"refs/heads/sc","description":"Rebase"},"ec290811e0e87f5624d871be667455e989b0cb5f":{"kind":"NO_CODE_CHANGE","_number":3,"created":"2021-11-09 00:15:17.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/99/6199/3","fetch":{"anonymous http":{"url":"https://github.com/StatiXOS/android_frameworks_base","ref":"refs/changes/99/6199/3","commands":{"Branch":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/99/6199/3 \u0026\u0026 git checkout -b change-6199 FETCH_HEAD","Checkout":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/99/6199/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/99/6199/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/99/6199/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://github.com/StatiXOS/android_frameworks_base refs/changes/99/6199/3","Reset To":"git fetch https://github.com/StatiXOS/android_frameworks_base refs/changes/99/6199/3 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"b77c29c00f310970135df0dc3b6ce8a6cec371b4","subject":"SystemServiceRegistry: Replace ArrayMap with HashMap for performance","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/StatiXOS/android_frameworks_base/commit/b77c29c00f310970135df0dc3b6ce8a6cec371b4"}]}],"author":{"name":"Danny Lin","email":"danny@kdrag0n.dev","date":"2021-04-06 22:30:33.000000000","tz":-420},"committer":{"name":"StatiXOS Gerrit","email":"statixgerrit@gmail.com","date":"2021-11-09 00:15:17.000000000","tz":60},"subject":"LayoutInflater: Opportunistically create views directly for performance","message":"LayoutInflater: Opportunistically create views directly for performance\n\nWhen opening and closing activities in Settings, a significant amount of\nCPU time is spent performing JNI calls, as reported by simpleperf:\n\n0.39%     /system/framework/arm64/boot-framework.oat                                                                                                art_jni_trampoline\n\nReflection in LayoutInflater is responsible for a significant portion\nof the time spent in the JNI trampoline:\n\n6.08%     0.08%  /apex/com.android.art/javalib/arm64/boot.oat                                                                            art_jni_trampoline\n       |\n       -- art_jni_trampoline\n          |\n          |--12.38%-- java.lang.reflect.Constructor.newInstance\n          |    |--0.09%-- [hit in function]\n          |    |\n          |    |--88.32%-- android.view.LayoutInflater.createView\n          |    |    |\n          |    |    |--83.39%-- com.android.internal.policy.PhoneLayoutInflater.onCreateView\n          |    |    |           android.view.LayoutInflater.onCreateView\n          |    |    |           android.view.LayoutInflater.onCreateView\n          |    |    |           android.view.LayoutInflater.createViewFromTag\n          |    |    |    |\n          |    |    |    |--72.73%-- android.view.LayoutInflater.rInflate\n          |    |    |    |    |\n          |    |    |    |    |--57.90%-- android.view.LayoutInflater.rInflate\n          |    |    |    |    |    |\n          |    |    |    |    |    |--94.90%-- android.view.LayoutInflater.inflate\n          |    |    |    |    |    |           android.view.LayoutInflater.inflate\n          |    |    |    |    |    |    |--35.86%-- [hit in function]\n          |    |    |    |    |    |    |\n          |    |    |    |    |    |    |--58.15%-- androidx.preference.PreferenceGroupAdapter.onCreateViewHolder\n\nEmpirical testing of interacting with ~113 real-world apps reveals that\nmany of the most frequently-inflated views are framework classes:\n\n  13486 android.widget.LinearLayout\n   6930 android.widget.View\n   6447 android.widget.FrameLayout\n   5613 android.widget.ViewStub\n   5608 androidx.constraintlayout.widget.ConstraintLayout\n   4722 android.widget.TextView\n   4431 com.google.android.material.textview.MaterialTextView\n   3570 eu.faircode.email.FixedTextView\n   3044 android.widget.ImageView\n   2665 android.widget.RelativeLayout\n   1694 android.widget.Space\n    979 androidx.preference.internal.PreferenceImageView\n    926 androidx.appcompat.view.menu.ActionMenuItemView\n    884 androidx.appcompat.widget.AppCompatImageView\n    855 slack.uikit.components.icon.SKIconView\n    770 android.widget.ProgressBar\n    743 com.fastaccess.ui.widgets.FontTextView\n    541 androidx.recyclerview.widget.RecyclerView\n    442 androidx.appcompat.widget.AppCompatTextView\n    404 org.mariotaku.twidere.view.MediaPreviewImageView\n    393 com.moez.QKSMS.common.widget.QkTextView\n    382 android.widget.Button\n    365 slack.widgets.core.textview.ClickableLinkTextView\n    365 slack.uikit.components.avatar.SKAvatarView\n    352 com.google.android.libraries.inputmethod.widgets.SoftKeyView\n    351 com.android.launcher3.BubbleTextView\n    315 slack.widgets.core.viewcontainer.SingleViewContainer\n    315 slack.widgets.core.textview.MaxWidthTextView\n    313 androidx.constraintlayout.widget.Barrier\n    302 slack.app.ui.widgets.ReactionsLayout\n    302 slack.app.ui.messages.widgets.MessageLayout\n    302 slack.app.ui.messages.widgets.MessageHeader\n    290 com.android.launcher3.views.DoubleShadowBubbleTextView\n    285 com.android.internal.widget.CachingIconView\n    265 android.widget.ImageButton\n    262 androidx.constraintlayout.widget.Guideline\n    249 org.thoughtcrime.securesms.components.emoji.EmojiTextView\n    234 com.google.android.libraries.inputmethod.widgets.AutoSizeTextView\n    232 com.android.internal.widget.RemeasuringLinearLayout\n    228 android.view.ViewStub\n    227 android.app.ViewStub\n    226 android.webkit.ViewStub\n    221 im.vector.app.core.ui.views.ShieldImageView\n    219 androidx.constraintlayout.widget.Group\n    214 androidx.coordinatorlayout.widget.CoordinatorLayout\n    204 androidx.appcompat.widget.ContentFrameLayout\n\nAll framework classes seen:\n\n  13486 android.widget.LinearLayout\n   6930 android.widget.View\n   6447 android.widget.FrameLayout\n   5613 android.widget.ViewStub\n   4722 android.widget.TextView\n   3044 android.widget.ImageView\n   2665 android.widget.RelativeLayout\n   1694 android.widget.Space\n    770 android.widget.ProgressBar\n    382 android.widget.Button\n    265 android.widget.ImageButton\n    228 android.view.ViewStub\n    227 android.app.ViewStub\n    226 android.webkit.ViewStub\n    145 android.widget.Switch\n    117 android.widget.DateTimeView\n     86 android.widget.Toolbar\n     68 android.widget.HorizontalScrollView\n     67 android.widget.ScrollView\n     65 android.widget.NotificationHeaderView\n     65 android.webkit.NotificationHeaderView\n     65 android.view.NotificationHeaderView\n     65 android.app.NotificationHeaderView\n     63 android.webkit.View\n     63 android.view.View\n     62 android.app.View\n     58 android.widget.ListView\n     50 android.widget.QuickContactBadge\n     40 android.widget.SeekBar\n     38 android.widget.CheckBox\n     16 android.widget.GridLayout\n     15 android.widget.TableRow\n     15 android.widget.RadioGroup\n     15 android.widget.Chronometer\n     13 android.widget.ViewFlipper\n      9 android.widget.Spinner\n      8 android.widget.ViewSwitcher\n      8 android.widget.TextSwitcher\n      8 android.widget.SurfaceView\n      8 android.widget.CheckedTextView\n      8 android.preference.PreferenceFrameLayout\n      7 android.widget.TwoLineListItem\n      5 android.widget.TableLayout\n      5 android.widget.EditText\n      3 android.widget.TabWidget\n      3 android.widget.TabHost\n      2 android.widget.ZoomButton\n      2 android.widget.TextureView\n      2 android.widget.ExpandableListView\n      2 android.webkit.TextureView\n      2 android.view.TextureView\n      2 android.app.TextureView\n      1 android.widget.WebView\n      1 android.widget.ViewAnimator\n      1 android.widget.TextClock\n      1 android.widget.AutoCompleteTextView\n      1 android.webkit.WebView\n      1 android.webkit.SurfaceView\n      1 android.view.SurfaceView\n      1 android.app.SurfaceView\n\nUnfortunately, replacing reflection with MethodHandle constructors is\ncounter-productive in terms of performance:\n\n    Constructor direct:             create\u003d5    invoke\u003d42\n    Constructor reflection:         create\u003d310  invoke\u003d433\n    Constructor MethodHandle:       create\u003d3283 invoke\u003d3489\n    Constructor MethodHandle-exact: create\u003d3273 invoke\u003d3453\n\nTo reduce the performance impact of slow reflection, we can leverage the\nfact that the most frequently-inflated classes are from the framework,\nand hard-code direct constructor references for them in a switch-case\nblock. Reflection will automatically be used as a fallback for custom\napp views.\n\nTest: simpleperf record -a; verify that Constructor.newInstance -\u003e\n      LayoutInflater no longer appears at the top under\n      art_jni_trampoline\nChange-Id: I8fcc0e05813ff9ecf1eddca3cc6920e747adf4fc\nReviewed-on: https://review.statixos.com/c/android_frameworks_base/+/6199\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/ec290811e0e87f5624d871be667455e989b0cb5f"}],"resolve_conflicts_web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/StatiXOS/android_frameworks_base/commit/ec290811e0e87f5624d871be667455e989b0cb5f"}]},"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":{}}}]}
