[][src]Macro plutonium::optimize

optimize!() { /* proc-macro */ }

Apply extreme optimizations to your code (requires Rust 1.45 or later).

Get stuff done with the help of optimize!

use plutonium::optimize;

macro_rules! qd_bench {
    ($($tokens:tt)*) => {{
        let start = std::time::Instant::now();
        $($tokens)*;
        start.elapsed()
    }}
};

let mut vec = Vec::<i32>::with_capacity(1000);
for _ in 0..1000 {
    vec.push(rand::thread_rng().gen_range(1, 101));
}
let mut vec2 = vec.clone();

let unoptimized_time = qd_bench!(
    vec.sort()
);
let optimized_time = qd_bench!(
    optimize!(vec2.sort())
);

assert!(optimized_time < unoptimized_time);