diff options
Diffstat (limited to 'neozip/test/benchmarks/README.md')
| -rw-r--r-- | neozip/test/benchmarks/README.md | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/neozip/test/benchmarks/README.md b/neozip/test/benchmarks/README.md new file mode 100644 index 0000000000..08ccea233e --- /dev/null +++ b/neozip/test/benchmarks/README.md @@ -0,0 +1,63 @@ +## Benchmarks +These benchmarks are written using [Google Benchmark](https://github.com/google/benchmark). + +*Repetitions* + +To increase the number of times each benchmark iteration is run use: + +``` +--benchmark_repetitions=20 +``` + +*Filters* + +To filter out which benchmarks are performed use: + +``` +--benchmark_filter="adler32*" +``` + +There are two different benchmarks, micro and macro. + +### Benchmark benchmark_zlib +These are microbenchmarks intended to test lower level subfunctions of the library. + +Benchmarks include implementations of: + - Adler32 + - CRC + - 256 byte comparisons + - SIMD accelerated "slide hash" routine + +By default these benchmarks report things on the nanosecond scale and are small enough +to measure very minute differences. + +*Alternative zlib library* + +To benchmark against an alternative zlib-compatible library, use the `ZLIB_LIBRARY` +CMake argument. When set, only the public API benchmarks are built: + +```sh +cmake -S . -B build-alt \ + -DZLIB_COMPAT=ON \ + -DBUILD_SHARED_LIBS=OFF \ + -DBUILD_TESTING=ON \ + -DWITH_BENCHMARKS=ON \ + -DCMAKE_BUILD_TYPE=Release \ + -DWITH_RUNTIME_CPU_DETECTION=OFF \ + -DZLIB_LIBRARY=/path/to/libz.a +``` + +### Benchmark benchmark_zlib_apps +These benchmarks measure applications of zlib as a whole. Currently the only examples +are PNG encoding and decoding. The PNG encode and decode tests leveraging procedurally +generated and highly compressible image data. + +Additionally, a test called `png_decode_realistic` that will decode any RGB 8 BPP encoded +set of PNGs in the working directory under a directory named "test_pngs" with files named +{0..1}.png. If these images do not exist, they will error out and the benchmark will move +on to the next set of benchmarks. + +*benchmark_zlib_apps_alt* + +The user can compile a comparison benchmark application linking to any zlib-compatible +implementation of his or her choosing. |
