- 项目介绍:
zlib-rs
项目是libz.so
的替代品,libz.so
是用于进行 gzip 压缩和解压缩的动态库,zlib-rs
用 Rust 编写,旨在实现安全且高性能的实现。 性能比较:
- 设置:将基准测试作为单独程序编写,方便保证程序不进行无效优化,可使用外部工具检查。
zlib-rs
实现依赖特定 CPU 指令,需通过.cargo/config.toml
文件指定target-cpu=native
标志。使用silezia-small.tar
作为输入数据。 - 基准测试过程:使用
poop
工具进行基准测试,它报告程序的额外统计信息,如指令计数、分支或缓存未命中次数等。poop
运行一系列命令,循环运行一段时间,然后报告每个命令的平均每次迭代时间。 - 结果:比较
ng
和rs
实现在三个压缩级别(1、6、9)下的性能。在最高压缩级别 9 时,zlib-rs
与zlib-ng
性能相近;在最低压缩级别 1 时,zlib-rs
性能较差。在解压缩速度方面,zlib-rs
与zlib-ng
也有一定差距,但在可接受范围内。
- 设置:将基准测试作为单独程序编写,方便保证程序不进行无效优化,可使用外部工具检查。
- 结论:从项目开始就注重性能,库的架构已倾向于性能,采用了
zlib-ng
的 SIMD 实现算法瓶颈,但仍有工作要做,zlib-ng
有进一步改进,更好的数据布局可能带来更多收益,还需支持更多指令集。 - 支持我们:需要财务支持来维护软件和开展新项目,如有兴趣可联系我们。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。