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
This commit is contained in:
Eric Holk
2019-11-13 14:06:01 -08:00
parent 7c93dc5e45
commit 12daf359e7
3 changed files with 42 additions and 0 deletions

View File

@@ -17,6 +17,7 @@
android_app {
name: "startop_test_app",
srcs: [
"src/ApplicationBenchmarks.java",
"src/ComplexLayoutInflationActivity.java",
"src/CPUIntensiveBenchmarkActivity.java",
"src/CPUIntensiveBenchmarks.java",

View File

@@ -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);
});
}
}

View File

@@ -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);