Command | Mean [ms] | Min…Max [ms]
-------------|---------------|---------------
`fd .conf /` | 525.6 ± 17.7 | 505.3…552.0
`ff .conf /` | 1760.8 ± 10.2 | 1744.6…1775.3Further, it seems that this would IO-bound not CPU-bound so whatever small overhead exists in recursion vs iteration will not be noticeable.
I think the difference is rather that `fd` uses threads and `ff` does not.
Author here. This is true. ff does not use threads right now. I have started learning Rust just a few days ago. I am not quite yet familiar with advanced topics such as achieving parallelism using threads in Rust and other similar stuff. My knowledge of Rust is limited at this moment and I struggled to get the language concepts to work such as ownership, lifetimes, etc. I am sure that I will be able to improvise the ff's performance by some extent by gaining some more knowledge of Rust.
hope someone can produce a C version of them for fun
The C version of ripgrep is the thing that came before ripgrep, The Silver Searcher.