packages feed

linkedhashmap-0.1.0.0: benchmarks/Tests.java

import java.util.LinkedHashMap;

public class Tests {
    static final int N = 100000;

    interface Test {
        void test();
    }

    public static void test1() {
        LinkedHashMap m = new LinkedHashMap();
        for (int i = 0; i < N; i++) {
            m.put(N-i, i);
        }
    }

    public static long[] run(int times, Test t) {
        long[] results = new long[times];

        for (int n = 0; n < times; n++) {
            long start = System.nanoTime();
            t.test();
            results[n] = System.nanoTime() - start;
        }

        return results;
    }

    public static double mean(long[] xs) {
        double mean = 0;
        for (int i = 0; i < xs.length; i++) {
            mean += xs[i];
        }
        mean /= xs.length;
        return mean / 1_000_000;
    }

    public static double stdvar(long[] xs) {
        long m1 = 0;
        long m2 = 0;
        for (int i = 0; i < xs.length; i++) {
            m1 += xs[i];
            m2 += xs[i] * xs[i];
        }
        m1 /= xs.length;
        m2 /= xs.length;

        return Math.sqrt(m2 - m1*m1) / 1_000_000;
    }

    public static void main(String[] args) {
        long[] result = run(1000, new Test() { public void test() { test1(); }});
        for (int i = 0; i < result.length; i++) {
            System.out.println(((double)result[i]) / 1_000_000 + " ms");
        }
        System.out.println("mean=" + mean(result) + " ms");
        System.out.println("std var=" + stdvar(result) + " ms");
    }    
}