# HG changeset patch # User Martin Soch # Date 1354702689 -3600 # Node ID e01b65623f72176df1f372b28cbf47684fde7eca # Parent 0bfcb658529097fe8f86b56265f206ca8229f295 first version of benchmarks - currently only one benchmark - matrix multiplication diff -r 0bfcb6585290 -r e01b65623f72 benchmarks/matrix-multiplication/jsTestDriver.conf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/benchmarks/matrix-multiplication/jsTestDriver.conf Wed Dec 05 11:18:09 2012 +0100 @@ -0,0 +1,6 @@ +server: http://localhost:9876 + +load: + - target/classes/org/apidesign/benchmark/matrixmul/*.js + - src/main/resources/org/apidesign/benchmark/matrixmul/*.js + diff -r 0bfcb6585290 -r e01b65623f72 benchmarks/matrix-multiplication/nbactions.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/benchmarks/matrix-multiplication/nbactions.xml Wed Dec 05 11:18:09 2012 +0100 @@ -0,0 +1,29 @@ + + + + + run + + process-classes + org.codehaus.mojo:exec-maven-plugin:1.2.1:exec + + + diff -r 0bfcb6585290 -r e01b65623f72 benchmarks/matrix-multiplication/pom.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/benchmarks/matrix-multiplication/pom.xml Wed Dec 05 11:18:09 2012 +0100 @@ -0,0 +1,91 @@ + + + 4.0.0 + + org.apidesign.bck2brwsr + matrix.multiplication + 0.3-SNAPSHOT + jar + + Matrix multiplication + + + UTF-8 + + + + + org.apache.maven.plugins + maven-compiler-plugin + 2.3.2 + + 1.7 + 1.7 + + + + + org.apidesign.bck2brwsr + mojo + 0.3-SNAPSHOT + + + + j2js + + + + + + + com.googlecode.jstd-maven-plugin + jstd-maven-plugin + 1.3.2.5 + + 9876 + /usr/bin/firefox + all + jsTestDriver.conf + true + + + + run-tests + + test + + + + + + + + + + org.apidesign.bck2brwsr + emul + 0.3-SNAPSHOT + + + com.googlecode.jstd-maven-plugin + jstd-maven-plugin + 1.3.2.5 + test + + + + + + jstd-maven-plugin google code repo + http://jstd-maven-plugin.googlecode.com/svn/maven2 + + + + + jstd-maven-plugin google code repo + http://jstd-maven-plugin.googlecode.com/svn/maven2 + + + + diff -r 0bfcb6585290 -r e01b65623f72 benchmarks/matrix-multiplication/src/main/java/org/apidesign/benchmark/matrixmul/Main.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/benchmarks/matrix-multiplication/src/main/java/org/apidesign/benchmark/matrixmul/Main.java Wed Dec 05 11:18:09 2012 +0100 @@ -0,0 +1,25 @@ +package org.apidesign.benchmark.matrixmul; + +public class Main { + + public static final int ITERATION_COUNT = 100000; + + public static void main(String[] args) { + Matrix m1 = new Matrix(5); + Matrix m2 = new Matrix(5); + + m1.generateData(); + m2.generateData(); + + //m1.printOn(System.out); + //System.out.println("x"); + //m2.printOn(System.out); + + for (int i = 0; i < ITERATION_COUNT; i++) { + m1.multiply(m2); + } + + //System.out.println("="); + //m1.printOn(System.out); + } +} diff -r 0bfcb6585290 -r e01b65623f72 benchmarks/matrix-multiplication/src/main/java/org/apidesign/benchmark/matrixmul/Matrix.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/benchmarks/matrix-multiplication/src/main/java/org/apidesign/benchmark/matrixmul/Matrix.java Wed Dec 05 11:18:09 2012 +0100 @@ -0,0 +1,64 @@ +package org.apidesign.benchmark.matrixmul; + +//import java.io.PrintStream; +//import java.util.Random; + +public class Matrix { + + private final int rank; + private float data[][]; + + public Matrix(int r) { + rank = r; + data = new float[r][r]; + } + + public void setElement(int i, int j, float value) { + data[i][j] = value; + } + public float getElement(int i, int j) { + return data[i][j]; + } + + public void generateData() { + //final Random rand = new Random(); + //final int x = 10; + for (int i = 0; i < rank; i++) { + for (int j = 0; j < rank; j++) { + data[i][j] = i + j; + } + } + } + + public Matrix multiply(Matrix m) { + if (rank != m.rank) { + throw new IllegalArgumentException("Rank doesn't match"); + } + + final float res[][] = new float[rank][rank]; + for (int i = 0; i < rank; i++) { + for (int j = 0; j < rank; j++) { + float ij = 0; + for (int q = 0; q < rank; q++) { + ij += data[i][q] * m.data[q][j]; + } + res[i][j] = ij; + } + } + data = res; + + return this; + } + + /* + public void printOn(PrintStream s) { + for (int i = 0; i < rank; i++) { + for (int j = 0; j < rank; j++) { + s.printf("%f ", data[i][j]); + } + s.println(); + } + } + */ + +} diff -r 0bfcb6585290 -r e01b65623f72 benchmarks/matrix-multiplication/src/main/resources/org/apidesign/benchmark/matrixmul/multiplication-test.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/benchmarks/matrix-multiplication/src/main/resources/org/apidesign/benchmark/matrixmul/multiplication-test.js Wed Dec 05 11:18:09 2012 +0100 @@ -0,0 +1,6 @@ +MatrixTest = TestCase("MatrixTest"); + +MatrixTest.prototype.testMultiplication = function() { + var x = new org_apidesign_benchmark_matrixmul_Main(); + x.main__V_3Ljava_lang_String_2(null); +}; diff -r 0bfcb6585290 -r e01b65623f72 benchmarks/pom.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/benchmarks/pom.xml Wed Dec 05 11:18:09 2012 +0100 @@ -0,0 +1,17 @@ + + + 4.0.0 + + bck2brwsr + org.apidesign + 0.3-SNAPSHOT + + org.apidesign.bck2brwsr + benchmarks + 0.3-SNAPSHOT + pom + Performance benchmarks + + matrix-multiplication + + diff -r 0bfcb6585290 -r e01b65623f72 pom.xml --- a/pom.xml Tue Dec 04 09:16:53 2012 +0100 +++ b/pom.xml Wed Dec 05 11:18:09 2012 +0100 @@ -13,6 +13,7 @@ mojo javaquery javap + benchmarks @@ -70,6 +71,7 @@ javap/** * .*/** + benchmarks/**