Pre-cache filter results
This change adds a cache layer for the return of
shouldFilterApplicationInternal in AppsFilter. This cuts most operations
that rely on app filtering nearly in half by removing a good deal of
branching that used to exist on the critical path for a crosshatch.
Before this CL:
android.os.PackageManagerPerfTest#testGetApplicationInfoWithFiltering:
getApplicationInfoWithFiltering_mean: 983719
getApplicationInfoWithFiltering_standardDeviation: 120061
getApplicationInfoWithFiltering_median: 1061674
getApplicationInfoWithFiltering_min: 827489
android.multiuser.UserLifecycleTests#createAndStartUser:
Mean (ms): 4243.10
After this CL:
android.os.PackageManagerPerfTest#testGetApplicationInfoWithFiltering:
getApplicationInfoWithFiltering_mean: 426340
getApplicationInfoWithFiltering_standardDeviation: 18861
getApplicationInfoWithFiltering_median: 427002
getApplicationInfoWithFiltering_min: 407887
android.multiuser.UserLifecycleTests#createAndStartUser:
Mean (ms): 3387.25
Test: atest AppEnumerationTests AppsFilterTest PackageManagerPerfTests
Fixes: 150405193
Change-Id: I3fb7d7cf8b98c7623caf04544523f1bbd07d1795
Merged-In: I3fb7d7cf8b98c7623caf04544523f1bbd07d1795
3 files changed