Why is my Rust version of “wc” slower than the one from GNU coreutils?
问题 Consider this program: use std::io::BufRead; use std::io; fn main() { let mut n = 0; let stdin = io::stdin(); for _ in stdin.lock().lines() { n += 1; } println!("{}", n); } Why is it over 10x as slow as the GNU version of wc? Take a look at how I measure it: $ yes | dd count=1000000 | wc -l 256000000 1000000+0 records in 1000000+0 records out 512000000 bytes (512 MB, 488 MiB) copied, 1.16586 s, 439 MB/s $ yes | dd count=1000000 | ./target/release/wc 1000000+0 records in 1000000+0 records out