Skip to content

Latest commit

 

History

History
45 lines (33 loc) · 2.63 KB

README.md

File metadata and controls

45 lines (33 loc) · 2.63 KB

Benchmarks Results

Each push to the repository will trigger a benchmark run. The project uses a special build task which merges all the benchmark results into a single report file. Latest benchmark results will be viewable via GitHub Pages: https://joel-jeremy.github.io/java-config-library-benchmarks/

Libraries

(Alphabetical order)

Benchmark Setup

Each library is setup with its "default" configurations. In addition to the defaults, additional configuration/setup is done to "load" a single .properties file. For the benchmark runs, each library will load properties/configuration from the loaded .properties file (all with exactly the same file contents).

Benchmark Run

Benchmarks require Java 11.

To run the benchmarks and generate reports, use the runAllJmh.sh script.

Adding New Benchmarks

To introduce a new benchmark, create a new gradle subproject and:

  1. Create an Benchmark abstract class under io.github.joeljeremy7.java.config.lib.benchmarks package.
  2. Create benchmark methods in Benchmark class
    • Minimum required methods are:
      1. Retrieve a String property/configuration
      2. Retrieve an int property/configuration
  3. Create an Avgt and Thrpt nested class within Benchmark which extends the abstract Benchmark class so that they execute the same benchmarks.
  4. Annotate Avgt and Thrpt nested classes with appropriate JMH annotations to record results: avgt (ns) and thrpt (ms).
  5. Add the subproject's jmh task to the runAllJmh.sh script.
  6. Add project repository link to Libraries section.