summaryrefslogtreecommitdiff
path: root/startop
diff options
context:
space:
mode:
authorEric Holk <eholk@google.com>2019-11-13 14:06:01 -0800
committerEric Holk <eholk@google.com>2019-11-15 17:09:02 +0000
commit12daf359e7b64a096057bdc8a809c55ebdf92e5b (patch)
treefb0c5b62bb981fe02dd10c00f1a861c78839d90a /startop
parent7c93dc5e45ba7420c877b4e80fd517360068ab1f (diff)
Add Layout Inflater Interactive Microbenchmark
This allows us to quickly test small changes in layout inflation performance. TEST: mma && adb install $OUT/system/app/startop_test_app/startop_test_app.apk; Run the app Change-Id: I396157686d1e16ae2a7083a070fe1f622c05b15f
Diffstat (limited to 'startop')
-rw-r--r--startop/apps/test/Android.bp1
-rw-r--r--startop/apps/test/src/ApplicationBenchmarks.java39
-rw-r--r--startop/apps/test/src/InteractiveMicrobenchmarkActivity.java2
3 files changed, 42 insertions, 0 deletions
diff --git a/startop/apps/test/Android.bp b/startop/apps/test/Android.bp
index c7c70db60a72..f42c755e3efd 100644
--- a/startop/apps/test/Android.bp
+++ b/startop/apps/test/Android.bp
@@ -17,6 +17,7 @@
android_app {
name: "startop_test_app",
srcs: [
+ "src/ApplicationBenchmarks.java",
"src/ComplexLayoutInflationActivity.java",
"src/CPUIntensiveBenchmarkActivity.java",
"src/CPUIntensiveBenchmarks.java",
diff --git a/startop/apps/test/src/ApplicationBenchmarks.java b/startop/apps/test/src/ApplicationBenchmarks.java
new file mode 100644
index 000000000000..7d71916e6d8d
--- /dev/null
+++ b/startop/apps/test/src/ApplicationBenchmarks.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2019 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 com.android.startop.test;
+
+import android.app.Activity;
+import android.view.LayoutInflater;
+
+final class ApplicationBenchmarks {
+
+ public static final void initializeBenchmarks(Activity parent, BenchmarkRunner benchmarks) {
+ LayoutInflater inflater = LayoutInflater.from(parent);
+
+ benchmarks.addBenchmark("Complex Layout", () -> {
+ inflater.inflate(R.layout.activity_main, null);
+ });
+
+ benchmarks.addBenchmark("TextView List Layout", () -> {
+ inflater.inflate(R.layout.textview_list, null);
+ });
+
+ benchmarks.addBenchmark("FrameLayout List Layout", () -> {
+ inflater.inflate(R.layout.framelayout_list, null);
+ });
+ }
+}
diff --git a/startop/apps/test/src/InteractiveMicrobenchmarkActivity.java b/startop/apps/test/src/InteractiveMicrobenchmarkActivity.java
index 8ed7f6ae2109..c3839c17e4d8 100644
--- a/startop/apps/test/src/InteractiveMicrobenchmarkActivity.java
+++ b/startop/apps/test/src/InteractiveMicrobenchmarkActivity.java
@@ -36,6 +36,8 @@ public class InteractiveMicrobenchmarkActivity extends Activity implements Bench
addBenchmark("Empty", () -> {
});
addHeader("Application Benchmarks");
+ ApplicationBenchmarks.initializeBenchmarks(this, this);
+ addHeader("CPU Intensive Benchmarks");
CPUIntensiveBenchmarks.initializeBenchmarks(this, this);
addHeader("Init Check Overhead Benchmarks");
InitCheckOverheadBenchmarks.initializeBenchmarks(this, this);