Skip to content

Instantly share code, notes, and snippets.

@simonklee
Last active August 29, 2015 14:21
Show Gist options
  • Save simonklee/afd76c549d6c8afb8081 to your computer and use it in GitHub Desktop.
Save simonklee/afd76c549d6c8afb8081 to your computer and use it in GitHub Desktop.
bench loops
#![feature(test)]
extern crate test;
use test::Bencher;
#[bench]
fn for_range_100(b: &mut Bencher) { b.iter(|| { test::black_box(for _ in 0..100 {}); }); }
#[bench]
fn for_range_1000(b: &mut Bencher) { b.iter(|| { test::black_box(for _ in 0..1000 {}); }); }
#[bench]
fn for_range_10000(b: &mut Bencher) { b.iter(|| { test::black_box(for _ in 0..10000 {}); }); }
#[bench]
fn for_while_100(b: &mut Bencher) {
b.iter(|| {
let mut i = 0;
while i < test::black_box(100) { i+=1; }
});
}
#[bench]
fn for_while_1000(b: &mut Bencher) {
b.iter(|| {
let mut i = 0;
while i < test::black_box(1000) { i+=1; }
});
}
#[bench]
fn for_while_10000(b: &mut Bencher) {
b.iter(|| {
let mut i = 0;
while i < test::black_box(10000) { i+=1; }
});
}
$ rustc bench.rs -O --test && ./bench --bench
running 6 tests
test for_range_100 ... bench: 89 ns/iter (+/- 2)
test for_range_1000 ... bench: 929 ns/iter (+/- 98)
test for_range_10000 ... bench: 8815 ns/iter (+/- 414)
test for_while_100 ... bench: 36 ns/iter (+/- 3)
test for_while_1000 ... bench: 294 ns/iter (+/- 27)
test for_while_10000 ... bench: 2768 ns/iter (+/- 268)
test result: ok. 0 passed; 0 failed; 0 ignored; 6 measured
$ rustc --version
rustc 1.1.0-nightly (e5394240a 2015-05-14) (built 2015-05-14
$ uname -a
Linux debian 3.2.0-4-amd64 #1 SMP Debian 3.2.68-1+deb7u1 x86_64 GNU/Linux
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment