mmstick/parallel

Update benchmarks

Closed this issue ยท 2 comments

cb908eb introduced a 3.75x time regression on my system; the benchmark results are now misleading ๐Ÿ˜„.

I'll be working on an option to disable the platform shell as soon as I finish compiling electron and atom on Gentoo. Then I'll provide more benchmarks to cover grouped, ungrouped, shell, and shell-less. You should get a performance boost by using --ungrouped at the cost of not having the output's buffered in order. It would seem that sending the already-interpreted arguments to the platform's shell causes a decent amount of overhead, to enable features of that shell, like multiple commands. In the long term, I'd like to interpret commands in parallel without requiring the platform shell.

Ah, all right then. I will close this issue.

An unrelated optimization: using threads is not necessary on Unix systems, because after a group of fork/exec calls, a wait can be issused followed by another fork/exec and so on. But this is more awkward in Rust and won't work on Windows. The Windows alternative is to use WaitForMultipleObjects, at least with reasonable concurrency values (because of API limitations).