35 lines
711 B
Rust
35 lines
711 B
Rust
#![feature(test)]
|
|
|
|
extern crate test;
|
|
|
|
use solana_runtime::message_processor::is_zeroed;
|
|
use test::Bencher;
|
|
|
|
const BUFSIZE: usize = 1024 * 1024 + 127;
|
|
static BUF0: [u8; BUFSIZE] = [0; BUFSIZE];
|
|
static BUF1: [u8; BUFSIZE] = [1; BUFSIZE];
|
|
|
|
#[bench]
|
|
fn bench_is_zeroed(bencher: &mut Bencher) {
|
|
bencher.iter(|| {
|
|
is_zeroed(&BUF0);
|
|
});
|
|
}
|
|
|
|
#[bench]
|
|
fn bench_is_zeroed_not(bencher: &mut Bencher) {
|
|
bencher.iter(|| {
|
|
is_zeroed(&BUF1);
|
|
});
|
|
}
|
|
|
|
#[bench]
|
|
fn bench_is_zeroed_by_iter(bencher: &mut Bencher) {
|
|
bencher.iter(|| BUF0.iter().all(|item| *item == 0));
|
|
}
|
|
|
|
#[bench]
|
|
fn bench_is_zeroed_not_by_iter(bencher: &mut Bencher) {
|
|
bencher.iter(|| BUF1.iter().all(|item| *item == 0));
|
|
}
|