2个版本
0.1.1 | 2018年8月30日 |
---|---|
0.1.0 | 2018年8月8日 |
#255 in #parallel
17KB
364 行
sortpar
sortpar
是一个命令行工具,可以并行地对文本文件进行排序。它是通过利用 rayon 库在切片上的实现来做到这一点的。
安装
sortpar
需要使用 nightly Rust 编译器,因为它正在测试版本。您可以通过运行以下命令来安装它:
cargo +nightly install sortpar
这将将在您的机器上的 sp
二进制文件放置在 $HOME/.cargo/bin
目录中。您可以将其添加到 $PATH
变量中以便更容易访问。如果工具对没有 Rust 的系统用户也变得有用,计划提供更多安装选项。
用法
目前 sortpar
支持Unix sort命令的子集选项。您可以通过运行以下命令来列出它们:
sp --help
基准测试
有更多的基准测试会很好,但是也很难在多个案例中准确地衡量。仅为了给出目前性能的印象,我使用 Peter Norvig的大文本文件 进行了排序。警告,该链接指向一个6.2MB的文件。
使用 hyperfine,我得到了以下结果
Benchmark #1: sp big.txt
Time (mean ± σ): 445.1 ms ± 7.6 ms [User: 857.0 ms, System: 90.8 ms]
Range (min … max): 436.6 ms … 457.4 ms
Benchmark #1: gsort --parallel=4 big.txt
Time (mean ± σ): 2.604 s ± 0.023 s [User: 2.550 s, System: 0.032 s]
Range (min … max): 2.558 s … 2.632 s
为什么我没有在GNU sort基准测试中使用 LC_ALL=C
?因为这会不公平地允许GNU sort避免UTF-8解码的开销。也许在未来 sortpar
也可以有这个选项。
问题
如果您遇到任何错误或想要添加功能,请随时提出问题。
许可证
MIT
依赖关系
~6.5MB
~134K SLoC