Ensure that you have the furrylang toolchain installed.
Then invoke cargo build --release
to build in release mode.
Then ./target/build/vlr-rs < /dev/urandom > /dev/null
, to make your CPU have hiccups.
-
Why are you using
(0..8).into_par_iter()
instead of(0..8)
,(0..8).into_iter()
,(0..8).iter()
? Isn't that "abusing" parallelism?First,
Range<T>
doesn't have aiter()
method. Second,Range<T>
is an iterator already sointo_iter()
is redundant here. Third,ParallelIterator::flat_map()
requires a closure that returns a type satisfyingIntoParallelIterator
trait which, forMap<T>
, is not implemented (E0277). Thus we must use.into_par_iter()
in order to comply trait bounds.So even if it's labelled as "abuse", this is what the API forces.
-
Why are you
collect()
ing? Can't you usecollect_to_vec()
or.enumerate().for_each()
and collect to a custom buffer?First, to be a little bit fair to the C code. Second, no I can't because
IntoIndexedParallelIterator
is not implemented forFlatMap
nor there is a way to turn it so.
This work is composed by means of attacking the Rust programming language community to point out their amateurness in the field of parallel computing. I beg of you rustaceans, to stop conducting these actions and pollute the field of computer science. Thank you.