summaryrefslogtreecommitdiff
path: root/apct-tests/perftests/core
diff options
context:
space:
mode:
authorSeigo Nonaka <nona@google.com>2019-04-23 13:21:27 -0700
committerSeigo Nonaka <nona@google.com>2019-04-23 13:21:27 -0700
commit37d181673bfa92b9f26fdcc96c4d68b7b164c14e (patch)
treebe0bce8ebaaf2555e2bbf1099240b80b2ac0726c /apct-tests/perftests/core
parentac8913be194a2a513218107dfe0da78de17a834e (diff)
Fix performance regression by fixing keys used in Typeface.Builder
The key used in Typeface.Builder is different from the key used in findFromCache method. The problem is key generation in Typeface.Builder since the key should be created from requested parameters not the actual font styles. Here is the raw performance differences on walleye-userdebug android.graphics.perftests.TypefaceCreatePerfTest(us): createFromResources: 248 -> 23: (-225, -90.7%) Bug: 131167183 Test: manually collected perf test result. Change-Id: Idea25095979707ac84b7f4bc1ede0c2daefd6127
Diffstat (limited to 'apct-tests/perftests/core')
-rw-r--r--apct-tests/perftests/core/src/android/graphics/perftests/TypefaceCreatePerfTest.java14
1 files changed, 14 insertions, 0 deletions
diff --git a/apct-tests/perftests/core/src/android/graphics/perftests/TypefaceCreatePerfTest.java b/apct-tests/perftests/core/src/android/graphics/perftests/TypefaceCreatePerfTest.java
index d6e8ab2516a8..884745699789 100644
--- a/apct-tests/perftests/core/src/android/graphics/perftests/TypefaceCreatePerfTest.java
+++ b/apct-tests/perftests/core/src/android/graphics/perftests/TypefaceCreatePerfTest.java
@@ -18,6 +18,7 @@ package android.graphics.perftests;
import android.content.Context;
import android.content.res.AssetManager;
+import android.content.res.Resources;
import android.graphics.Typeface;
import android.perftests.utils.BenchmarkState;
import android.perftests.utils.PerfStatusReporter;
@@ -26,6 +27,8 @@ import androidx.test.InstrumentationRegistry;
import androidx.test.filters.LargeTest;
import androidx.test.runner.AndroidJUnit4;
+import com.android.perftests.core.R;
+
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -104,4 +107,15 @@ public class TypefaceCreatePerfTest {
outFile.delete();
}
+
+ @Test
+ public void testCreate_fromResources() {
+ BenchmarkState state = mPerfStatusReporter.getBenchmarkState();
+ final Resources r = InstrumentationRegistry.getContext().getResources();
+
+ while (state.keepRunning()) {
+ Typeface face = r.getFont(R.font.samplefont);
+ }
+ }
+
}