Tiny benchmarking framework for Java 7+
Java
Latest commit b36a1aa Apr 9, 2016 @tokuhirom releng

README.md

nanobench

Build Status

This is a tiny benchmarking library for Java 8.

SYNOPSIS

Benchmark code(ListBenchmark.java):

import java.util.List;
import java.util.ArrayList;
import java.util.LinkedList;

public class ListBenchmark {
    // Benchmarking method must be started with 'bench'.
    public void benchArrayList() {
        List<Integer> l = new ArrayList<>();
        for (int i=0; i<1_000_000; ++i) {
            l.add(i);
        }
    }

    public void benchLinkedList() {
        List<Integer> l = new LinkedList<>();
        for (int i=0; i<1_000_000; ++i) {
            l.add(i);
        }
    }
}

Command line:

> javac ListBenchmark.java
> java -jar nanobench.jar ListBenchmark


Score:

benchArrayList:  1 wallclock secs ( 1.03 usr +  0.10 sys =  1.13 CPU) @ 142.79/s (n=162)
benchLinkedList:  2 wallclock secs ( 1.07 usr +  0.15 sys =  1.21 CPU) @ 146.54/s (n=178)

Comparison chart:

                    Rate  benchArrayList  benchLinkedList
   benchArrayList  143/s              --              -3%
  benchLinkedList  147/s              3%               --

DESCRIPTION

nanobench is a tiny benchmarking library.

This library is really tiny. There is no dependencies. Only one file. You can copy Benchmark.java into your project.

INSTALLATION

You can get a jar file from github.

https://github.com/tokuhirom/maven/tree/gh-pages/releases/me/geso/nanobench

Also, you can get a jar by maven: tokuhirom's maven repo

LICENSE

Copyright © 2014 Tokuhiro Matsuno, http://64p.org/ tokuhirom@gmail.com

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

The strategy was inspired from Perl5's Benchmark.pm. It's covered under the Perl 5 License.

THANKS TO

This library was inspired from Benchmark.pm from Perl5. http://search.cpan.org/~rjbs/perl-5.20.0/lib/Benchmark.pm