Guest User

Untitled

a guest
Jun 25th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. #![feature(test)]
  2.  
  3. fn main() {
  4. println!("Hello, world!");
  5. }
  6.  
  7. #[cfg(test)]
  8. mod tests {
  9. extern crate test;
  10. use self::test::Bencher;
  11.  
  12. fn return_impl(n: usize) -> impl Iterator<Item = usize> { (0..n) }
  13.  
  14. fn boxed_iter(n: usize) -> Box<Iterator<Item = usize>> { return Box::new(0..n); }
  15.  
  16. fn make_vec(n: usize) -> Vec<usize> { (0..n).collect() }
  17.  
  18. #[bench]
  19. fn bench_return_impl(b: &mut Bencher) {
  20. b.iter(|| {
  21. let n = test::black_box(100000);
  22. let mut a = 0;
  23. return_impl(n).for_each(|x| a ^= x);
  24. a
  25. })
  26. }
  27.  
  28. #[bench]
  29. fn bench_boxed(b: &mut Bencher) {
  30. b.iter(|| {
  31. let n = test::black_box(100000);
  32. let mut a = 0;
  33. boxed_iter(n).for_each(|x| a ^= x);
  34. a
  35. })
  36. }
  37.  
  38. #[bench]
  39. fn bench_vec(b: &mut Bencher) {
  40. b.iter(|| {
  41. let n = test::black_box(100000);
  42. let mut a = 0;
  43. make_vec(n).into_iter().for_each(|x| a ^= x);
  44. a
  45. })
  46. }
  47. }
Add Comment
Please, Sign In to add comment