Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #[derive(Clone)]
- struct BlobData {
- data: [u8; 64508],
- }
- impl Default for BlobData {
- fn default() -> Self {
- BlobData { data: [0u8; 64508] }
- }
- }
- impl PartialEq for BlobData {
- fn eq(&self, other: &BlobData) -> bool {
- self.data.as_ref() == other.data.as_ref()
- }
- }
- #[macro_use]
- extern crate bencher;
- use bencher::Bencher;
- fn as_ref(bench: &mut Bencher) {
- let blob_data = BlobData::default();
- let blob_data2 = BlobData::default();
- bench.iter(|| blob_data == blob_data2);
- }
- fn iter_zip_all(bench: &mut Bencher) {
- let blob_data = BlobData::default();
- let blob_data2 = BlobData::default();
- bench.iter(|| {
- blob_data
- .data
- .iter()
- .zip(blob_data2.data.iter())
- .all(|(a, b)| a == b)
- });
- }
- benchmark_group!(benches, iter_zip_all, as_ref);
- benchmark_main!(benches);
- yields:
- cd ~/dev/rusty/blob/ && cargo run
- Finished dev [unoptimized + debuginfo] target(s) in 0.02s
- Running `target/debug/blob`
- running 2 tests
- test as_ref ... bench: 1,232 ns/iter (+/- 279)
- test iter_zip_all ... bench: 2,664,825 ns/iter (+/- 75,420)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement