Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #![feature(test)]
- fn main() {
- println!("Hello, world!");
- }
- #[cfg(test)]
- mod tests {
- extern crate test;
- use self::test::Bencher;
- fn return_impl(n: usize) -> impl Iterator<Item = usize> { (0..n) }
- fn boxed_iter(n: usize) -> Box<Iterator<Item = usize>> { return Box::new(0..n); }
- fn make_vec(n: usize) -> Vec<usize> { (0..n).collect() }
- #[bench]
- fn bench_return_impl(b: &mut Bencher) {
- b.iter(|| {
- let n = test::black_box(100000);
- let mut a = 0;
- return_impl(n).for_each(|x| a ^= x);
- a
- })
- }
- #[bench]
- fn bench_boxed(b: &mut Bencher) {
- b.iter(|| {
- let n = test::black_box(100000);
- let mut a = 0;
- boxed_iter(n).for_each(|x| a ^= x);
- a
- })
- }
- #[bench]
- fn bench_vec(b: &mut Bencher) {
- b.iter(|| {
- let n = test::black_box(100000);
- let mut a = 0;
- make_vec(n).into_iter().for_each(|x| a ^= x);
- a
- })
- }
- }
Add Comment
Please, Sign In to add comment