#huffman-coding #huffman #benchmark #decompression #data-structures

app coding_benchmark

用于基准测试 Huffman 编码算法的程序

4 个版本

0.1.3 2024 年 3 月 19 日
0.1.2 2024 年 2 月 25 日
0.1.1 2024 年 2 月 25 日
0.1.0 2024 年 2 月 24 日

#128压缩 分类中

Download history 146/week @ 2024-03-14 23/week @ 2024-03-21 3/week @ 2024-03-28 2/week @ 2024-04-04 1/week @ 2024-04-18

每月 245 次下载

MIT/Apache

240KB
3.5K SLoC

coding_benchmark 是 Piotr Beling 编写的用于基准测试 Huffman 编码算法实现的程序。

它可以测试以下 crate 中包含的实现

请使用 --help 切换运行程序,以查看可用选项。

以下您可以找到关于 安装 coding_benchmark 和使用它进行的 重现实验 的说明,这些实验可以在已发布的或正在审阅的论文中找到。请注意,这些说明已在 GNU/Linux 下测试,可能需要对其他系统进行一些修改。

安装

coding_benchmark 可以从源代码编译和安装。为此,需要一个 Rust 编译器。获取编译器以及其他必要工具(如 cargo)的最简单方法是使用 rustup

请按照 https://rust-lang.net.cn/tools/install 中的说明进行操作。

一旦安装了 Rust,只需执行以下命令即可使用原生优化安装 coding_benchmark

RUSTFLAGS="-C target-cpu=native" cargoinstall coding_benchmark

重现论文中的实验

Rust 库和程序,专注于紧凑数据结构

(Piotr Beling, BSuccinct: Rust 库和程序,专注于紧凑数据结构, SoftwareX, 第 26 卷,2024 年,101681,ISSN 2352-7110,https://doi.org/10.1016/j.softx.2024.101681)

要查看所有实现的测试结果,请执行以下命令,使用随机抽取的(具有非均匀分布)1 字节符号(符号熵为 4.83 比特/符号)的 100MB(100*1024*1024=104857600)文本

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

请注意,-t 100 -c 20 切换强制执行长时间测试(100s 用于预热 + 每次测试约 100s + 测试之间的冷却/睡眠时间 20s)。它们可以省略以更快地获取结果,但平均重复次数较少。

依赖项

~5.5MB
~92K SLoC