This project is focus on building a comprehensive benchmark for comparing time and space efficiency of open source compression codecs on JVM platform. Codecs to include need to be accesible from Java (and thereby from any JVM language) via either pure Java interface or JNI; and need to support either basic block mode (byte array in, byte array out), or streaming code (InputStream in, OutputStream out).
Benchmark suite is based on Japex framework.
In addition to benchmark itself, we also provide access to set of benchmark results, which can be used for overview of general performance patterns for standard test suites. It is recommended, however, to run tests yourself since they vary depending on platform. In addition, to get more accurate understanding of how results apply to your use case(s), the best thing to do is to collect specific set of test data that reflects your usage, and run tests over this.
For more complete description, checkout out project Wiki
To run tests, you first need to compile the Java sources using Ant:
ant compile
After you have built classes, you can invoke tests directly by running test suite. There are couple of sample scripts to show options and configurations available, and you can run one of them like:
./run-calgary-compress.sh
but commonly you probably want to create your own scripts by modifying one of existing ones, to choose different sets of input data and/or compression codecs to use. Configuration uses standard Japex xml file based configuration, with a set of system properties.
The main thing, either way, is to invoke Japex main class com.sun.japex.Japex
with a single xml configuration file
as its argument. System properties named with japex.
prefix can be used to override default settings as well
as definitions from the xml file as needed.
Are available on project Wiki.
Codecs are listed on project Wiki.
We have tried to make use of existing de-facto standard test suites, including:
- Calgary corpus: 18 test files from
- Canterbury corpus: 11 test files
- Maximum Compression: 10 test files
- QuickLZ: 5 test files
- Silesia: 12 test files
To access source, just clone project
To participate in discussions of benchmark suite, results, and other things related to compression performance, please join our discussion group
Benchmark code is licensed under Apache 2.0.