summaryrefslogtreecommitdiff
path: root/test/998-scoped-primitive-array/src/Main.java
diff options
context:
space:
mode:
author Mathieu Chartier <mathieuc@google.com> 2015-09-12 16:55:26 -0700
committer Mathieu Chartier <mathieuc@google.com> 2015-09-14 13:45:53 -0700
commit563e9846711aa1830bc7a34499204091032349fb (patch)
treecd7974c696430f703d65c2e82ba347df900a4aaf /test/998-scoped-primitive-array/src/Main.java
parentb09f33381174843214de40533366e162a0c6d768 (diff)
Convert ART benchmarks into caliper benchmarks
Move the ART benchmarks into the benchmarks directory and make them caliper friendly. To run you need to build libartbenchmark.so and sync it then use vogar --benchmark. Bug: 24055147 Change-Id: Idc9caf8dc8022190d737840ba0eb9e356f9872cb
Diffstat (limited to 'test/998-scoped-primitive-array/src/Main.java')
-rw-r--r--test/998-scoped-primitive-array/src/Main.java85
1 files changed, 0 insertions, 85 deletions
diff --git a/test/998-scoped-primitive-array/src/Main.java b/test/998-scoped-primitive-array/src/Main.java
deleted file mode 100644
index 630e0dc1b6..0000000000
--- a/test/998-scoped-primitive-array/src/Main.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2015 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.
- */
-
-public class Main {
- public Main() {}
-
- // Measure adds the first and last element of the array by using ScopedPrimitiveArray.
- static native long measureByteArray(long reps, byte[] arr);
- static native long measureShortArray(long reps, short[] arr);
- static native long measureIntArray(long reps, int[] arr);
- static native long measureLongArray(long reps, long[] arr);
-
- static void checkEq(long expected, long value) {
- if (expected != value) {
- System.out.println("error: Expected " + expected + " but got " + value);
- }
- }
-
- static void runPerfTest(long reps) {
- for (int length = 1; length <= 8192; length *= 8) {
- byte[] bytes = new byte[length];
- bytes[0] = 1;
- bytes[length - 1] = 2;
- short[] shorts = new short[length];
- shorts[0] = 1;
- shorts[length - 1] = 2;
- int[] ints = new int[length];
- ints[0] = 1;
- ints[length - 1] = 2;
- long[] longs = new long[length];
- longs[0] = 1;
- longs[length - 1] = 2;
- long value = 0;
- long elapsed = 0;
- long start = 0;
-
- start = System.nanoTime();
- value = measureByteArray(reps, bytes);
- elapsed = System.nanoTime() - start;
- System.out.println("Byte length=" + length + " ns/op=" + (double) elapsed / reps);
- checkEq(value, reps * (long) (bytes[0] + bytes[length - 1]));
-
- start = System.nanoTime();
- value = measureShortArray(reps, shorts);
- elapsed = System.nanoTime() - start;
- System.out.println("Short length=" + length + " ns/op=" + (double) elapsed / reps);
- checkEq(value, reps * (long) (shorts[0] + shorts[length - 1]));
-
- start = System.nanoTime();
- value = measureIntArray(reps, ints);
- elapsed = System.nanoTime() - start;
- System.out.println("Int length=" + length + " ns/op=" + (double) elapsed / reps);
- checkEq(value, reps * (ints[0] + ints[length - 1]));
-
- start = System.nanoTime();
- value = measureLongArray(reps, longs);
- elapsed = System.nanoTime() - start;
- System.out.println("Long length=" + length + " ns/op=" + (double) elapsed / reps);
- checkEq(value, reps * (longs[0] + longs[length - 1]));
- }
- }
-
- public static void main(String[] args) {
- System.loadLibrary(args[0]);
- long iterations = 2000000;
- if (args.length > 1) {
- iterations = Long.parseLong(args[1], 10);
- }
- runPerfTest(iterations);
- System.out.println("Done");
- }
-}