coding_benchmark

Crates.iocoding_benchmark
lib.rscoding_benchmark
version0.1.3
sourcesrc
created_at2024-02-24 16:23:56.789299
updated_at2024-03-19 08:02:28.531528
descriptionThe program for benchmarking Huffman coding algorithms
homepage
repositoryhttps://github.com/beling/bsuccinct-rs
max_upload_size
id1151740
size41,953
Piotr Beling (beling)

documentation

https://docs.rs/coding_benchmark

README

coding_benchmark is the program (by Piotr Beling) for benchmarking implementations of Huffman coding algorithms.

It can test the implementations included in the following crates:

Please run the program with the --help switch to see the available options.

Below you can find instruction for installing coding_benchmark and reproducing experiments performed with it, which can be found in published or under review papers. Note that these instructions have been tested under GNU/Linux and may require some modifications for other systems.

Installation

coding_benchmark can be compiled and installed from sources. To do this, a Rust compiler is needed. The easiest way to obtain the compiler along with other necessary tools (like cargo) is to use rustup.

Please follow the instructions at https://www.rust-lang.org/tools/install.

Once Rust is installed, just execute the following to install coding_benchmark with native optimizations:

RUSTFLAGS="-C target-cpu=native" cargo install coding_benchmark

Reproducing experiments from the papers

Rust libraries and programs focused on succinct data structures

(Piotr Beling, BSuccinct: Rust libraries and programs focused on succinct data structures, SoftwareX, Volume 26, 2024, 101681, ISSN 2352-7110, https://doi.org/10.1016/j.softx.2024.101681)

To see the results for all implementations, 100MB (100*1024*1024=104857600) text of randomly drawn (with a non-uniform distribution) 1 byte symbols (with an entropy of 4.83 bits/symbol), just execute:

./coding_benchmark -t 100 -c 20 -l 104857600 all

Note that the -t 100 -c 20 switches force a long testing time (100s for warming up + about 100s for performing each test + 20s cooling/sleeping between tests). They can be omitted to get results faster, but averaged over fewer repetitions.

Commit count: 673

cargo fmt