blob: f2372e3c697bbda6896fd79bb38f66265b2be983 [file] [log] [blame]
// Copyright (C) 2020 Alibaba Cloud Computing. All rights reserved.
//
// SPDX-License-Identifier: Apache-2.0 OR BSD-3-Clause
#![cfg(feature = "backend-mmap")]
pub use criterion::{black_box, Criterion};
use vm_memory::bitmap::Bitmap;
use vm_memory::{GuestAddress, GuestMemory, GuestMemoryMmap};
const REGION_SIZE: usize = 0x10_0000;
const REGIONS_COUNT: u64 = 256;
pub fn benchmark_for_guest_memory(c: &mut Criterion) {
benchmark_find_region(c);
}
fn find_region<B>(mem: &GuestMemoryMmap<B>)
where
B: Bitmap + 'static,
{
for i in 0..REGIONS_COUNT {
let _ = mem
.find_region(black_box(GuestAddress(i * REGION_SIZE as u64)))
.unwrap();
}
}
fn benchmark_find_region(c: &mut Criterion) {
let memory = super::create_guest_memory_mmap(REGION_SIZE, REGIONS_COUNT);
c.bench_function("find_region", |b| {
b.iter(|| find_region(black_box(&memory)))
});
}