// 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(mem: &GuestMemoryMmap) 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))) }); }