Last active
August 29, 2015 14:21
-
-
Save simonklee/afd76c549d6c8afb8081 to your computer and use it in GitHub Desktop.
bench loops
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#![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; } | |
}); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ 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