Advertisement
Guest User

Untitled

a guest
Apr 25th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. #[derive(Clone)]
  2. struct BlobData {
  3. data: [u8; 64508],
  4. }
  5.  
  6. impl Default for BlobData {
  7. fn default() -> Self {
  8. BlobData { data: [0u8; 64508] }
  9. }
  10. }
  11.  
  12. impl PartialEq for BlobData {
  13. fn eq(&self, other: &BlobData) -> bool {
  14. self.data.as_ref() == other.data.as_ref()
  15. }
  16. }
  17.  
  18. #[macro_use]
  19. extern crate bencher;
  20.  
  21. use bencher::Bencher;
  22.  
  23. fn as_ref(bench: &mut Bencher) {
  24. let blob_data = BlobData::default();
  25. let blob_data2 = BlobData::default();
  26.  
  27. bench.iter(|| blob_data == blob_data2);
  28. }
  29.  
  30. fn iter_zip_all(bench: &mut Bencher) {
  31. let blob_data = BlobData::default();
  32. let blob_data2 = BlobData::default();
  33.  
  34. bench.iter(|| {
  35. blob_data
  36. .data
  37. .iter()
  38. .zip(blob_data2.data.iter())
  39. .all(|(a, b)| a == b)
  40. });
  41. }
  42.  
  43. benchmark_group!(benches, iter_zip_all, as_ref);
  44. benchmark_main!(benches);
  45.  
  46. yields:
  47.  
  48. cd ~/dev/rusty/blob/ && cargo run
  49. Finished dev [unoptimized + debuginfo] target(s) in 0.02s
  50. Running `target/debug/blob`
  51.  
  52. running 2 tests
  53. test as_ref ... bench: 1,232 ns/iter (+/- 279)
  54. test iter_zip_all ... bench: 2,664,825 ns/iter (+/- 75,420)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement