The clippy tool warns us when we try to call replace() with a single-character string as the first argument. A char can be used if a single character is being replaced.
use std::time::*;
fn main() {
if let Ok(max) =
"10000000".parse() {
// Version 1: use char replace function.
let t0 = Instant::now();
let mut count1 = 0;
for _ in 0..max {
let x =
"cat is cute and soft".to_string();
let result = x.replace(' ',
"");
count1 += result.len();
}
println!(
"{}", t0.elapsed().as_millis());
// Version 2: use string replace function.
let t1 = Instant::now();
let mut count2 = 0;
for _ in 0..max {
let x =
"cat is cute and soft".to_string();
let result = x.replace(
" ",
"");
count2 += result.len();
}
println!(
"{}", t1.elapsed().as_millis());
println!(
"{}/{}", count1, count2);
}
}
947 ms (char)
994 ms
160000000/160000000