This is a small benchmarking project to compare different Rust directory walking crates, namely:
These are tested against Linux kernel Git repo which is checked out locally during benchmark suite run. All the above crates are tested in single-thread mode as well as multi-thread mode where supported (only ignore and jwalk support parallel execution).
Benchmark suite uses Criterion for statistically correct benchmarking and is meant for real life comparison between different walking implementations.
Low-end server 8-core Xeon E5-1630, 4-drive SATA RAID-10 w/ ext4 filesystem
Benchmarks have been split into two groups, bench_serial and bench_parallel for comparison.
crate | lower bound | upper bound | best estimate |
---|---|---|---|
bench_serial/find | 72.350 ms | 72.386 ms | 72.424 ms |
bench_serial/fts_walkdir | 60.928 ms | 60.965 ms | 61.001 ms |
bench_serial/walkdir | 54.954 ms | 54.980 ms | 55.008 ms |
bench_serial/ignore (serial unsorted) | 59.012 ms | 59.054 ms | 59.098 ms |
bench_serial/jwalk (serial unsorted) | 63.684 ms | 63.749 ms | 63.815 ms |
bench_parallel/ignore (n threads unsorted) | 19.036 ms | 19.047 ms | 19.058 ms |
bench_parallel/jwalk (n threads, unsorted) | 19.480 ms | 19.490 ms | 19.502 ms |