aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Rames <alexandre.rames@linaro.org>2015-09-17 13:42:03 +0100
committerAlexandre Rames <alexandre.rames@linaro.org>2015-09-22 15:40:37 +0000
commit1fb124ab9645056fb7c9b4ea7edb445f8ac2121b (patch)
tree89fab25d0e0aab9db11ed90cbacb9abeb695e5f1
parente9bf8f01d1255c336bcd8777b8ced85bf3346c42 (diff)
Have coherent benchmark identifiers.
With this patch, benchmarks now have a coherent identifier across scripts and commands. Change-Id: I12b5059de938182f4a2a8ba2bb5394f53b6fe18b
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/BubbleSort.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/ControlFlow.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/DoNothing.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/FactorialDouble.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/FactorialFloat.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/FactorialInt.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/FactorialLong.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/GCTest.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/InstanceTest.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/JoinTest.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/LockTest.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/Loop.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/Matrix.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/MatrixDouble.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/MultiplyAdd.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/ObjFactorial.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/Pi.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/PrimeNumber.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/Recursion.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/Rotation.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/StringOps.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/Switch.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/SyncFib.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/SyncNorec.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/Synchro.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/deprecated/VolatileTest.java2
-rw-r--r--benchmarking/java-ubenchs/benchmarks/micro/Intrinsics.java2
-rwxr-xr-xbenchmarking/java-ubenchs/build.sh1
-rw-r--r--benchmarking/java-ubenchs/framework/org/linaro/bench/RunBench.java36
-rwxr-xr-xbenchmarking/java-ubenchs/run.py39
-rwxr-xr-xbenchmarking/java-ubenchs/test/test.py7
-rw-r--r--benchmarking/java-ubenchs/tools/utils.py48
32 files changed, 146 insertions, 39 deletions
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/BubbleSort.java b/benchmarking/java-ubenchs/benchmarks/deprecated/BubbleSort.java
index 2e01458..7aa4cd8 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/BubbleSort.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/BubbleSort.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
import java.lang.System;
// This benchmark performs bubble sort in the worst case scenario.
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/ControlFlow.java b/benchmarking/java-ubenchs/benchmarks/deprecated/ControlFlow.java
index 55d94e8..74082a5 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/ControlFlow.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/ControlFlow.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
import java.lang.System;
public class ControlFlow {
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/DoNothing.java b/benchmarking/java-ubenchs/benchmarks/deprecated/DoNothing.java
index 5cf27ef..357b991 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/DoNothing.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/DoNothing.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
public class DoNothing {
public static void main(String[] args) {
System.out.println("DoNothing: " + 0);
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/FactorialDouble.java b/benchmarking/java-ubenchs/benchmarks/deprecated/FactorialDouble.java
index 30f274a..aa5762c 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/FactorialDouble.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/FactorialDouble.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
public class FactorialDouble {
public static void main(String[] args) {
long before = System.currentTimeMillis();
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/FactorialFloat.java b/benchmarking/java-ubenchs/benchmarks/deprecated/FactorialFloat.java
index 0697a1f..e9f5ec9 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/FactorialFloat.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/FactorialFloat.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
public class FactorialFloat {
public static void main(String[] args) {
long before = System.currentTimeMillis();
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/FactorialInt.java b/benchmarking/java-ubenchs/benchmarks/deprecated/FactorialInt.java
index 8cfc205..e1f135b 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/FactorialInt.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/FactorialInt.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
public class FactorialInt {
public static void main(String[] args) {
long before = System.currentTimeMillis();
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/FactorialLong.java b/benchmarking/java-ubenchs/benchmarks/deprecated/FactorialLong.java
index ac4a694..6a89b32 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/FactorialLong.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/FactorialLong.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
public class FactorialLong {
public static void main(String[] args) {
long before = System.currentTimeMillis();
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/GCTest.java b/benchmarking/java-ubenchs/benchmarks/deprecated/GCTest.java
index d19c217..7807299 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/GCTest.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/GCTest.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
import java.lang.System;
import java.util.Random;
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/InstanceTest.java b/benchmarking/java-ubenchs/benchmarks/deprecated/InstanceTest.java
index fc1f2ea..9a14870 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/InstanceTest.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/InstanceTest.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
import java.lang.System;
import java.util.ArrayList;
import java.util.Random;
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/JoinTest.java b/benchmarking/java-ubenchs/benchmarks/deprecated/JoinTest.java
index 7ac041b..bd0e4a6 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/JoinTest.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/JoinTest.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
import java.lang.System;
import java.lang.Thread;
import java.lang.InterruptedException;
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/LockTest.java b/benchmarking/java-ubenchs/benchmarks/deprecated/LockTest.java
index 84c2b3a..476334c 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/LockTest.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/LockTest.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
import java.lang.System;
import org.linaro.bench.IterationsAnnotation;
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/Loop.java b/benchmarking/java-ubenchs/benchmarks/deprecated/Loop.java
index 2df29d8..1f5e0c6 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/Loop.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/Loop.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
import java.lang.System;
// This benchmark performs various loop operations.
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/Matrix.java b/benchmarking/java-ubenchs/benchmarks/deprecated/Matrix.java
index 95f14a2..50b9e95 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/Matrix.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/Matrix.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
public class Matrix {
public static void main(String[] args) {
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/MatrixDouble.java b/benchmarking/java-ubenchs/benchmarks/deprecated/MatrixDouble.java
index 9b67e2e..1a60571 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/MatrixDouble.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/MatrixDouble.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
public class MatrixDouble {
public static void main(String[] args) {
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/MultiplyAdd.java b/benchmarking/java-ubenchs/benchmarks/deprecated/MultiplyAdd.java
index 7ccd587..4cc1f70 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/MultiplyAdd.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/MultiplyAdd.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
import java.lang.reflect.Method;
public class MultiplyAdd {
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/ObjFactorial.java b/benchmarking/java-ubenchs/benchmarks/deprecated/ObjFactorial.java
index e5d8303..1e15b2e 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/ObjFactorial.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/ObjFactorial.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
import java.lang.System;
import java.math.BigInteger;
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/Pi.java b/benchmarking/java-ubenchs/benchmarks/deprecated/Pi.java
index e28b785..4dde44f 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/Pi.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/Pi.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
import java.lang.System;
// This benchmark generates PI using Leibniz formula.
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/PrimeNumber.java b/benchmarking/java-ubenchs/benchmarks/deprecated/PrimeNumber.java
index 4b9391f..55fd8b9 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/PrimeNumber.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/PrimeNumber.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
import java.lang.System;
// This benchmark generates primes up to a number.
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/Recursion.java b/benchmarking/java-ubenchs/benchmarks/deprecated/Recursion.java
index 5ae2034..406b78b 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/Recursion.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/Recursion.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
import java.lang.System;
// This benchmark measures time taken for recursive method calls.
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/Rotation.java b/benchmarking/java-ubenchs/benchmarks/deprecated/Rotation.java
index febe0de..dc5fd15 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/Rotation.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/Rotation.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
import java.lang.System;
// This benchmark rotates three dimensional points.
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/StringOps.java b/benchmarking/java-ubenchs/benchmarks/deprecated/StringOps.java
index 7e07180..476f414 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/StringOps.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/StringOps.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
import java.lang.System;
// This benchmark performs various string operations.
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/Switch.java b/benchmarking/java-ubenchs/benchmarks/deprecated/Switch.java
index 5d6603d..c393484 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/Switch.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/Switch.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
import java.lang.System;
public class Switch {
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/SyncFib.java b/benchmarking/java-ubenchs/benchmarks/deprecated/SyncFib.java
index 6f302c4..f7d0909 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/SyncFib.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/SyncFib.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
import java.lang.System;
import org.linaro.bench.IterationsAnnotation;
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/SyncNorec.java b/benchmarking/java-ubenchs/benchmarks/deprecated/SyncNorec.java
index 0c1f2c1..9b60273 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/SyncNorec.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/SyncNorec.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
import java.lang.System;
public class SyncNorec {
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/Synchro.java b/benchmarking/java-ubenchs/benchmarks/deprecated/Synchro.java
index 4f76ddd..a97fdd8 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/Synchro.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/Synchro.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
import java.lang.System;
public class Synchro {
diff --git a/benchmarking/java-ubenchs/benchmarks/deprecated/VolatileTest.java b/benchmarking/java-ubenchs/benchmarks/deprecated/VolatileTest.java
index 238c360..7cb7613 100644
--- a/benchmarking/java-ubenchs/benchmarks/deprecated/VolatileTest.java
+++ b/benchmarking/java-ubenchs/benchmarks/deprecated/VolatileTest.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.deprecated;
+
import java.lang.System;
public class VolatileTest {
diff --git a/benchmarking/java-ubenchs/benchmarks/micro/Intrinsics.java b/benchmarking/java-ubenchs/benchmarks/micro/Intrinsics.java
index 6fc40a3..630aefe 100644
--- a/benchmarking/java-ubenchs/benchmarks/micro/Intrinsics.java
+++ b/benchmarking/java-ubenchs/benchmarks/micro/Intrinsics.java
@@ -15,6 +15,8 @@
*
*/
+package benchmarks.micro;
+
import java.lang.System;
import java.util.Random;
import java.util.EnumMap;
diff --git a/benchmarking/java-ubenchs/build.sh b/benchmarking/java-ubenchs/build.sh
index 531ef1a..9e10274 100755
--- a/benchmarking/java-ubenchs/build.sh
+++ b/benchmarking/java-ubenchs/build.sh
@@ -116,7 +116,6 @@ set +f
JAVA_BENCHMARK_CLASSES=${JAVA_BENCHMARK_FILES//.java/}
# Remove the leading `./` and `benchmarks`.
JAVA_BENCHMARK_CLASSES=${JAVA_BENCHMARK_CLASSES//.\//}
-JAVA_BENCHMARK_CLASSES=${JAVA_BENCHMARK_CLASSES//benchmarks\//}
# Trim trailing whitespaces.
JAVA_BENCHMARK_CLASSES=${JAVA_BENCHMARK_CLASSES/%[[:space:]]/}
read -a array <<< $JAVA_BENCHMARK_CLASSES
diff --git a/benchmarking/java-ubenchs/framework/org/linaro/bench/RunBench.java b/benchmarking/java-ubenchs/framework/org/linaro/bench/RunBench.java
index 653fe92..fe650cd 100644
--- a/benchmarking/java-ubenchs/framework/org/linaro/bench/RunBench.java
+++ b/benchmarking/java-ubenchs/framework/org/linaro/bench/RunBench.java
@@ -72,6 +72,20 @@ public class RunBench {
return end - start;
}
+ static String benchmarkIdentifier(Method method) {
+ Pattern format = Pattern.compile("((?:\\w+\\.)*)(\\w+)");
+ Matcher matcher = format.matcher(method.getDeclaringClass().getName());
+ if (! matcher.matches()) {
+ return null;
+ }
+ String path = matcher.group(1);
+ path = path.replace('.', '/');
+ String className = matcher.group(2);
+ // Filter the "time" prefix.
+ String benchName = method.getName().substring(4);
+ return path + className + "." + benchName;
+ }
+
/*
* Run one benchmark. May have auto-calibration depends on method's IterationsAnnotation.
*/
@@ -103,10 +117,10 @@ public class RunBench {
iteration_time = duration / (float) iterations;
- log.info(method.getDeclaringClass().getName() + "." + method.getName().substring(4) + ": "
- + duration + " ns for " + iterations + " iterations");
- System.out.printf("%-40s%.2f ns per iteration\n", method.getDeclaringClass().getName()
- + "." + method.getName().substring(4) + ":", iteration_time);
+ log.info(benchmarkIdentifier(method) + ": " +
+ duration + " ns for " + iterations + " iterations");
+ System.out.printf("%-40s%.2f ns per iteration\n",
+ benchmarkIdentifier(method) + ":", iteration_time);
}
public int runBenchSet(String target, boolean verify) {
@@ -116,19 +130,23 @@ public class RunBench {
// The target format is:
// path/to/BenchmarkClass(.Benchmark)?
- Pattern format = Pattern.compile("(?:\\w+\\/)*(\\w+)(?:.(\\w+))?$");
+ Pattern format = Pattern.compile("((?:\\w+\\/)*)(\\w+)(?:\\.(\\w+))?$");
Matcher matcher = format.matcher(target);
if (! matcher.matches()) {
return 1;
}
- String benchmarkClass = matcher.group(1);
- String benchmark = matcher.group(2);
-
+ String benchmarkClassPath = matcher.group(1);
+ if (!benchmarkClassPath.startsWith("benchmarks/")) {
+ benchmarkClassPath = "benchmarks/" + benchmarkClassPath;
+ }
+ benchmarkClassPath = benchmarkClassPath.replace('/', '.');
+ String benchmarkClass = matcher.group(2);
+ String benchmark = matcher.group(3);
List<Method> benchMethods = new ArrayList<Method>(5);
Method verifyMethod = null;
try {
- Class<?> clazz = Class.forName(benchmarkClass);
+ Class<?> clazz = Class.forName(benchmarkClassPath + benchmarkClass);
Object instance = clazz.newInstance();
if (benchmark != null) {
Method m = clazz.getMethod(TESTNAME_PREFIX + benchmark, int.class);
diff --git a/benchmarking/java-ubenchs/run.py b/benchmarking/java-ubenchs/run.py
index 18371d7..7537387 100755
--- a/benchmarking/java-ubenchs/run.py
+++ b/benchmarking/java-ubenchs/run.py
@@ -19,23 +19,18 @@
import argparse
import fnmatch
-import glob
import os
import pickle
import shutil
import subprocess
import sys
import time
-import re
-dir_pwd = os.path.dirname(os.path.realpath(__file__))
-dir_benchmarks = os.path.join(dir_pwd, 'benchmarks')
-dir_framework = os.path.join(dir_pwd, 'framework')
-dir_tools = os.path.join(dir_pwd, 'tools')
-dir_build = os.path.join(dir_pwd, 'build')
-dir_build_java_classes = os.path.join(dir_build, 'classes')
+dir_root = os.path.dirname(os.path.realpath(__file__))
+dir_tools = os.path.join(dir_root, 'tools')
sys.path.insert(0, dir_tools)
+import utils
import utils_stats
bench_runner_main = 'org.linaro.bench.RunBench'
@@ -86,7 +81,7 @@ def BuildOptions():
help='Quoted (benchmark name) filter pattern.')
parser.add_argument('-F', '--filter-out', action = 'append',
help='''Filter out the benchmarks matching this patern.
- Defaults to \'deprecated/*\' if no other filter is
+ Defaults to \'benchmarks/deprecated/*\' if no other filter is
specified.''')
parser.add_argument('--output-pkl', action = 'store',
help='Specify a name for the output `.pkl` file.')
@@ -103,9 +98,6 @@ def ensure_dir(path):
if not os.path.exists(path):
os.makedirs(path)
-def get_files(ext, path):
- return glob.glob(os.path.join(path, '*.' + ext))
-
# ADB helpers
def adb_push(f, target_path = default_remote_copy_path):
@@ -128,7 +120,7 @@ def adb_shell(command):
def host_java(command):
VerbosePrint(' '.join(command))
- p = subprocess.Popen(command, cwd = dir_build_java_classes,
+ p = subprocess.Popen(command, cwd = utils.dir_build_java_classes,
stdout = subprocess.PIPE, stderr = subprocess.PIPE)
return p.communicate()
@@ -216,19 +208,9 @@ def RunBenchs(apk, bench_names,
def ListAllBenchmarks():
- list_benchs = []
- # List java files in 'benchmarks/'.
- list_benchs += get_files('java', dir_benchmarks)
- # List java files in subdirectories of 'benchmarks/'.
- bench_subdirs = [x for x in os.listdir(dir_benchmarks) if os.path.isdir(os.path.join(dir_benchmarks, x))]
- for subdir in bench_subdirs:
- for root, dirs, files in os.walk(os.path.join(dir_benchmarks, subdir)):
- list_benchs += map(lambda x : os.path.join(root, x), files)
- list_benchs = [f for f in list_benchs if re.match(r'^[\w\/-]+\.java$', f)]
- list_benchs = list(map(lambda x : os.path.relpath(x, dir_benchmarks), list_benchs))
- list_benchs = list(map(lambda x : x.replace('.java', ''), list_benchs))
- list_benchs.sort()
- return list_benchs
+ benchs = utils.ListBenchmarkJavaFiles()
+ benchs = list(map(lambda x : x.replace('.java', ''), benchs))
+ return benchs
def FilterBenchmarks(benchmarks, filter, filter_out):
@@ -267,11 +249,10 @@ if __name__ == "__main__":
if args.filter is not None or args.filter_out is not None:
filter_out = args.filter_out
else:
- filter_out = ['deprecated/*']
+ filter_out = ['benchmarks/deprecated/*']
benchmarks = FilterBenchmarks(benchmarks, args.filter, filter_out)
- bench_class_names = list(map(os.path.basename, benchmarks))
- RunBenchs(remote_apk, bench_class_names, args.run_on_target, args.auto_calibrate, args.iterations, args.mode)
+ RunBenchs(remote_apk, benchmarks, args.run_on_target, args.auto_calibrate, args.iterations, args.mode)
utils_stats.PrintStats(result, iterations = args.iterations)
print('')
# Write the results to a file so they can later be used with `compare.py`.
diff --git a/benchmarking/java-ubenchs/test/test.py b/benchmarking/java-ubenchs/test/test.py
index 924bc69..47e7fd5 100755
--- a/benchmarking/java-ubenchs/test/test.py
+++ b/benchmarking/java-ubenchs/test/test.py
@@ -57,11 +57,18 @@ def TestBenchmarksOnHost():
return rc
+def TestBenchmarkPackages():
+ benchmark_files = []
+ # TODO: Automatically test that each benchmark has the correct package.
+ return 0
+
+
if __name__ == "__main__":
args = BuildOptions()
rc = 0
rc |= TestBenchmarksOnHost()
+ rc |= TestBenchmarkPackages()
if rc != 0:
print("Tests FAILED.")
diff --git a/benchmarking/java-ubenchs/tools/utils.py b/benchmarking/java-ubenchs/tools/utils.py
new file mode 100644
index 0000000..04d3753
--- /dev/null
+++ b/benchmarking/java-ubenchs/tools/utils.py
@@ -0,0 +1,48 @@
+# Copyright 2015 ARM Limited
+#
+# 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.
+#
+
+import glob
+import os
+import re
+
+
+dir_tools = os.path.dirname(os.path.realpath(__file__))
+dir_root = os.path.realpath(os.path.join(dir_tools, '..'))
+dir_benchmarks = os.path.join(dir_root, 'benchmarks')
+dir_build = os.path.join(dir_root, 'build')
+dir_build_java_classes = os.path.join(dir_build, 'classes')
+dir_framework = os.path.join(dir_root, 'framework')
+
+
+def GetFiles(ext, path):
+ return glob.glob(os.path.join(path, '*.' + ext))
+
+
+def ListBenchmarkJavaFiles():
+ list_files = []
+ # List java files in 'benchmarks/'.
+ list_files += GetFiles('java', dir_benchmarks)
+ # List java files in subdirectories of 'benchmarks/'.
+ bench_subdirs = [x for x in os.listdir(dir_benchmarks) if os.path.isdir(os.path.join(dir_benchmarks, x))]
+ for subdir in bench_subdirs:
+ for root, dirs, files in os.walk(os.path.join(dir_benchmarks, subdir)):
+ list_files += map(lambda x : os.path.join(root, x), files)
+ list_files = [f for f in list_files if re.match(r'^[\w\/-]+\.java$', f)]
+ list_files = list(map(lambda x : os.path.relpath(x, dir_root), list_files))
+ list_files.sort()
+ return list_files
+
+
+