Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
commons #123 - Initial draft of benchmarks for relational data access (JDBC &… Jul 24, 2019
mongodb #126 - Book benchmark for MongoDB similar to the relational ones. Aug 13, 2019
support #123 - Benchmark overhaul. Aug 13, 2019 #107 - URL Cleanup. Mar 25, 2019
pom.xml #125 - Polishing. Oct 1, 2019


Benchmarks are based on JMH.

Running Benchmarks

To run the benchmarks with default settings use:

mvn clean test

A basic report will be printed to the CLI.

# Run complete. Total time: 00:00:15

Benchmark                                    Mode  Cnt        Score       Error  Units
MappingMongoConverterBenchmark.readObject   thrpt   10  1920157,631 ± 64310,809  ops/s
MappingMongoConverterBenchmark.writeObject  thrpt   10   782732,857 ± 53804,130  ops/s

Running all Benchmarks of a specific class

To run all Benchmarks of a specific class, just provide its simple class name via the benchmark command line argument.

mvn clean test -D benchmark=MappingMongoConverterBenchmark

Running a single Benchmark

To run a single Benchmark provide its containing class simple name followed by # and the method name via the benchmark command line argument.

mvn clean test -D benchmark=MappingMongoConverterBenchmark#readObjectWith2Properties

Saving Benchmark Results

A detailed benchmark report is stored in JSON format in the /target/reports/performance directory. To store the report in a different location use the benchmarkReportDir command line argument.


Results can be directly piped to MongoDB by providing a valid Connection String via the publishTo command line argument.

mvn clean test -D publishTo=mongodb://

NOTE: If the uri does not explicitly define a database the default spring-data-mongodb-benchmarks is used.

HTTP Endpoint

The benchmark report can also be posted as application/json to an HTTP Endpoint by providing a valid URl via the publishTo command line argument.

mvn clean test -D publishTo=

Customizing Benchmarks

Following options can be set via command line.

Option Default Value
warmupIterations 10
warmupTime 1 (seconds)
measurementIterations 10
measurementTime 1 (seconds)
forks 1
benchmarkReportDir /target/reports/performance (always relative to project root dir)
benchmark .* (single benchmark via classname#benchmark)
publishTo [not set] (mongodb-uri or http-endpoint)
You can’t perform that action at this time.