Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 121f0b4a authored by Miguel Aranda's avatar Miguel Aranda Committed by Automerger Merge Worker
Browse files

Merge "Change parameterization type in libcore benchmarks." am: 11915f36

parents ecd8730d 11915f36
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -43,6 +43,9 @@ android_test {
        "apct-perftests-resources-manager-apps",
        "apct-perftests-utils",
        "collector-device-lib",
        "compatibility-device-util-axt",
        "junit",
        "junit-params",
        "core-tests-support",
        "guava",
    ],
+15 −15
Original line number Diff line number Diff line
@@ -20,18 +20,19 @@ import android.perftests.utils.BenchmarkState;
import android.perftests.utils.PerfStatusReporter;
import android.test.suitebuilder.annotation.LargeTest;

import org.junit.Before;
import junitparams.JUnitParamsRunner;
import junitparams.Parameters;

import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;

import java.lang.reflect.Array;
import java.lang.reflect.Constructor;
import java.util.Arrays;
import java.util.Collection;

@RunWith(Parameterized.class)
@RunWith(JUnitParamsRunner.class)
@LargeTest
public class DeepArrayOpsPerfTest {
    @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter();
@@ -39,19 +40,14 @@ public class DeepArrayOpsPerfTest {
    private Object[] mArray;
    private Object[] mArray2;

    @Parameterized.Parameter(0)
    public int mArrayLength;

    @Parameterized.Parameters(name = "mArrayLength({0})")
    public static Collection<Object[]> data() {
    public static Collection<Object[]> getData() {
        return Arrays.asList(new Object[][] {{1}, {4}, {16}, {32}, {2048}});
    }

    @Before
    public void setUp() throws Exception {
        mArray = new Object[mArrayLength * 14];
        mArray2 = new Object[mArrayLength * 14];
        for (int i = 0; i < mArrayLength; i += 14) {
    public void setUp(int arrayLength) throws Exception {
        mArray = new Object[arrayLength * 14];
        mArray2 = new Object[arrayLength * 14];
        for (int i = 0; i < arrayLength; i += 14) {
            mArray[i] = new IntWrapper(i);
            mArray2[i] = new IntWrapper(i);

@@ -99,7 +95,9 @@ public class DeepArrayOpsPerfTest {
    }

    @Test
    public void deepHashCode() {
    @Parameters(method = "getData")
    public void deepHashCode(int arrayLength) throws Exception {
        setUp(arrayLength);
        BenchmarkState state = mPerfStatusReporter.getBenchmarkState();
        while (state.keepRunning()) {
            Arrays.deepHashCode(mArray);
@@ -107,7 +105,9 @@ public class DeepArrayOpsPerfTest {
    }

    @Test
    public void deepEquals() {
    @Parameters(method = "getData")
    public void deepEquals(int arrayLength) throws Exception {
        setUp(arrayLength);
        BenchmarkState state = mPerfStatusReporter.getBenchmarkState();
        while (state.keepRunning()) {
            Arrays.deepEquals(mArray, mArray2);
+21 −16
Original line number Diff line number Diff line
@@ -20,22 +20,22 @@ import android.perftests.utils.BenchmarkState;
import android.perftests.utils.PerfStatusReporter;
import android.test.suitebuilder.annotation.LargeTest;

import junitparams.JUnitParamsRunner;
import junitparams.Parameters;

import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

import java.util.Arrays;
import java.util.Collection;

@RunWith(Parameterized.class)
@RunWith(JUnitParamsRunner.class)
@LargeTest
public class SystemArrayCopyPerfTest {
    @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter();

    @Parameters(name = "arrayLength={0}")
    public static Collection<Object[]> data() {
    public static Collection<Object[]> getData() {
        return Arrays.asList(
                new Object[][] {
                    {2}, {4}, {8}, {16}, {32}, {64}, {128}, {256}, {512}, {1024}, {2048}, {4096},
@@ -43,12 +43,10 @@ public class SystemArrayCopyPerfTest {
                });
    }

    @Parameterized.Parameter(0)
    public int arrayLength;

    // Provides benchmarking for different types of arrays using the arraycopy function.
    @Test
    public void timeSystemCharArrayCopy() {
    @Parameters(method = "getData")
    public void timeSystemCharArrayCopy(int arrayLength) {
        final int len = arrayLength;
        char[] src = new char[len];
        char[] dst = new char[len];
@@ -59,7 +57,8 @@ public class SystemArrayCopyPerfTest {
    }

    @Test
    public void timeSystemByteArrayCopy() {
    @Parameters(method = "getData")
    public void timeSystemByteArrayCopy(int arrayLength) {
        final int len = arrayLength;
        byte[] src = new byte[len];
        byte[] dst = new byte[len];
@@ -70,7 +69,8 @@ public class SystemArrayCopyPerfTest {
    }

    @Test
    public void timeSystemShortArrayCopy() {
    @Parameters(method = "getData")
    public void timeSystemShortArrayCopy(int arrayLength) {
        final int len = arrayLength;
        short[] src = new short[len];
        short[] dst = new short[len];
@@ -81,7 +81,8 @@ public class SystemArrayCopyPerfTest {
    }

    @Test
    public void timeSystemIntArrayCopy() {
    @Parameters(method = "getData")
    public void timeSystemIntArrayCopy(int arrayLength) {
        final int len = arrayLength;
        int[] src = new int[len];
        int[] dst = new int[len];
@@ -92,7 +93,8 @@ public class SystemArrayCopyPerfTest {
    }

    @Test
    public void timeSystemLongArrayCopy() {
    @Parameters(method = "getData")
    public void timeSystemLongArrayCopy(int arrayLength) {
        final int len = arrayLength;
        long[] src = new long[len];
        long[] dst = new long[len];
@@ -103,7 +105,8 @@ public class SystemArrayCopyPerfTest {
    }

    @Test
    public void timeSystemFloatArrayCopy() {
    @Parameters(method = "getData")
    public void timeSystemFloatArrayCopy(int arrayLength) {
        final int len = arrayLength;
        float[] src = new float[len];
        float[] dst = new float[len];
@@ -114,7 +117,8 @@ public class SystemArrayCopyPerfTest {
    }

    @Test
    public void timeSystemDoubleArrayCopy() {
    @Parameters(method = "getData")
    public void timeSystemDoubleArrayCopy(int arrayLength) {
        final int len = arrayLength;
        double[] src = new double[len];
        double[] dst = new double[len];
@@ -125,7 +129,8 @@ public class SystemArrayCopyPerfTest {
    }

    @Test
    public void timeSystemBooleanArrayCopy() {
    @Parameters(method = "getData")
    public void timeSystemBooleanArrayCopy(int arrayLength) {
        final int len = arrayLength;
        boolean[] src = new boolean[len];
        boolean[] dst = new boolean[len];
+23 −30
Original line number Diff line number Diff line
@@ -20,42 +20,32 @@ import android.perftests.utils.BenchmarkState;
import android.perftests.utils.PerfStatusReporter;
import android.test.suitebuilder.annotation.LargeTest;

import org.junit.Before;
import junitparams.JUnitParamsRunner;
import junitparams.Parameters;

import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import org.xmlpull.v1.XmlSerializer;

import java.io.CharArrayWriter;
import java.lang.reflect.Constructor;
import java.util.Arrays;
import java.util.Collection;
import java.util.Random;

@RunWith(Parameterized.class)
@RunWith(JUnitParamsRunner.class)
@LargeTest
public class XmlSerializePerfTest {
    @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter();

    @Parameters(name = "mDatasetAsString({0}), mSeed({1})")
    public static Collection<Object[]> data() {
        return Arrays.asList(
                new Object[][] {
                    {"0.99 0.7 0.7 0.7 0.7 0.7", 854328},
                    {"0.999 0.3 0.3 0.95 0.9 0.9", 854328},
                    {"0.99 0.7 0.7 0.7 0.7 0.7", 312547},
                    {"0.999 0.3 0.3 0.95 0.9 0.9", 312547}
                });
    private Object[] getParams() {
        return new Object[][] {
            new Object[] {"0.99 0.7 0.7 0.7 0.7 0.7", 854328},
            new Object[] {"0.999 0.3 0.3 0.95 0.9 0.9", 854328},
            new Object[] {"0.99 0.7 0.7 0.7 0.7 0.7", 312547},
            new Object[] {"0.999 0.3 0.3 0.95 0.9 0.9", 312547}
        };
    }

    @Parameterized.Parameter(0)
    public String mDatasetAsString;

    @Parameterized.Parameter(1)
    public int mSeed;

    double[] mDataset;
    private Constructor<? extends XmlSerializer> mKxmlConstructor;
    private Constructor<? extends XmlSerializer> mFastConstructor;
@@ -100,8 +90,7 @@ public class XmlSerializePerfTest {
    }

    @SuppressWarnings("unchecked")
    @Before
    public void setUp() throws Exception {
    public void setUp(String datasetAsString) throws Exception {
        mKxmlConstructor =
                (Constructor)
                        Class.forName("com.android.org.kxml2.io.KXmlSerializer").getConstructor();
@@ -109,28 +98,32 @@ public class XmlSerializePerfTest {
                (Constructor)
                        Class.forName("com.android.internal.util.FastXmlSerializer")
                                .getConstructor();
        String[] splitStrings = mDatasetAsString.split(" ");
        String[] splitStrings = datasetAsString.split(" ");
        mDataset = new double[splitStrings.length];
        for (int i = 0; i < splitStrings.length; i++) {
            mDataset[i] = Double.parseDouble(splitStrings[i]);
        }
    }

    private void internalTimeSerializer(Constructor<? extends XmlSerializer> ctor)
    private void internalTimeSerializer(Constructor<? extends XmlSerializer> ctor, int seed)
            throws Exception {
        BenchmarkState state = mPerfStatusReporter.getBenchmarkState();
        while (state.keepRunning()) {
            serializeRandomXml(ctor, mSeed);
            serializeRandomXml(ctor, seed);
        }
    }

    @Test
    public void timeKxml() throws Exception {
        internalTimeSerializer(mKxmlConstructor);
    @Parameters(method = "getParams")
    public void timeKxml(String datasetAsString, int seed) throws Exception {
        setUp(datasetAsString);
        internalTimeSerializer(mKxmlConstructor, seed);
    }

    @Test
    public void timeFast() throws Exception {
        internalTimeSerializer(mFastConstructor);
    @Parameters(method = "getParams")
    public void timeFast(String datasetAsString, int seed) throws Exception {
        setUp(datasetAsString);
        internalTimeSerializer(mFastConstructor, seed);
    }
}
+9 −12
Original line number Diff line number Diff line
@@ -20,12 +20,12 @@ import android.perftests.utils.BenchmarkState;
import android.perftests.utils.PerfStatusReporter;
import android.test.suitebuilder.annotation.LargeTest;

import org.junit.Before;
import junitparams.JUnitParamsRunner;
import junitparams.Parameters;

import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

import java.io.File;
import java.io.FileOutputStream;
@@ -38,23 +38,18 @@ import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;

@RunWith(Parameterized.class)
@RunWith(JUnitParamsRunner.class)
@LargeTest
public class ZipFilePerfTest {
    @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter();

    private File mFile;

    @Parameters(name = "numEntries={0}")
    public static Collection<Object[]> data() {
    public static Collection<Object[]> getData() {
        return Arrays.asList(new Object[][] {{128}, {1024}, {8192}});
    }

    @Parameterized.Parameter(0)
    public int numEntries;

    @Before
    public void setUp() throws Exception {
    public void setUp(int numEntries) throws Exception {
        mFile = File.createTempFile(getClass().getName(), ".zip");
        mFile.deleteOnExit();
        writeEntries(new ZipOutputStream(new FileOutputStream(mFile)), numEntries, 0);
@@ -66,7 +61,9 @@ public class ZipFilePerfTest {
    }

    @Test
    public void timeZipFileOpen() throws Exception {
    @Parameters(method = "getData")
    public void timeZipFileOpen(int numEntries) throws Exception {
        setUp(numEntries);
        BenchmarkState state = mPerfStatusReporter.getBenchmarkState();
        while (state.keepRunning()) {
            ZipFile zf = new ZipFile(mFile);
Loading