Could you clarify how are you testing the speed of the first example where you are not writing anything to stdout? Thanks.
For the first Rust program, where I just write to memory, I just use the time utility when running the program from zsh. Then, I divide the number of bytes written by the number of seconds elapsed. That's why it's not an infinite loop ;)