diff options
author | Seigo Nonaka <nona@google.com> | 2021-05-14 13:53:56 -0700 |
---|---|---|
committer | Seigo Nonaka <nona@google.com> | 2021-05-14 13:55:55 -0700 |
commit | 09439752da5b91454e41fed51bf99d71fe76dcfd (patch) | |
tree | 9556c30b8e7bc1eb617d74329fa9bd52e2361de4 | |
parent | 01cd8a9d0ab4b485a8259319cfc0a6162620441c (diff) |
Add perf test for SystemFonts.getAvailableFonts
Bug: 188201287
Test: atest SystemFontsPerfTest
Change-Id: Id08a53e980a012a682e95e7b41d363aae31c1232
-rw-r--r-- | apct-tests/perftests/core/src/android/text/SystemFontsPerfTest.java | 49 | ||||
-rw-r--r-- | graphics/java/android/graphics/fonts/SystemFonts.java | 9 |
2 files changed, 58 insertions, 0 deletions
diff --git a/apct-tests/perftests/core/src/android/text/SystemFontsPerfTest.java b/apct-tests/perftests/core/src/android/text/SystemFontsPerfTest.java new file mode 100644 index 000000000000..5d744cdb003a --- /dev/null +++ b/apct-tests/perftests/core/src/android/text/SystemFontsPerfTest.java @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.text; + +import android.graphics.fonts.SystemFonts; +import android.perftests.utils.BenchmarkState; +import android.perftests.utils.PerfStatusReporter; + +import androidx.test.filters.LargeTest; +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + + +@LargeTest +@RunWith(AndroidJUnit4.class) +public class SystemFontsPerfTest { + @Rule + public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); + + @Test + public void getAvailableFonts() { + final BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + state.pauseTiming(); + SystemFonts.resetAvailableFonts(); + System.gc(); + state.resumeTiming(); + + SystemFonts.getAvailableFonts(); + } + } +} diff --git a/graphics/java/android/graphics/fonts/SystemFonts.java b/graphics/java/android/graphics/fonts/SystemFonts.java index 1d392d2c27b5..0da2b5146fb5 100644 --- a/graphics/java/android/graphics/fonts/SystemFonts.java +++ b/graphics/java/android/graphics/fonts/SystemFonts.java @@ -85,6 +85,15 @@ public final class SystemFonts { } } + /** + * @hide + */ + public static void resetAvailableFonts() { + synchronized (LOCK) { + sAvailableFonts = null; + } + } + private static @Nullable ByteBuffer mmap(@NonNull String fullPath) { try (FileInputStream file = new FileInputStream(fullPath)) { final FileChannel fileChannel = file.getChannel(); |