Skip to content

Instantly share code, notes, and snippets.

@bluss
Last active September 28, 2016 16:19
Show Gist options
  • Save bluss/3f5ded1cdd7304e1abc7dc586ed1c1fa to your computer and use it in GitHub Desktop.
Save bluss/3f5ded1cdd7304e1abc7dc586ed1c1fa to your computer and use it in GitHub Desktop.
sum:
test bench_cloned ... bench: 60 ns/iter (+/- 0)
test bench_map ... bench: 60 ns/iter (+/- 1)
test bench_pat ... bench: 61 ns/iter (+/- 3)
find string:
test bench_cloned ... bench: 1,129 ns/iter (+/- 72)
test bench_map ... bench: 1,133 ns/iter (+/- 142)
test bench_pat ... bench: 1,133 ns/iter (+/- 54)
#![feature(test)]
extern crate test;
use test::Bencher;
use test::black_box;
#[bench]
fn bench_cloned(b: &mut Bencher) {
let strings = black_box(vec![1; 1000]);
b.iter(|| {
let mut s = 0;
for i in strings.iter().cloned() {
s += i;
}
s
})
}
#[bench]
fn bench_map(b: &mut Bencher) {
let strings = black_box(vec![1; 1000]);
b.iter(|| {
let mut s = 0;
for i in strings.iter().map(|&x| x) {
s += i;
}
s
})
}
#[bench]
fn bench_pat(b: &mut Bencher) {
let strings = black_box(vec![1; 1000]);
b.iter(|| {
let mut s = 0;
for &i in strings.iter() {
s += i;
}
s
})
}
#![feature(test)]
extern crate test;
use test::Bencher;
use test::black_box;
#[bench]
fn bench_cloned(b: &mut Bencher) {
let strings = black_box(vec!["abcd"; 1000]);
let find = black_box("boo");
b.iter(|| {
for (i, x) in strings.iter().cloned().enumerate() {
if x == find {
return Some(i);
}
}
None
})
}
#[bench]
fn bench_map(b: &mut Bencher) {
let strings = black_box(vec!["abcd"; 1000]);
let find = black_box("boo");
b.iter(|| {
for (i, x) in strings.iter().map(|&x| x).enumerate() {
if x == find {
return Some(i);
}
}
None
})
}
#[bench]
fn bench_pat(b: &mut Bencher) {
let strings = black_box(vec!["abcd"; 1000]);
let find = black_box("boo");
b.iter(|| {
for (i, &x) in strings.iter().enumerate() {
if x == find {
return Some(i);
}
}
None
})
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment