I consent to the transfer of this crate to the first person who asks help@crates.io for it.
Adds IACA compatible macros for rust to identify and fix bottlenecks and improve throughput.
When compiling with IACA enabled your executable will not run.
- Instead add the macros around the section you wish to profile as below.
- Compile in release mode:
cargo build --release
. - Run IACA from the link above (eg.):
./iaca.sh -64 ~/path/to/exe/release/librustlib.rlib
- Enjoy the extremely detailed output.
#![feature(asm)]
#[macro_use] extern crate iaca_markers;
fn main() {
let mut a = 0;
for i in 0..100 {
iaca_start!();
// Do some work
a += i;
}
iaca_end!();
println!("Summed to {}", a);
}
I have run this successfully with rustc 1.2.0-nightly (e4c64a149 2015-05-27)
. It may require beta or nightly rust for the moment until the asm feature is stabilized.