solana/perf/benches/reset.rs

47 lines
927 B
Rust

#![feature(test)]
extern crate test;
use {
std::sync::atomic::{AtomicU64, Ordering},
test::Bencher,
};
const N: usize = 1_000_000;
// test bench_reset1 ... bench: 436,240 ns/iter (+/- 176,714)
// test bench_reset2 ... bench: 274,007 ns/iter (+/- 129,552)
#[bench]
fn bench_reset1(bencher: &mut Bencher) {
solana_logger::setup();
let mut v = Vec::with_capacity(N);
v.resize_with(N, AtomicU64::default);
bencher.iter(|| {
test::black_box({
for i in &v {
i.store(0, Ordering::Relaxed);
}
0
});
});
}
#[bench]
fn bench_reset2(bencher: &mut Bencher) {
solana_logger::setup();
let mut v = Vec::with_capacity(N);
v.resize_with(N, AtomicU64::default);
bencher.iter(|| {
test::black_box({
v.clear();
v.resize_with(N, AtomicU64::default);
0
});
});
}