I followed your advice and yes, the results are far more reasonnable, thank you 
Here is the corrected version (with more tests):
use color_print::*; // v0.2.0
use colored::*; // v2.0.0
const N: usize = 10_000_000;
static mut BENCH_NR: usize = 1;
macro_rules! bench {
( $title:tt $($tt:tt)* ) => {{
let now = std::time::Instant::now();
for _ in 0..N { $($tt)* }
eprintln!("{:2}. {:<14} {:>4} ms {}",
unsafe { BENCH_NR },
format!("[{}]", $title),
now.elapsed().as_millis(),
stringify!($($tt)*)
);
unsafe { BENCH_NR += 1 }
}};
}
fn main() {
eprintln!("\nNb iterations per bench: {}\n", N);
bench! { "native" print!("blue red yellow"); }
bench! { "native" print!("{}", "blue"); }
bench! { "native" print!("{} {}", "blue", "red"); }
bench! { "native" print!("{} {} {}", "blue", "red", "yellow"); }
bench! { "colored" "b".blue(); "r".red(); "y".yellow(); }
bench! { "colored" print!("{}", "blue".blue()); }
bench! { "colored" print!("{}{}", "blue".blue(), "red".red()); }
bench! { "colored" print!("{}{}{}", "blue".blue(), "red".red(), "yellow".yellow()); }
bench! { "color-print" cprint!("<b>blue<r>red<y>yellow"); }
bench! { "color-print" cprint!("<b>A"); cprint!("<r>B"); cprint!("<y>C"); }
bench! { "color-print" print!("{}", cformat!("<b>blue")); }
bench! { "color-print" print!("{}{}", cformat!("<b>blue"), cformat!("<r>red")); }
bench! { "color-print" print!("{}{}{}", cformat!("<b>A"), cformat!("<r>B"), cformat!("<y>C")); }
}
Output of cargo run --release >/dev/null
:
Nb iterations per bench: 10000000
1. [native] 393 ms print! ("blue red yellow") ;
2. [native] 382 ms print! ("{}", "blue") ;
3. [native] 604 ms print! ("{} {}", "blue", "red") ;
4. [native] 831 ms print! ("{} {} {}", "blue", "red", "yellow") ;
5. [colored] 574 ms "b".blue() ; "r".red() ; "y".yellow() ;
6. [colored] 603 ms print! ("{}", "blue".blue()) ;
7. [colored] 961 ms print! ("{}{}", "blue".blue(), "red".red()) ;
8. [colored] 1353 ms print! ("{}{}{}", "blue".blue(), "red".red(), "yellow".yellow()) ;
9. [color-print] 463 ms cprint! ("<b>blue<r>red<y>yellow") ;
10. [color-print] 1157 ms cprint! ("<b>A") ; cprint! ("<r>B") ; cprint! ("<y>C") ;
11. [color-print] 631 ms print! ("{}", cformat! ("<b>blue")) ;
12. [color-print] 1045 ms print! ("{}{}", cformat! ("<b>blue"), cformat! ("<r>red")) ;
13. [color-print] 1425 ms print! ("{}{}{}", cformat! ("<b>A"), cformat! ("<r>B"), cformat! ("<y>C")) ;