Skip to content

Instantly share code, notes, and snippets.

@erickt
Created June 3, 2014 14:49
Show Gist options
  • Save erickt/8a6be5c8a2542eaf0c45 to your computer and use it in GitHub Desktop.
Save erickt/8a6be5c8a2542eaf0c45 to your computer and use it in GitHub Desktop.
running 2 tests
test bench_foo2 ... bench: 43316 ns/iter (+/- 6569)
test bench_option_result ... bench: 47223 ns/iter (+/- 1800)
extern crate test;
use test::Bencher;
enum Foo {
A,
B(int, int),
}
enum Bar<T, E> {
SomeOk(T),
SomeErr(E),
None2,
}
#[bench]
fn bench_option_result(b: &mut Bencher) {
b.iter(|| {
for _ in range(0, 500) {
let v = vec!(Some(Ok(A)), Some(Ok(B(1, 2))), Some(Err("hi")), None);
for elt in v.move_iter() {
match elt {
Some(Ok(A)) => { }
Some(Ok(B(x, y))) => {
assert_eq!(x, 1);
assert_eq!(y, 2);
}
Some(Err(s)) => {
assert_eq!(s, "hi");
}
None => { }
}
}
}
});
}
#[bench]
fn bench_foo2(b: &mut Bencher) {
b.iter(|| {
for _ in range(0, 500) {
let v = vec!(SomeOk(A), SomeOk(B(1, 2)), SomeErr("hi"), None2);
for elt in v.move_iter() {
match elt {
SomeOk(A) => { }
SomeOk(B(x, y)) => {
assert_eq!(x, 1);
assert_eq!(y, 2);
}
SomeErr(s) => {
assert_eq!(s, "hi");
}
None2 => { }
}
}
}
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment