diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index a186d3ee..45d3cbe4 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -1,10 +1,46 @@ use crate::Random; use canbench_rs::{bench, bench_fn, BenchResult}; use ic_stable_structures::memory_manager::{MemoryId, MemoryManager}; -use ic_stable_structures::{storable::Blob, BTreeMap, DefaultMemoryImpl, Memory, Storable}; +use ic_stable_structures::{ + storable::{Blob, FixedVec}, + BTreeMap, DefaultMemoryImpl, Memory, Storable, +}; use std::ops::Bound; use tiny_rng::{Rand, Rng}; +// Bounded types. +type Blob4 = Blob<4>; +type Blob8 = Blob<8>; +type Blob16 = Blob<16>; +type Blob32 = Blob<32>; +type Blob64 = Blob<64>; +type Blob128 = Blob<128>; +type Blob256 = Blob<256>; +type Blob512 = Blob<512>; +type Blob1024 = Blob<1024>; + +// Unbounded types. +type FixedVec4 = FixedVec<4>; +type FixedVec8 = FixedVec<8>; +type FixedVec16 = FixedVec<16>; +type FixedVec32 = FixedVec<32>; +type FixedVec64 = FixedVec<64>; +type FixedVec128 = FixedVec<128>; +type FixedVec256 = FixedVec<256>; +type FixedVec512 = FixedVec<512>; +type FixedVec1024 = FixedVec<1024>; + +#[allow(non_upper_case_globals)] +const KiB: usize = 1024; +#[allow(non_upper_case_globals)] +const MiB: usize = 1024 * KiB; + +trait TestKey: Clone + Ord + Storable + Random {} +impl TestKey for T where T: Clone + Ord + Storable + Random {} + +trait TestValue: Clone + Storable + Random {} +impl TestValue for T where T: Clone + Storable + Random {} + /// Helper macro to generate benchmarks. macro_rules! bench_tests { ($( $fn_name:ident, $helper:ident, $k:expr, $v:expr );+ $(;)?) => { @@ -17,463 +53,734 @@ macro_rules! bench_tests { }; } -type Blob4 = Blob<4>; -type Blob8 = Blob<8>; -type Blob16 = Blob<16>; -type Blob32 = Blob<32>; -type Blob64 = Blob<64>; -type Blob128 = Blob<128>; -type Blob256 = Blob<256>; -type Blob512 = Blob<512>; -type Blob1024 = Blob<1024>; +fn generate_random_kv(n: usize, rng: &mut Rng) -> Vec<(K, V)> { + let mut pairs = Vec::with_capacity(n); + for _ in 0..n { + pairs.push((K::random(rng), V::random(rng))); + } + pairs +} -// Benchmarks inserting blobs into a BTreeMap. -bench_tests! { - // K x 1024 - btreemap_insert_blob_4_1024, insert_helper_v1, Blob4, Blob1024; - btreemap_insert_blob_4_1024_v2, insert_helper_v2, Blob4, Blob1024; - btreemap_insert_blob_8_1024, insert_helper_v1, Blob8, Blob1024; - btreemap_insert_blob_8_1024_v2, insert_helper_v2, Blob8, Blob1024; - btreemap_insert_blob_16_1024, insert_helper_v1, Blob16, Blob1024; - btreemap_insert_blob_16_1024_v2, insert_helper_v2, Blob16, Blob1024; - btreemap_insert_blob_32_1024, insert_helper_v1, Blob32, Blob1024; - btreemap_insert_blob_32_1024_v2, insert_helper_v2, Blob32, Blob1024; - btreemap_insert_blob_64_1024, insert_helper_v1, Blob64, Blob1024; - btreemap_insert_blob_64_1024_v2, insert_helper_v2, Blob64, Blob1024; - btreemap_insert_blob_128_1024, insert_helper_v1, Blob128, Blob1024; - btreemap_insert_blob_128_1024_v2, insert_helper_v2, Blob128, Blob1024; - btreemap_insert_blob_256_1024, insert_helper_v1, Blob256, Blob1024; - btreemap_insert_blob_256_1024_v2, insert_helper_v2, Blob256, Blob1024; - btreemap_insert_blob_512_1024, insert_helper_v1, Blob512, Blob1024; - btreemap_insert_blob_512_1024_v2, insert_helper_v2, Blob512, Blob1024; - - // 1024 x V - btreemap_insert_blob_1024_4, insert_helper_v1, Blob1024, Blob4; - btreemap_insert_blob_1024_4_v2, insert_helper_v2, Blob1024, Blob4; - btreemap_insert_blob_1024_8, insert_helper_v1, Blob1024, Blob8; - btreemap_insert_blob_1024_8_v2, insert_helper_v2, Blob1024, Blob8; - btreemap_insert_blob_1024_16, insert_helper_v1, Blob1024, Blob16; - btreemap_insert_blob_1024_16_v2, insert_helper_v2, Blob1024, Blob16; - btreemap_insert_blob_1024_32, insert_helper_v1, Blob1024, Blob32; - btreemap_insert_blob_1024_32_v2, insert_helper_v2, Blob1024, Blob32; - btreemap_insert_blob_1024_64, insert_helper_v1, Blob1024, Blob64; - btreemap_insert_blob_1024_64_v2, insert_helper_v2, Blob1024, Blob64; - btreemap_insert_blob_1024_128, insert_helper_v1, Blob1024, Blob128; - btreemap_insert_blob_1024_128_v2, insert_helper_v2, Blob1024, Blob128; - btreemap_insert_blob_1024_256, insert_helper_v1, Blob1024, Blob256; - btreemap_insert_blob_1024_256_v2, insert_helper_v2, Blob1024, Blob256; - btreemap_insert_blob_1024_512, insert_helper_v1, Blob1024, Blob512; - btreemap_insert_blob_1024_512_v2, insert_helper_v2, Blob1024, Blob512; - btreemap_insert_blob_1024_512_v2_mem_manager, insert_helper_v2_mem_manager, Blob1024, Blob512; - - btreemap_insert_u64_u64, insert_helper_v1, u64, u64; - btreemap_insert_u64_u64_v2, insert_helper_v2, u64, u64; - btreemap_insert_u64_u64_v2_mem_manager, insert_helper_v2_mem_manager, u64, u64; - - btreemap_insert_u64_blob_8, insert_helper_v1, u64, Blob8; - btreemap_insert_u64_blob_8_v2, insert_helper_v2, u64, Blob8; - btreemap_insert_blob_8_u64, insert_helper_v1, Blob8, u64; - btreemap_insert_blob_8_u64_v2, insert_helper_v2, Blob8, u64; -} - -// Benchmarks removing keys from a BTreeMap. -bench_tests! { - // K x 1024 - btreemap_remove_blob_4_1024, remove_helper_v1, Blob4, Blob1024; - btreemap_remove_blob_4_1024_v2, remove_helper_v2, Blob4, Blob1024; - btreemap_remove_blob_8_1024, remove_helper_v1, Blob8, Blob1024; - btreemap_remove_blob_8_1024_v2, remove_helper_v2, Blob8, Blob1024; - btreemap_remove_blob_16_1024, remove_helper_v1, Blob16, Blob1024; - btreemap_remove_blob_16_1024_v2, remove_helper_v2, Blob16, Blob1024; - btreemap_remove_blob_32_1024, remove_helper_v1, Blob32, Blob1024; - btreemap_remove_blob_32_1024_v2, remove_helper_v2, Blob32, Blob1024; - btreemap_remove_blob_64_1024, remove_helper_v1, Blob64, Blob1024; - btreemap_remove_blob_64_1024_v2, remove_helper_v2, Blob64, Blob1024; - btreemap_remove_blob_128_1024, remove_helper_v1, Blob128, Blob1024; - btreemap_remove_blob_128_1024_v2, remove_helper_v2, Blob128, Blob1024; - btreemap_remove_blob_256_1024, remove_helper_v1, Blob256, Blob1024; - btreemap_remove_blob_256_1024_v2, remove_helper_v2, Blob256, Blob1024; - btreemap_remove_blob_512_1024, remove_helper_v1, Blob512, Blob1024; - btreemap_remove_blob_512_1024_v2, remove_helper_v2, Blob512, Blob1024; - - btreemap_remove_u64_u64, remove_helper_v1, u64, u64; - btreemap_remove_u64_u64_v2, remove_helper_v2, u64, u64; - - btreemap_remove_u64_blob_8, remove_helper_v1, u64, Blob8; - btreemap_remove_u64_blob_8_v2, remove_helper_v2, u64, Blob8; - btreemap_remove_blob_8_u64, remove_helper_v1, Blob8, u64; - btreemap_remove_blob_8_u64_v2, remove_helper_v2, Blob8, u64; -} - -// Benchmarks getting keys from a BTreeMap. -bench_tests! { - // K x 1024 - btreemap_get_blob_4_1024, get_helper_v1, Blob4, Blob1024; - btreemap_get_blob_4_1024_v2, get_helper_v2, Blob4, Blob1024; - btreemap_get_blob_8_1024, get_helper_v1, Blob8, Blob1024; - btreemap_get_blob_8_1024_v2, get_helper_v2, Blob8, Blob1024; - btreemap_get_blob_16_1024, get_helper_v1, Blob16, Blob1024; - btreemap_get_blob_16_1024_v2, get_helper_v2, Blob16, Blob1024; - btreemap_get_blob_32_1024, get_helper_v1, Blob32, Blob1024; - btreemap_get_blob_32_1024_v2, get_helper_v2, Blob32, Blob1024; - btreemap_get_blob_64_1024, get_helper_v1, Blob64, Blob1024; - btreemap_get_blob_64_1024_v2, get_helper_v2, Blob64, Blob1024; - btreemap_get_blob_128_1024, get_helper_v1, Blob128, Blob1024; - btreemap_get_blob_128_1024_v2, get_helper_v2, Blob128, Blob1024; - btreemap_get_blob_256_1024, get_helper_v1, Blob256, Blob1024; - btreemap_get_blob_256_1024_v2, get_helper_v2, Blob256, Blob1024; - btreemap_get_blob_512_1024, get_helper_v1, Blob512, Blob1024; - btreemap_get_blob_512_1024_v2, get_helper_v2, Blob512, Blob1024; - btreemap_get_blob_512_1024_v2_mem_manager, get_helper_v2_mem_manager, Blob512, Blob1024; - - btreemap_get_u64_u64, get_helper_v1, u64, u64; - btreemap_get_u64_u64_v2, get_helper_v2, u64, u64; - btreemap_get_u64_u64_v2_mem_manager, get_helper_v2_mem_manager, u64, u64; - - btreemap_get_u64_blob_8, get_helper_v1, u64, Blob8; - btreemap_get_u64_blob_8_v2, get_helper_v2, u64, Blob8; - btreemap_get_blob_8_u64, get_helper_v1, Blob8, u64; - btreemap_get_blob_8_u64_v2, get_helper_v2, Blob8, u64; -} - -// Benchmarks `contains_key` of a BTreeMap. +fn generate_random_blocks(count: usize, block_size: usize, rng: &mut Rng) -> Vec> { + (0..count) + .map(|_| (0..block_size).map(|_| rng.rand_u8()).collect()) + .collect() +} + +// Benchmarks for `BTreeMap::insert`. bench_tests! { - btreemap_contains_key_blob_4_1024, contains_key_helper_v1, Blob4, Blob1024; - btreemap_contains_key_blob_4_1024_v2, contains_key_helper_v2, Blob4, Blob1024; + // blob K x 128 + btreemap_v2_insert_blob_4_128, insert_helper_v2, Blob4, Blob128; + btreemap_v2_insert_blob_8_128, insert_helper_v2, Blob8, Blob128; + btreemap_v2_insert_blob_16_128, insert_helper_v2, Blob16, Blob128; + btreemap_v2_insert_blob_32_128, insert_helper_v2, Blob32, Blob128; + btreemap_v2_insert_blob_64_128, insert_helper_v2, Blob64, Blob128; + btreemap_v2_insert_blob_128_128, insert_helper_v2, Blob128, Blob128; + btreemap_v2_insert_blob_256_128, insert_helper_v2, Blob256, Blob128; + btreemap_v2_insert_blob_512_128, insert_helper_v2, Blob512, Blob128; + btreemap_v2_insert_blob_1024_128, insert_helper_v2, Blob1024, Blob128; + + // blob 32 x V + btreemap_v2_insert_blob_32_4, insert_helper_v2, Blob32, Blob4; + btreemap_v2_insert_blob_32_8, insert_helper_v2, Blob32, Blob8; + btreemap_v2_insert_blob_32_16, insert_helper_v2, Blob32, Blob16; + btreemap_v2_insert_blob_32_32, insert_helper_v2, Blob32, Blob32; + btreemap_v2_insert_blob_32_64, insert_helper_v2, Blob32, Blob64; + //btreemap_v2_insert_blob_32_128, insert_helper_v2, Blob32, Blob128; // Skip repeated. + btreemap_v2_insert_blob_32_256, insert_helper_v2, Blob32, Blob256; + btreemap_v2_insert_blob_32_512, insert_helper_v2, Blob32, Blob512; + btreemap_v2_insert_blob_32_1024, insert_helper_v2, Blob32, Blob1024; + + // vec K x 128 + btreemap_v2_insert_vec_4_128, insert_helper_v2, FixedVec4, FixedVec128; + btreemap_v2_insert_vec_8_128, insert_helper_v2, FixedVec8, FixedVec128; + btreemap_v2_insert_vec_16_128, insert_helper_v2, FixedVec16, FixedVec128; + btreemap_v2_insert_vec_32_128, insert_helper_v2, FixedVec32, FixedVec128; + btreemap_v2_insert_vec_64_128, insert_helper_v2, FixedVec64, FixedVec128; + btreemap_v2_insert_vec_128_128, insert_helper_v2, FixedVec128, FixedVec128; + btreemap_v2_insert_vec_256_128, insert_helper_v2, FixedVec256, FixedVec128; + btreemap_v2_insert_vec_512_128, insert_helper_v2, FixedVec512, FixedVec128; + btreemap_v2_insert_vec_1024_128, insert_helper_v2, FixedVec1024, FixedVec128; + + // vec 32 x V + btreemap_v2_insert_vec_32_4, insert_helper_v2, FixedVec32, FixedVec4; + btreemap_v2_insert_vec_32_8, insert_helper_v2, FixedVec32, FixedVec8; + btreemap_v2_insert_vec_32_16, insert_helper_v2, FixedVec32, FixedVec16; + btreemap_v2_insert_vec_32_32, insert_helper_v2, FixedVec32, FixedVec32; + btreemap_v2_insert_vec_32_64, insert_helper_v2, FixedVec32, FixedVec64; + //btreemap_v2_insert_vec_32_128, insert_helper_v2, FixedVec32, FixedVec128; // Skip repeated. + btreemap_v2_insert_vec_32_256, insert_helper_v2, FixedVec32, FixedVec256; + btreemap_v2_insert_vec_32_512, insert_helper_v2, FixedVec32, FixedVec512; + btreemap_v2_insert_vec_32_1024, insert_helper_v2, FixedVec32, FixedVec1024; + + // u64 / blob8 / vec8 + btreemap_v2_insert_u64_u64, insert_helper_v2, u64, u64; + btreemap_v2_insert_u64_blob8, insert_helper_v2, u64, Blob8; + btreemap_v2_insert_blob8_u64, insert_helper_v2, Blob8, u64; + btreemap_v2_insert_u64_vec8, insert_helper_v2, u64, FixedVec8; + btreemap_v2_insert_vec8_u64, insert_helper_v2, FixedVec8, u64; + + // memory manager u64 / blob512 / vec512 + btreemap_v2_mem_manager_insert_u64_u64, insert_helper_v2_mem_manager, u64, u64; + btreemap_v2_mem_manager_insert_u64_blob512, insert_helper_v2_mem_manager, u64, Blob512; + btreemap_v2_mem_manager_insert_blob512_u64, insert_helper_v2_mem_manager, Blob512, u64; + btreemap_v2_mem_manager_insert_u64_vec512, insert_helper_v2_mem_manager, u64, FixedVec512; + btreemap_v2_mem_manager_insert_vec512_u64, insert_helper_v2_mem_manager, FixedVec512, u64; +} + +fn insert_helper_v2() -> BenchResult { + let btree = BTreeMap::new(DefaultMemoryImpl::default()); + insert_helper::(btree) } -#[bench(raw)] -pub fn btreemap_insert_10mib_values() -> BenchResult { - let mut btree = BTreeMap::new(DefaultMemoryImpl::default()); +fn insert_helper_v2_mem_manager() -> BenchResult { + let memory_manager = MemoryManager::init(DefaultMemoryImpl::default()); + let btree = BTreeMap::new(memory_manager.get(MemoryId::new(42))); + insert_helper::(btree) +} - // Insert 20 10MiB values. +// Profiles inserting a large number of random blobs into a btreemap. +fn insert_helper(mut btree: BTreeMap) -> BenchResult { + let count = 10_000; let mut rng = Rng::from_seed(0); - let mut values = vec![]; - for _ in 0..20 { - values.push( - rng.iter(Rand::rand_u8) - .take(10 * 1024 * 1024) - .collect::>(), - ); - } + let items = generate_random_kv::(count, &mut rng); bench_fn(|| { - for (i, value) in values.into_iter().enumerate() { - btree.insert(i as u32, value); + // Insert the items into the btree. + for (k, v) in items { + btree.insert(k, v); } }) } -// Read a range of entries but only process the key of each entry. #[bench(raw)] -pub fn btreemap_read_keys_from_range() -> BenchResult { +pub fn btreemap_v2_insert_10mib_values() -> BenchResult { + let count = 20; let mut btree = BTreeMap::new(DefaultMemoryImpl::default()); - let size: u32 = 10_000; - for i in 0..size { - btree.insert(i, vec![0; 1024]); - } - - bench_fn(|| { - btree - .range((Bound::Included(0), Bound::Included(size))) - .map(|entry| entry.0) - .sum::() - }) -} - -// Read a range of entries but only process the value from every third entry. -#[bench(raw)] -pub fn btreemap_read_every_third_value_from_range() -> BenchResult { - let mut btree = BTreeMap::new(DefaultMemoryImpl::default()); - let size: u32 = 10_000; - for i in 0..size { - btree.insert(i, vec![0; 1024]); - } + let mut rng = Rng::from_seed(0); + let values = generate_random_blocks(count, 10 * MiB, &mut rng); bench_fn(|| { - btree - .range((Bound::Included(0), Bound::Included(size))) - .filter(|entry| entry.0 % 3 == 0) - .map(|entry| entry.1.len()) - .sum::() + for (i, value) in values.into_iter().enumerate() { + btree.insert(i as u32, value); + } }) } -#[bench(raw)] -pub fn btreemap_iter_small_values() -> BenchResult { - iter_helper(10_000, 0, IterType::Iter) -} - -#[bench(raw)] -pub fn btreemap_iter_rev_small_values() -> BenchResult { - iter_helper(10_000, 0, IterType::IterRev) -} - -#[bench(raw)] -pub fn btreemap_iter_10mib_values() -> BenchResult { - iter_helper(200, 10 * 1024, IterType::Iter) -} - -#[bench(raw)] -pub fn btreemap_iter_rev_10mib_values() -> BenchResult { - iter_helper(200, 10 * 1024, IterType::IterRev) -} - -#[bench(raw)] -pub fn btreemap_keys_small_values() -> BenchResult { - iter_helper(10_000, 0, IterType::Keys) +// Benchmarks for `BTreeMap::remove`. +bench_tests! { + // blob K x 128 + btreemap_v2_remove_blob_4_128, remove_helper_v2, Blob4, Blob128; + btreemap_v2_remove_blob_8_128, remove_helper_v2, Blob8, Blob128; + btreemap_v2_remove_blob_16_128, remove_helper_v2, Blob16, Blob128; + btreemap_v2_remove_blob_32_128, remove_helper_v2, Blob32, Blob128; + btreemap_v2_remove_blob_64_128, remove_helper_v2, Blob64, Blob128; + btreemap_v2_remove_blob_128_128, remove_helper_v2, Blob128, Blob128; + btreemap_v2_remove_blob_256_128, remove_helper_v2, Blob256, Blob128; + btreemap_v2_remove_blob_512_128, remove_helper_v2, Blob512, Blob128; + btreemap_v2_remove_blob_1024_128, remove_helper_v2, Blob1024, Blob128; + + // blob 32 x V + btreemap_v2_remove_blob_32_4, remove_helper_v2, Blob32, Blob4; + btreemap_v2_remove_blob_32_8, remove_helper_v2, Blob32, Blob8; + btreemap_v2_remove_blob_32_16, remove_helper_v2, Blob32, Blob16; + btreemap_v2_remove_blob_32_32, remove_helper_v2, Blob32, Blob32; + btreemap_v2_remove_blob_32_64, remove_helper_v2, Blob32, Blob64; + //btreemap_v2_remove_blob_32_128, remove_helper_v2, Blob32, Blob128; // Skip repeated. + btreemap_v2_remove_blob_32_256, remove_helper_v2, Blob32, Blob256; + btreemap_v2_remove_blob_32_512, remove_helper_v2, Blob32, Blob512; + btreemap_v2_remove_blob_32_1024, remove_helper_v2, Blob32, Blob1024; + + // vec K x 128 + btreemap_v2_remove_vec_4_128, remove_helper_v2, FixedVec4, FixedVec128; + btreemap_v2_remove_vec_8_128, remove_helper_v2, FixedVec8, FixedVec128; + btreemap_v2_remove_vec_16_128, remove_helper_v2, FixedVec16, FixedVec128; + btreemap_v2_remove_vec_32_128, remove_helper_v2, FixedVec32, FixedVec128; + btreemap_v2_remove_vec_64_128, remove_helper_v2, FixedVec64, FixedVec128; + btreemap_v2_remove_vec_128_128, remove_helper_v2, FixedVec128, FixedVec128; + btreemap_v2_remove_vec_256_128, remove_helper_v2, FixedVec256, FixedVec128; + btreemap_v2_remove_vec_512_128, remove_helper_v2, FixedVec512, FixedVec128; + btreemap_v2_remove_vec_1024_128, remove_helper_v2, FixedVec1024, FixedVec128; + + // vec 32 x V + btreemap_v2_remove_vec_32_4, remove_helper_v2, FixedVec32, FixedVec4; + btreemap_v2_remove_vec_32_8, remove_helper_v2, FixedVec32, FixedVec8; + btreemap_v2_remove_vec_32_16, remove_helper_v2, FixedVec32, FixedVec16; + btreemap_v2_remove_vec_32_32, remove_helper_v2, FixedVec32, FixedVec32; + btreemap_v2_remove_vec_32_64, remove_helper_v2, FixedVec32, FixedVec64; + //btreemap_v2_remove_vec_32_128, remove_helper_v2, FixedVec32, FixedVec128; // Skip repeated. + btreemap_v2_remove_vec_32_256, remove_helper_v2, FixedVec32, FixedVec256; + btreemap_v2_remove_vec_32_512, remove_helper_v2, FixedVec32, FixedVec512; + btreemap_v2_remove_vec_32_1024, remove_helper_v2, FixedVec32, FixedVec1024; + + // u64 / blob8 / vec8 + btreemap_v2_remove_u64_u64, remove_helper_v2, u64, u64; + btreemap_v2_remove_u64_blob8, remove_helper_v2, u64, Blob8; + btreemap_v2_remove_blob8_u64, remove_helper_v2, Blob8, u64; + btreemap_v2_remove_u64_vec8, remove_helper_v2, u64, FixedVec8; + btreemap_v2_remove_vec8_u64, remove_helper_v2, FixedVec8, u64; + + // memory manager u64 / blob512 / vec512 + btreemap_v2_mem_manager_remove_u64_u64, remove_helper_v2_mem_manager, u64, u64; + btreemap_v2_mem_manager_remove_u64_blob512, remove_helper_v2_mem_manager, u64, Blob512; + btreemap_v2_mem_manager_remove_blob512_u64, remove_helper_v2_mem_manager, Blob512, u64; + btreemap_v2_mem_manager_remove_u64_vec512, remove_helper_v2_mem_manager, u64, FixedVec512; + btreemap_v2_mem_manager_remove_vec512_u64, remove_helper_v2_mem_manager, FixedVec512, u64; +} + +fn remove_helper_v2() -> BenchResult { + let btree = BTreeMap::new(DefaultMemoryImpl::default()); + remove_helper::(btree) } -#[bench(raw)] -pub fn btreemap_keys_rev_small_values() -> BenchResult { - iter_helper(10_000, 0, IterType::KeysRev) +fn remove_helper_v2_mem_manager() -> BenchResult { + let memory_manager = MemoryManager::init(DefaultMemoryImpl::default()); + let btree = BTreeMap::new(memory_manager.get(MemoryId::new(42))); + remove_helper::(btree) } -#[bench(raw)] -pub fn btreemap_keys_10mib_values() -> BenchResult { - iter_helper(200, 10 * 1024, IterType::Keys) -} +// Inserts a large number of random blobs into a btreemap, then profiles removing them. +fn remove_helper(mut btree: BTreeMap) -> BenchResult { + let count = 10_000; + let mut rng = Rng::from_seed(0); + let items = generate_random_kv::(count, &mut rng); + for (k, v) in items.clone() { + btree.insert(k, v); + } -#[bench(raw)] -pub fn btreemap_keys_rev_10mib_values() -> BenchResult { - iter_helper(200, 10 * 1024, IterType::KeysRev) + let keys: Vec = items.into_iter().map(|(k, _)| k).collect(); + bench_fn(|| { + // Remove the keys from the btree. + for random_key in keys { + btree.remove(&random_key); + } + }) } #[bench(raw)] -pub fn btreemap_values_small_values() -> BenchResult { - iter_helper(10_000, 0, IterType::Values) -} +pub fn btreemap_v2_remove_10mib_values() -> BenchResult { + let count = 20; + let mut btree = BTreeMap::new(DefaultMemoryImpl::default()); + let mut rng = Rng::from_seed(0); + let values = generate_random_blocks(count, 10 * MiB, &mut rng); + for (i, value) in values.into_iter().enumerate() { + btree.insert(i as u32, value); + } -#[bench(raw)] -pub fn btreemap_values_rev_small_values() -> BenchResult { - iter_helper(10_000, 0, IterType::ValuesRev) + bench_fn(|| { + for i in 0..count { + btree.remove(&(i as u32)); + } + }) } -#[bench(raw)] -pub fn btreemap_values_10mib_values() -> BenchResult { - iter_helper(200, 10 * 1024, IterType::Values) +// Benchmarks for `BTreeMap::get`. +bench_tests! { + // blob K x 128 + btreemap_v2_get_blob_4_128, get_helper_v2, Blob4, Blob128; + btreemap_v2_get_blob_8_128, get_helper_v2, Blob8, Blob128; + btreemap_v2_get_blob_16_128, get_helper_v2, Blob16, Blob128; + btreemap_v2_get_blob_32_128, get_helper_v2, Blob32, Blob128; + btreemap_v2_get_blob_64_128, get_helper_v2, Blob64, Blob128; + btreemap_v2_get_blob_128_128, get_helper_v2, Blob128, Blob128; + btreemap_v2_get_blob_256_128, get_helper_v2, Blob256, Blob128; + btreemap_v2_get_blob_512_128, get_helper_v2, Blob512, Blob128; + btreemap_v2_get_blob_1024_128, get_helper_v2, Blob1024, Blob128; + + // blob 32 x V + btreemap_v2_get_blob_32_4, get_helper_v2, Blob32, Blob4; + btreemap_v2_get_blob_32_8, get_helper_v2, Blob32, Blob8; + btreemap_v2_get_blob_32_16, get_helper_v2, Blob32, Blob16; + btreemap_v2_get_blob_32_32, get_helper_v2, Blob32, Blob32; + btreemap_v2_get_blob_32_64, get_helper_v2, Blob32, Blob64; + //btreemap_v2_get_blob_32_128, get_helper_v2, Blob32, Blob128; // Skip repeated. + btreemap_v2_get_blob_32_256, get_helper_v2, Blob32, Blob256; + btreemap_v2_get_blob_32_512, get_helper_v2, Blob32, Blob512; + btreemap_v2_get_blob_32_1024, get_helper_v2, Blob32, Blob1024; + + // vec K x 128 + btreemap_v2_get_vec_4_128, get_helper_v2, FixedVec4, FixedVec128; + btreemap_v2_get_vec_8_128, get_helper_v2, FixedVec8, FixedVec128; + btreemap_v2_get_vec_16_128, get_helper_v2, FixedVec16, FixedVec128; + btreemap_v2_get_vec_32_128, get_helper_v2, FixedVec32, FixedVec128; + btreemap_v2_get_vec_64_128, get_helper_v2, FixedVec64, FixedVec128; + btreemap_v2_get_vec_128_128, get_helper_v2, FixedVec128, FixedVec128; + btreemap_v2_get_vec_256_128, get_helper_v2, FixedVec256, FixedVec128; + btreemap_v2_get_vec_512_128, get_helper_v2, FixedVec512, FixedVec128; + btreemap_v2_get_vec_1024_128, get_helper_v2, FixedVec1024, FixedVec128; + + // vec 32 x V + btreemap_v2_get_vec_32_4, get_helper_v2, FixedVec32, FixedVec4; + btreemap_v2_get_vec_32_8, get_helper_v2, FixedVec32, FixedVec8; + btreemap_v2_get_vec_32_16, get_helper_v2, FixedVec32, FixedVec16; + btreemap_v2_get_vec_32_32, get_helper_v2, FixedVec32, FixedVec32; + btreemap_v2_get_vec_32_64, get_helper_v2, FixedVec32, FixedVec64; + //btreemap_v2_get_vec_32_128, get_helper_v2, FixedVec32, FixedVec128; // Skip repeated. + btreemap_v2_get_vec_32_256, get_helper_v2, FixedVec32, FixedVec256; + btreemap_v2_get_vec_32_512, get_helper_v2, FixedVec32, FixedVec512; + btreemap_v2_get_vec_32_1024, get_helper_v2, FixedVec32, FixedVec1024; + + // u64 / blob8 / vec8 + btreemap_v2_get_u64_u64, get_helper_v2, u64, u64; + btreemap_v2_get_u64_blob8, get_helper_v2, u64, Blob8; + btreemap_v2_get_blob8_u64, get_helper_v2, Blob8, u64; + btreemap_v2_get_u64_vec8, get_helper_v2, u64, FixedVec8; + btreemap_v2_get_vec8_u64, get_helper_v2, FixedVec8, u64; + + // memory manager u64 / blob512 / vec512 + btreemap_v2_mem_manager_get_u64_u64, get_helper_v2_mem_manager, u64, u64; + btreemap_v2_mem_manager_get_u64_blob512, get_helper_v2_mem_manager, u64, Blob512; + btreemap_v2_mem_manager_get_blob512_u64, get_helper_v2_mem_manager, Blob512, u64; + btreemap_v2_mem_manager_get_u64_vec512, get_helper_v2_mem_manager, u64, FixedVec512; + btreemap_v2_mem_manager_get_vec512_u64, get_helper_v2_mem_manager, FixedVec512, u64; +} + +fn get_helper_v2() -> BenchResult { + let btree = BTreeMap::new(DefaultMemoryImpl::default()); + get_helper::(btree) } -#[bench(raw)] -pub fn btreemap_values_rev_10mib_values() -> BenchResult { - iter_helper(200, 10 * 1024, IterType::ValuesRev) +fn get_helper_v2_mem_manager() -> BenchResult { + let memory_manager = MemoryManager::init(DefaultMemoryImpl::default()); + let btree = BTreeMap::new(memory_manager.get(MemoryId::new(42))); + get_helper::(btree) } -#[bench(raw)] -pub fn btreemap_iter_count_small_values() -> BenchResult { - let mut btree = BTreeMap::new(DefaultMemoryImpl::default()); - let size: u32 = 10_000; - for i in 0..size { - btree.insert(i, vec![]); +// Profiles getting a large number of random blobs from a btreemap. +fn get_helper(mut btree: BTreeMap) -> BenchResult { + let count = 10_000; + let mut rng = Rng::from_seed(0); + let items = generate_random_kv::(count, &mut rng); + for (k, v) in items.clone() { + btree.insert(k, v); } + let keys: Vec = items.into_iter().map(|(k, _)| k).collect(); bench_fn(|| { - btree - .range((Bound::Included(0), Bound::Included(size))) - .count(); + // Get all the keys from the map. + for random_key in keys { + btree.get(&random_key); + } }) } #[bench(raw)] -pub fn btreemap_iter_count_10mib_values() -> BenchResult { +pub fn btreemap_v2_get_10mib_values() -> BenchResult { + let count = 20; let mut btree = BTreeMap::new(DefaultMemoryImpl::default()); - - let size: u8 = 200; - - // Insert 200 10MiB values. - for i in 0..size { - btree.insert(i, vec![0u8; 10 * 1024]); + let mut rng = Rng::from_seed(0); + let values = generate_random_blocks(count, 10 * MiB, &mut rng); + for (i, value) in values.into_iter().enumerate() { + btree.insert(i as u32, value); } bench_fn(|| { - btree - .range((Bound::Included(0), Bound::Included(size))) - .count(); + for i in 0..count { + btree.get(&(i as u32)); + } }) } -// Profiles inserting a large number of random blobs into a btreemap. -fn insert_helper_v1() -> BenchResult { - let btree = BTreeMap::new_v1(DefaultMemoryImpl::default()); - insert_helper::(btree) -} - -fn insert_helper_v2() -> BenchResult { +// Benchmarks for `BTreeMap::contains_key`. +bench_tests! { + // blob K x 128 + btreemap_v2_contains_blob_4_128, contains_helper_v2, Blob4, Blob128; + btreemap_v2_contains_blob_8_128, contains_helper_v2, Blob8, Blob128; + btreemap_v2_contains_blob_16_128, contains_helper_v2, Blob16, Blob128; + btreemap_v2_contains_blob_32_128, contains_helper_v2, Blob32, Blob128; + btreemap_v2_contains_blob_64_128, contains_helper_v2, Blob64, Blob128; + btreemap_v2_contains_blob_128_128, contains_helper_v2, Blob128, Blob128; + btreemap_v2_contains_blob_256_128, contains_helper_v2, Blob256, Blob128; + btreemap_v2_contains_blob_512_128, contains_helper_v2, Blob512, Blob128; + btreemap_v2_contains_blob_1024_128, contains_helper_v2, Blob1024, Blob128; + + // blob 32 x V + btreemap_v2_contains_blob_32_4, contains_helper_v2, Blob32, Blob4; + btreemap_v2_contains_blob_32_8, contains_helper_v2, Blob32, Blob8; + btreemap_v2_contains_blob_32_16, contains_helper_v2, Blob32, Blob16; + btreemap_v2_contains_blob_32_32, contains_helper_v2, Blob32, Blob32; + btreemap_v2_contains_blob_32_64, contains_helper_v2, Blob32, Blob64; + //btreemap_v2_contains_blob_32_128, contains_helper_v2, Blob32, Blob128; // Skip repeated. + btreemap_v2_contains_blob_32_256, contains_helper_v2, Blob32, Blob256; + btreemap_v2_contains_blob_32_512, contains_helper_v2, Blob32, Blob512; + btreemap_v2_contains_blob_32_1024, contains_helper_v2, Blob32, Blob1024; + + // vec K x 128 + btreemap_v2_contains_vec_4_128, contains_helper_v2, FixedVec4, FixedVec128; + btreemap_v2_contains_vec_8_128, contains_helper_v2, FixedVec8, FixedVec128; + btreemap_v2_contains_vec_16_128, contains_helper_v2, FixedVec16, FixedVec128; + btreemap_v2_contains_vec_32_128, contains_helper_v2, FixedVec32, FixedVec128; + btreemap_v2_contains_vec_64_128, contains_helper_v2, FixedVec64, FixedVec128; + btreemap_v2_contains_vec_128_128, contains_helper_v2, FixedVec128, FixedVec128; + btreemap_v2_contains_vec_256_128, contains_helper_v2, FixedVec256, FixedVec128; + btreemap_v2_contains_vec_512_128, contains_helper_v2, FixedVec512, FixedVec128; + btreemap_v2_contains_vec_1024_128, contains_helper_v2, FixedVec1024, FixedVec128; + + // vec 32 x V + btreemap_v2_contains_vec_32_4, contains_helper_v2, FixedVec32, FixedVec4; + btreemap_v2_contains_vec_32_8, contains_helper_v2, FixedVec32, FixedVec8; + btreemap_v2_contains_vec_32_16, contains_helper_v2, FixedVec32, FixedVec16; + btreemap_v2_contains_vec_32_32, contains_helper_v2, FixedVec32, FixedVec32; + btreemap_v2_contains_vec_32_64, contains_helper_v2, FixedVec32, FixedVec64; + //btreemap_v2_contains_vec_32_128, contains_helper_v2, FixedVec32, FixedVec128; // Skip repeated. + btreemap_v2_contains_vec_32_256, contains_helper_v2, FixedVec32, FixedVec256; + btreemap_v2_contains_vec_32_512, contains_helper_v2, FixedVec32, FixedVec512; + btreemap_v2_contains_vec_32_1024, contains_helper_v2, FixedVec32, FixedVec1024; + + // u64 / blob8 / vec8 + btreemap_v2_contains_u64_u64, contains_helper_v2, u64, u64; + btreemap_v2_contains_u64_blob8, contains_helper_v2, u64, Blob8; + btreemap_v2_contains_blob8_u64, contains_helper_v2, Blob8, u64; + btreemap_v2_contains_u64_vec8, contains_helper_v2, u64, FixedVec8; + btreemap_v2_contains_vec8_u64, contains_helper_v2, FixedVec8, u64; + + // memory manager u64 / blob512 / vec512 + btreemap_v2_mem_manager_contains_u64_u64, contains_helper_v2_mem_manager, u64, u64; + btreemap_v2_mem_manager_contains_u64_blob512, contains_helper_v2_mem_manager, u64, Blob512; + btreemap_v2_mem_manager_contains_blob512_u64, contains_helper_v2_mem_manager, Blob512, u64; + btreemap_v2_mem_manager_contains_u64_vec512, contains_helper_v2_mem_manager, u64, FixedVec512; + btreemap_v2_mem_manager_contains_vec512_u64, contains_helper_v2_mem_manager, FixedVec512, u64; +} + +fn contains_helper_v2() -> BenchResult { let btree = BTreeMap::new(DefaultMemoryImpl::default()); - insert_helper::(btree) + contains_helper::(btree) } -fn insert_helper_v2_mem_manager( -) -> BenchResult { +fn contains_helper_v2_mem_manager() -> BenchResult { let memory_manager = MemoryManager::init(DefaultMemoryImpl::default()); let btree = BTreeMap::new(memory_manager.get(MemoryId::new(42))); - insert_helper::(btree) + contains_helper::(btree) } -// Profiles inserting a large number of random blobs into a btreemap. -fn insert_helper( +// Profiles `contains_key` on a large number of random blobs from a btreemap. +fn contains_helper( mut btree: BTreeMap, ) -> BenchResult { - let num_keys = 10_000; + let count = 10_000; let mut rng = Rng::from_seed(0); - let mut random_keys = Vec::with_capacity(num_keys); - let mut random_values = Vec::with_capacity(num_keys); - - for _ in 0..num_keys { - random_keys.push(K::random(&mut rng)); - random_values.push(V::random(&mut rng)); + let items = generate_random_kv::(count, &mut rng); + for (k, v) in items.clone() { + btree.insert(k, v); } + let keys: Vec = items.into_iter().map(|(k, _)| k).collect(); bench_fn(|| { - // Insert the keys into the btree. - for (k, v) in random_keys.into_iter().zip(random_values.into_iter()) { - btree.insert(k, v); + // Checks if the keys are in the map. + for random_key in keys { + btree.contains_key(&random_key); } }) } -// Profiles iterating over a btreemap. -fn iter_helper(size: u32, value_size: u32, iter_type: IterType) -> BenchResult { +#[bench(raw)] +pub fn btreemap_v2_contains_10mib_values() -> BenchResult { + let count = 20; let mut btree = BTreeMap::new(DefaultMemoryImpl::default()); - for i in 0..size { - btree.insert(i, vec![0u8; value_size as usize]); + let mut rng = Rng::from_seed(0); + let values = generate_random_blocks(count, 10 * MiB, &mut rng); + for (i, value) in values.into_iter().enumerate() { + btree.insert(i as u32, value); } - match iter_type { - IterType::Iter => bench_fn(|| for _ in btree.iter() {}), - IterType::IterRev => bench_fn(|| for _ in btree.iter().rev() {}), - IterType::Keys => bench_fn(|| for _ in btree.keys() {}), - IterType::KeysRev => bench_fn(|| for _ in btree.keys().rev() {}), - IterType::Values => bench_fn(|| for _ in btree.values() {}), - IterType::ValuesRev => bench_fn(|| for _ in btree.values().rev() {}), - } + bench_fn(|| { + for i in 0..count { + btree.contains_key(&(i as u32)); + } + }) } -// Profiles getting a large number of random blobs from a btreemap. -fn get_helper_v1() -> BenchResult { - let btree = BTreeMap::new_v1(DefaultMemoryImpl::default()); - get_helper::(btree) +/// Helper macro to generate traversal benchmarks. +macro_rules! bench_traversal_tests { + ( + $( + $fn_name:ident, + $helper:ident, + $count:expr, + $value_size:expr, + $traversal_mode:expr + );+ $(;)? + ) => { + $( + #[bench(raw)] + pub fn $fn_name() -> BenchResult { + $helper($count, $value_size, $traversal_mode) + } + )+ + }; } -fn get_helper_v2() -> BenchResult { +// First +bench_tests! { + // blob K x 128 + btreemap_v2_pop_first_blob_4_128, pop_first_helper_v2, Blob4, Blob128; + btreemap_v2_pop_first_blob_8_128, pop_first_helper_v2, Blob8, Blob128; + btreemap_v2_pop_first_blob_16_128, pop_first_helper_v2, Blob16, Blob128; + btreemap_v2_pop_first_blob_32_128, pop_first_helper_v2, Blob32, Blob128; + btreemap_v2_pop_first_blob_64_128, pop_first_helper_v2, Blob64, Blob128; + btreemap_v2_pop_first_blob_128_128, pop_first_helper_v2, Blob128, Blob128; + btreemap_v2_pop_first_blob_256_128, pop_first_helper_v2, Blob256, Blob128; + btreemap_v2_pop_first_blob_512_128, pop_first_helper_v2, Blob512, Blob128; + btreemap_v2_pop_first_blob_1024_128, pop_first_helper_v2, Blob1024, Blob128; + + // blob 32 x V + btreemap_v2_pop_first_blob_32_4, pop_first_helper_v2, Blob32, Blob4; + btreemap_v2_pop_first_blob_32_8, pop_first_helper_v2, Blob32, Blob8; + btreemap_v2_pop_first_blob_32_16, pop_first_helper_v2, Blob32, Blob16; + btreemap_v2_pop_first_blob_32_32, pop_first_helper_v2, Blob32, Blob32; + btreemap_v2_pop_first_blob_32_64, pop_first_helper_v2, Blob32, Blob64; + //btreemap_v2_pop_first_blob_32_128, pop_first_helper_v2, Blob32, Blob128; // Skip repeated. + btreemap_v2_pop_first_blob_32_256, pop_first_helper_v2, Blob32, Blob256; + btreemap_v2_pop_first_blob_32_512, pop_first_helper_v2, Blob32, Blob512; + btreemap_v2_pop_first_blob_32_1024, pop_first_helper_v2, Blob32, Blob1024; + + // vec K x 128 + btreemap_v2_pop_first_vec_4_128, pop_first_helper_v2, FixedVec4, FixedVec128; + btreemap_v2_pop_first_vec_8_128, pop_first_helper_v2, FixedVec8, FixedVec128; + btreemap_v2_pop_first_vec_16_128, pop_first_helper_v2, FixedVec16, FixedVec128; + btreemap_v2_pop_first_vec_32_128, pop_first_helper_v2, FixedVec32, FixedVec128; + btreemap_v2_pop_first_vec_64_128, pop_first_helper_v2, FixedVec64, FixedVec128; + btreemap_v2_pop_first_vec_128_128, pop_first_helper_v2, FixedVec128, FixedVec128; + btreemap_v2_pop_first_vec_256_128, pop_first_helper_v2, FixedVec256, FixedVec128; + btreemap_v2_pop_first_vec_512_128, pop_first_helper_v2, FixedVec512, FixedVec128; + btreemap_v2_pop_first_vec_1024_128, pop_first_helper_v2, FixedVec1024, FixedVec128; + + // vec 32 x V + btreemap_v2_pop_first_vec_32_4, pop_first_helper_v2, FixedVec32, FixedVec4; + btreemap_v2_pop_first_vec_32_8, pop_first_helper_v2, FixedVec32, FixedVec8; + btreemap_v2_pop_first_vec_32_16, pop_first_helper_v2, FixedVec32, FixedVec16; + btreemap_v2_pop_first_vec_32_32, pop_first_helper_v2, FixedVec32, FixedVec32; + btreemap_v2_pop_first_vec_32_64, pop_first_helper_v2, FixedVec32, FixedVec64; + //btreemap_v2_pop_first_vec_32_128, pop_first_helper_v2, FixedVec32, FixedVec128; // Skip repeated. + btreemap_v2_pop_first_vec_32_256, pop_first_helper_v2, FixedVec32, FixedVec256; + btreemap_v2_pop_first_vec_32_512, pop_first_helper_v2, FixedVec32, FixedVec512; + btreemap_v2_pop_first_vec_32_1024, pop_first_helper_v2, FixedVec32, FixedVec1024; + + // u64 / blob8 / vec8 + btreemap_v2_pop_first_u64_u64, pop_first_helper_v2, u64, u64; + btreemap_v2_pop_first_u64_blob8, pop_first_helper_v2, u64, Blob8; + btreemap_v2_pop_first_blob8_u64, pop_first_helper_v2, Blob8, u64; + btreemap_v2_pop_first_u64_vec8, pop_first_helper_v2, u64, FixedVec8; + btreemap_v2_pop_first_vec8_u64, pop_first_helper_v2, FixedVec8, u64; +} + +// Last +bench_tests! { + // blob K x 128 + btreemap_v2_pop_last_blob_4_128, pop_last_helper_v2, Blob4, Blob128; + btreemap_v2_pop_last_blob_8_128, pop_last_helper_v2, Blob8, Blob128; + btreemap_v2_pop_last_blob_16_128, pop_last_helper_v2, Blob16, Blob128; + btreemap_v2_pop_last_blob_32_128, pop_last_helper_v2, Blob32, Blob128; + btreemap_v2_pop_last_blob_64_128, pop_last_helper_v2, Blob64, Blob128; + btreemap_v2_pop_last_blob_128_128, pop_last_helper_v2, Blob128, Blob128; + btreemap_v2_pop_last_blob_256_128, pop_last_helper_v2, Blob256, Blob128; + btreemap_v2_pop_last_blob_512_128, pop_last_helper_v2, Blob512, Blob128; + btreemap_v2_pop_last_blob_1024_128, pop_last_helper_v2, Blob1024, Blob128; + + // blob 32 x V + btreemap_v2_pop_last_blob_32_4, pop_last_helper_v2, Blob32, Blob4; + btreemap_v2_pop_last_blob_32_8, pop_last_helper_v2, Blob32, Blob8; + btreemap_v2_pop_last_blob_32_16, pop_last_helper_v2, Blob32, Blob16; + btreemap_v2_pop_last_blob_32_32, pop_last_helper_v2, Blob32, Blob32; + btreemap_v2_pop_last_blob_32_64, pop_last_helper_v2, Blob32, Blob64; + //btreemap_v2_pop_last_blob_32_128, pop_last_helper_v2, Blob32, Blob128; // Skip repeated. + btreemap_v2_pop_last_blob_32_256, pop_last_helper_v2, Blob32, Blob256; + btreemap_v2_pop_last_blob_32_512, pop_last_helper_v2, Blob32, Blob512; + btreemap_v2_pop_last_blob_32_1024, pop_last_helper_v2, Blob32, Blob1024; + + // vec K x 128 + btreemap_v2_pop_last_vec_4_128, pop_last_helper_v2, FixedVec4, FixedVec128; + btreemap_v2_pop_last_vec_8_128, pop_last_helper_v2, FixedVec8, FixedVec128; + btreemap_v2_pop_last_vec_16_128, pop_last_helper_v2, FixedVec16, FixedVec128; + btreemap_v2_pop_last_vec_32_128, pop_last_helper_v2, FixedVec32, FixedVec128; + btreemap_v2_pop_last_vec_64_128, pop_last_helper_v2, FixedVec64, FixedVec128; + btreemap_v2_pop_last_vec_128_128, pop_last_helper_v2, FixedVec128, FixedVec128; + btreemap_v2_pop_last_vec_256_128, pop_last_helper_v2, FixedVec256, FixedVec128; + btreemap_v2_pop_last_vec_512_128, pop_last_helper_v2, FixedVec512, FixedVec128; + btreemap_v2_pop_last_vec_1024_128, pop_last_helper_v2, FixedVec1024, FixedVec128; + + // vec 32 x V + btreemap_v2_pop_last_vec_32_4, pop_last_helper_v2, FixedVec32, FixedVec4; + btreemap_v2_pop_last_vec_32_8, pop_last_helper_v2, FixedVec32, FixedVec8; + btreemap_v2_pop_last_vec_32_16, pop_last_helper_v2, FixedVec32, FixedVec16; + btreemap_v2_pop_last_vec_32_32, pop_last_helper_v2, FixedVec32, FixedVec32; + btreemap_v2_pop_last_vec_32_64, pop_last_helper_v2, FixedVec32, FixedVec64; + //btreemap_v2_pop_last_vec_32_128, pop_last_helper_v2, FixedVec32, FixedVec128; // Skip repeated. + btreemap_v2_pop_last_vec_32_256, pop_last_helper_v2, FixedVec32, FixedVec256; + btreemap_v2_pop_last_vec_32_512, pop_last_helper_v2, FixedVec32, FixedVec512; + btreemap_v2_pop_last_vec_32_1024, pop_last_helper_v2, FixedVec32, FixedVec1024; + + // u64 / blob8 / vec8 + btreemap_v2_pop_last_u64_u64, pop_last_helper_v2, u64, u64; + btreemap_v2_pop_last_u64_blob8, pop_last_helper_v2, u64, Blob8; + btreemap_v2_pop_last_blob8_u64, pop_last_helper_v2, Blob8, u64; + btreemap_v2_pop_last_u64_vec8, pop_last_helper_v2, u64, FixedVec8; + btreemap_v2_pop_last_vec8_u64, pop_last_helper_v2, FixedVec8, u64; +} + +fn pop_first_helper_v2() -> BenchResult { + pop_helper_v2::(Position::First) +} + +fn pop_last_helper_v2() -> BenchResult { + pop_helper_v2::(Position::Last) +} + +fn pop_helper_v2(position: Position) -> BenchResult { let btree = BTreeMap::new(DefaultMemoryImpl::default()); - get_helper::(btree) + pop_helper::(btree, position) } -fn get_helper_v2_mem_manager( -) -> BenchResult { - let memory_manager = MemoryManager::init(DefaultMemoryImpl::default()); - let btree = BTreeMap::new(memory_manager.get(MemoryId::new(42))); - get_helper::(btree) +enum Position { + First, + Last, } -fn get_helper( +fn pop_helper( mut btree: BTreeMap, + position: Position, ) -> BenchResult { - let num_keys = 10_000; + let count = 10_000; let mut rng = Rng::from_seed(0); - let mut random_keys = Vec::with_capacity(num_keys); - let mut random_values = Vec::with_capacity(num_keys); - - for _ in 0..num_keys { - random_keys.push(K::random(&mut rng)); - random_values.push(V::random(&mut rng)); - } - - // Insert the keys into the btree. - for (k, v) in random_keys.iter().zip(random_values.into_iter()) { - btree.insert(k.clone(), v); + let items = generate_random_kv::(count, &mut rng); + for (k, v) in items { + btree.insert(k, v); } - // Get all the keys from the map. bench_fn(|| { - for k in random_keys.into_iter() { - btree.get(&k).unwrap(); + for _ in 0..count { + match position { + Position::First => btree.pop_first(), + Position::Last => btree.pop_last(), + }; } }) } -// Profiles `contains_key` on a large number of random blobs from a btreemap. -fn contains_key_helper_v1() -> BenchResult -{ - let btree = BTreeMap::new_v1(DefaultMemoryImpl::default()); - contains_key_helper::(btree) -} - -fn contains_key_helper_v2() -> BenchResult -{ - let btree = BTreeMap::new(DefaultMemoryImpl::default()); - contains_key_helper::(btree) +bench_traversal_tests! { + // 1k items of 0 bytes + btreemap_v2_scan_iter_1k_0b, traverse_helper_v2, 1_000, 0, TraversalMode::Iter; + btreemap_v2_scan_iter_rev_1k_0b, traverse_helper_v2, 1_000, 0, TraversalMode::IterRev; + btreemap_v2_scan_keys_1k_0b, traverse_helper_v2, 1_000, 0, TraversalMode::Keys; + btreemap_v2_scan_keys_rev_1k_0b, traverse_helper_v2, 1_000, 0, TraversalMode::KeysRev; + btreemap_v2_scan_values_1k_0b, traverse_helper_v2, 1_000, 0, TraversalMode::Values; + btreemap_v2_scan_values_rev_1k_0b, traverse_helper_v2, 1_000, 0, TraversalMode::ValuesRev; + + // 1k items of 10 KiB + btreemap_v2_scan_iter_1k_10kib, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::Iter; + btreemap_v2_scan_iter_rev_1k_10kib, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::IterRev; + btreemap_v2_scan_keys_1k_10kib, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::Keys; + btreemap_v2_scan_keys_rev_1k_10kib, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::KeysRev; + btreemap_v2_scan_values_1k_10kib, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::Values; + btreemap_v2_scan_values_rev_1k_10kib, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::ValuesRev; + + // 20 items of 10 MiB + btreemap_v2_scan_iter_20_10mib, traverse_helper_v2, 20, 10 * MiB, TraversalMode::Iter; + btreemap_v2_scan_iter_rev_20_10mib, traverse_helper_v2, 20, 10 * MiB, TraversalMode::IterRev; + btreemap_v2_scan_keys_20_10mib, traverse_helper_v2, 20, 10 * MiB, TraversalMode::Keys; + btreemap_v2_scan_keys_rev_20_10mib, traverse_helper_v2, 20, 10 * MiB, TraversalMode::KeysRev; + btreemap_v2_scan_values_20_10mib, traverse_helper_v2, 20, 10 * MiB, TraversalMode::Values; + btreemap_v2_scan_values_rev_20_10mib, traverse_helper_v2, 20, 10 * MiB, TraversalMode::ValuesRev; +} + +enum TraversalMode { + Iter, + IterRev, + Keys, + KeysRev, + Values, + ValuesRev, } -fn contains_key_helper( - mut btree: BTreeMap, -) -> BenchResult { - let num_keys = 10_000; - let mut rng = Rng::from_seed(0); - let mut random_keys = Vec::with_capacity(num_keys); - let mut random_values = Vec::with_capacity(num_keys); - - for _ in 0..num_keys { - random_keys.push(K::random(&mut rng)); - random_values.push(V::random(&mut rng)); +/// Benchmarks BTreeMap traversal for the given traversal mode. +fn traverse_helper_v2(count: u32, value_size: usize, traversal_mode: TraversalMode) -> BenchResult { + let mut btree = BTreeMap::new(DefaultMemoryImpl::default()); + for i in 0..count { + btree.insert(i, vec![0u8; value_size]); } - // Insert the keys into the btree. - for (k, v) in random_keys.iter().zip(random_values.into_iter()) { - btree.insert(k.clone(), v); + match traversal_mode { + TraversalMode::Iter => bench_fn(|| for _ in btree.iter() {}), + TraversalMode::IterRev => bench_fn(|| for _ in btree.iter().rev() {}), + TraversalMode::Keys => bench_fn(|| for _ in btree.keys() {}), + TraversalMode::KeysRev => bench_fn(|| for _ in btree.keys().rev() {}), + TraversalMode::Values => bench_fn(|| for _ in btree.values() {}), + TraversalMode::ValuesRev => bench_fn(|| for _ in btree.values().rev() {}), } - - // Checks if the keys are in the map. - bench_fn(|| { - for k in random_keys.into_iter() { - btree.contains_key(&k); - } - }) } -// Inserts a large number of random blobs into a btreemap, then profiles removing them. -fn remove_helper_v1() -> BenchResult { - let btree = BTreeMap::new_v1(DefaultMemoryImpl::default()); - remove_helper::(btree) +/// Helper macro to generate range benchmarks. +macro_rules! bench_range_tests { + ($( $fn_name:ident, $helper:ident, $count:expr, $size:expr );+ $(;)?) => { + $( + #[bench(raw)] + pub fn $fn_name() -> BenchResult { + $helper($count, $size) + } + )+ + }; } -fn remove_helper_v2() -> BenchResult { - let btree = BTreeMap::new(DefaultMemoryImpl::default()); - remove_helper::(btree) +bench_range_tests! { + btreemap_v2_range_key_sum_1k_0b, range_key_sum_helper_v2, 1_000, 0; + btreemap_v2_range_key_sum_1k_10kib, range_key_sum_helper_v2, 1_000, 10 * KiB; + btreemap_v2_range_key_sum_20_10mib, range_key_sum_helper_v2, 20, 10 * MiB; + + btreemap_v2_range_value_sum_1k_0b, range_value_sum_helper_v2, 1_000, 0; + btreemap_v2_range_value_sum_1k_10kib, range_value_sum_helper_v2, 1_000, 10 * KiB; + btreemap_v2_range_value_sum_20_10mib, range_value_sum_helper_v2, 20, 10 * MiB; + + btreemap_v2_range_count_1k_0b, range_count_helper_v2, 1_000, 0; + btreemap_v2_range_count_1k_10kib, range_count_helper_v2, 1_000, 10 * KiB; + btreemap_v2_range_count_20_10mib, range_count_helper_v2, 20, 10 * MiB; } -fn remove_helper( - mut btree: BTreeMap, -) -> BenchResult { - let num_keys = 10_000; +fn range_key_sum_helper_v2(count: usize, size: usize) -> BenchResult { + let mut btree = BTreeMap::new(DefaultMemoryImpl::default()); let mut rng = Rng::from_seed(0); - let mut random_keys = Vec::with_capacity(num_keys); - let mut random_values = Vec::with_capacity(num_keys); - - for _ in 0..num_keys { - random_keys.push(K::random(&mut rng)); - random_values.push(V::random(&mut rng)); + let values = generate_random_blocks(count, size, &mut rng); + for (i, value) in values.into_iter().enumerate() { + btree.insert(i as u32, value); } - // Insert the keys into the btree. - for (k, v) in random_keys.iter().zip(random_values.into_iter()) { - btree.insert(k.clone(), v); + // Read a range of entries but only process the key of each entry. + bench_fn(|| { + btree + .range((Bound::Included(0), Bound::Included(size as u32))) + .map(|(k, _)| k) + .sum::() + }) +} + +fn range_value_sum_helper_v2(count: usize, size: usize) -> BenchResult { + let mut btree = BTreeMap::new(DefaultMemoryImpl::default()); + let mut rng = Rng::from_seed(0); + let values = generate_random_blocks(count, size, &mut rng); + for (i, value) in values.into_iter().enumerate() { + btree.insert(i as u32, value); } + // Read a range of entries but only process the value from every third entry. bench_fn(|| { - // Remove the keys from the btree. - for k in random_keys.into_iter() { - btree.remove(&k); - } + btree + .range((Bound::Included(0), Bound::Included(size as u32))) + .filter(|(k, _)| k % 3 == 0) + .map(|(_, v)| v.len()) + .sum::() }) } -enum IterType { - Iter, - IterRev, - Keys, - KeysRev, - Values, - ValuesRev, +fn range_count_helper_v2(count: usize, size: usize) -> BenchResult { + let mut btree = BTreeMap::new(DefaultMemoryImpl::default()); + let mut rng = Rng::from_seed(0); + let values = generate_random_blocks(count, size, &mut rng); + for (i, value) in values.into_iter().enumerate() { + btree.insert(i as u32, value); + } + + bench_fn(|| { + btree + .range((Bound::Included(0), Bound::Included(size as u32))) + .count() + }) } diff --git a/benchmarks/src/main.rs b/benchmarks/src/main.rs index 723976b5..93f2b86a 100644 --- a/benchmarks/src/main.rs +++ b/benchmarks/src/main.rs @@ -1,4 +1,4 @@ -use ic_stable_structures::storable::{Blob, Storable}; +use ic_stable_structures::storable::{Blob, FixedVec, Storable}; use tiny_rng::{Rand, Rng}; mod btreemap; @@ -22,6 +22,17 @@ impl Random for Blob { } } +impl Random for FixedVec { + fn random(rng: &mut Rng) -> Self { + let size = rng.rand_u32() % Self::max_size(); + let mut buf = Vec::with_capacity(size as usize); + for _ in 0..size { + buf.push(rng.rand_u8()); + } + FixedVec::from(&buf) + } +} + impl Random for u64 { fn random(rng: &mut Rng) -> Self { rng.rand_u64() diff --git a/canbench_results.csv b/canbench_results.csv deleted file mode 100644 index f71ce180..00000000 --- a/canbench_results.csv +++ /dev/null @@ -1,293 +0,0 @@ -status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_increase Δ,heap_increase Δ%,stable_memory_increase,stable_memory_increase Δ,stable_memory_increase Δ% -,btreemap_contains_key_blob_4_1024,210478760,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_contains_key_blob_4_1024::node_load_v1,137597545,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_contains_key_blob_4_1024_v2,293406475,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_contains_key_blob_4_1024_v2::node_load_v2,221192292,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_128_1024,926943319,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_128_1024::node_load_v1,766865961,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_128_1024_v2,1007468700,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_128_1024_v2::node_load_v2,851349165,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_16_1024,301748222,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_16_1024::node_load_v1,191633449,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_16_1024_v2,370128140,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_16_1024_v2::node_load_v2,263395878,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_256_1024,1502343919,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_256_1024::node_load_v1,1295341175,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_256_1024_v2,1577417509,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_256_1024_v2::node_load_v2,1372732602,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_32_1024,337325992,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_32_1024::node_load_v1,217553762,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_32_1024_v2,410492510,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_32_1024_v2::node_load_v2,297534748,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_4_1024,228636956,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_4_1024::node_load_v1,137597256,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_4_1024_v2,314184667,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_4_1024_v2::node_load_v2,221192292,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_512_1024,2651684202,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_512_1024::node_load_v1,2351582014,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_512_1024_v2,2708257297,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_512_1024_v2::node_load_v2,2410457934,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_512_1024_v2_mem_manager,2814881331,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_512_1024_v2_mem_manager::node_load_v2,2508819721,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_64_1024,577674256,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_64_1024::node_load_v1,441791091,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_64_1024_v2,660576120,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_64_1024_v2::node_load_v2,523551588,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_8_1024,271015799,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_8_1024::node_load_v1,164252737,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_8_1024_v2,346911944,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_8_1024_v2::node_load_v2,241490971,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_8_u64,259007647,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_8_u64::node_load_v1,160094807,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_8_u64_v2,351400067,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_blob_8_u64_v2::node_load_v2,241977555,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_u64_blob_8,233097254,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_u64_blob_8::node_load_v1,143539455,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_u64_blob_8_v2,298354095,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_u64_blob_8_v2::node_load_v2,210664848,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_u64_u64,231146399,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_u64_u64::node_load_v1,143446226,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_u64_u64_v2,299229310,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_u64_u64_v2::node_load_v2,213396650,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_u64_u64_v2_mem_manager,390089400,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_get_u64_u64_v2_mem_manager::node_load_v2,286690254,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_10mib_values,5241017656,0,0.00%,0,0,0.00%,3613,0,0.00% -,btreemap_insert_10mib_values::node_load_v2,158720585,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_10mib_values::node_save_v2,4095426800,0,0.00%,0,0,0.00%,3613,0,0.00% -,btreemap_insert_blob_1024_128,5240156308,0,0.00%,52,0,0.00%,262,0,0.00% -,btreemap_insert_blob_1024_128::node_load_v1,4370753436,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_128::node_save_v1,176184515,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_128_v2,5329057513,0,0.00%,52,0,0.00%,196,0,0.00% -,btreemap_insert_blob_1024_128_v2::node_load_v2,4433930796,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_128_v2::node_save_v2,202677765,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_16,5211074337,0,0.00%,52,0,0.00%,241,0,0.00% -,btreemap_insert_blob_1024_16::node_load_v1,4395294750,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_16::node_save_v1,164722892,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_16_v2,5297454832,0,0.00%,52,0,0.00%,181,0,0.00% -,btreemap_insert_blob_1024_16_v2::node_load_v2,4456791682,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_16_v2::node_save_v2,191405846,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_256,5251223699,0,0.00%,52,0,0.00%,292,0,0.00% -,btreemap_insert_blob_1024_256::node_load_v1,4364522733,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_256::node_save_v1,189602900,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_256_v2,5334417656,0,0.00%,52,0,0.00%,219,0,0.00% -,btreemap_insert_blob_1024_256_v2::node_load_v2,4422741202,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_256_v2::node_save_v2,215932923,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_32,5223357705,0,0.00%,52,0,0.00%,239,0,0.00% -,btreemap_insert_blob_1024_32::node_load_v1,4390154180,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_32::node_save_v1,165945553,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_32_v2,5286863881,0,0.00%,52,0,0.00%,180,0,0.00% -,btreemap_insert_blob_1024_32_v2::node_load_v2,4439402744,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_32_v2::node_save_v2,192496375,0,0.00%,0,0,0.00%,1,0,0.00% -,btreemap_insert_blob_1024_4,5115589244,0,0.00%,52,0,0.00%,235,0,0.00% -,btreemap_insert_blob_1024_4::node_load_v1,4395654409,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_4::node_save_v1,159350369,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_4_v2,5224787867,0,0.00%,52,0,0.00%,176,0,0.00% -,btreemap_insert_blob_1024_4_v2::node_load_v2,4453236660,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_4_v2::node_save_v2,186016034,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_512,5342088284,0,0.00%,52,0,0.00%,348,0,0.00% -,btreemap_insert_blob_1024_512::node_load_v1,4370417429,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_512::node_save_v1,225386175,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_512_v2,5416154864,0,0.00%,52,0,0.00%,261,0,0.00% -,btreemap_insert_blob_1024_512_v2::node_load_v2,4425642216,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_512_v2::node_save_v2,249103376,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_512_v2_mem_manager,5583623879,0,0.00%,52,0,0.00%,256,0,0.00% -,btreemap_insert_blob_1024_512_v2_mem_manager::node_load_v2,4520360645,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_512_v2_mem_manager::node_save_v2,313521821,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_64,5268373458,0,0.00%,52,0,0.00%,250,0,0.00% -,btreemap_insert_blob_1024_64::node_load_v1,4428679832,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_64::node_save_v1,169852259,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_64_v2,5355217585,0,0.00%,52,0,0.00%,188,0,0.00% -,btreemap_insert_blob_1024_64_v2::node_load_v2,4481320583,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_64_v2::node_save_v2,196471440,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_8,5221278713,0,0.00%,52,0,0.00%,237,0,0.00% -,btreemap_insert_blob_1024_8::node_load_v1,4393097416,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_8::node_save_v1,162826342,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_8_v2,5289865484,0,0.00%,52,0,0.00%,178,0,0.00% -,btreemap_insert_blob_1024_8_v2::node_load_v2,4452300824,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_1024_8_v2::node_save_v2,189513647,0,0.00%,0,0,0.00%,1,0,0.00% -,btreemap_insert_blob_128_1024,1368641001,0,0.00%,51,0,0.00%,260,0,0.00% -,btreemap_insert_blob_128_1024::node_load_v1,753632390,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_128_1024::node_save_v1,226369379,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_128_1024_v2,1469526752,0,0.00%,51,0,0.00%,195,0,0.00% -,btreemap_insert_blob_128_1024_v2::node_load_v2,833359199,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_128_1024_v2::node_save_v2,252442880,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_16_1024,741867800,0,0.00%,51,0,0.00%,215,0,0.00% -,btreemap_insert_blob_16_1024::node_load_v1,186713642,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_16_1024::node_save_v1,215461849,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_16_1024_v2,842665968,0,0.00%,51,0,0.00%,161,0,0.00% -,btreemap_insert_blob_16_1024_v2::node_load_v2,262757961,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_16_1024_v2::node_save_v2,241446873,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_256_1024,1963715061,0,0.00%,51,0,0.00%,292,0,0.00% -,btreemap_insert_blob_256_1024::node_load_v1,1275230484,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_256_1024::node_save_v1,236361040,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_256_1024_v2,2057811503,0,0.00%,52,0,0.00%,219,0,0.00% -,btreemap_insert_blob_256_1024_v2::node_load_v2,1352351996,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_256_1024_v2::node_save_v2,260087324,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_32_1024,776268961,0,0.00%,52,0,0.00%,230,0,0.00% -,btreemap_insert_blob_32_1024::node_load_v1,213012320,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_32_1024::node_save_v1,222677443,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_32_1024_v2,878086096,0,0.00%,51,0,0.00%,173,0,0.00% -,btreemap_insert_blob_32_1024_v2::node_load_v2,290801162,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_32_1024_v2::node_save_v2,249088762,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_4_1024,585582628,0,0.00%,51,0,0.00%,123,0,0.00% -,btreemap_insert_blob_4_1024::node_load_v1,127809591,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_4_1024::node_save_v1,196112664,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_4_1024_v2,682114531,0,0.00%,51,0,0.00%,92,0,0.00% -,btreemap_insert_blob_4_1024_v2::node_load_v2,201146487,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_4_1024_v2::node_save_v2,219884454,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_512_1024,3122211197,0,0.00%,52,0,0.00%,351,0,0.00% -,btreemap_insert_blob_512_1024::node_load_v1,2296299576,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_512_1024::node_save_v1,250121434,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_512_1024_v2,3210600526,0,0.00%,52,0,0.00%,263,0,0.00% -,btreemap_insert_blob_512_1024_v2::node_load_v2,2364644400,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_512_1024_v2::node_save_v2,275072715,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_64_1024,1022852634,0,0.00%,51,0,0.00%,245,0,0.00% -,btreemap_insert_blob_64_1024::node_load_v1,435511122,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_64_1024::node_save_v1,225085631,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_64_1024_v2,1125614294,0,0.00%,51,0,0.00%,183,0,0.00% -,btreemap_insert_blob_64_1024_v2::node_load_v2,513947108,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_64_1024_v2::node_save_v2,251566709,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_8_1024,704006505,0,0.00%,52,0,0.00%,183,0,0.00% -,btreemap_insert_blob_8_1024::node_load_v1,155477106,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_8_1024::node_save_v1,209560046,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_8_1024_v2,807160223,0,0.00%,52,0,0.00%,138,0,0.00% -,btreemap_insert_blob_8_1024_v2::node_load_v2,233928506,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_8_1024_v2::node_save_v2,234958833,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_8_u64,410991735,0,0.00%,51,0,0.00%,6,0,0.00% -,btreemap_insert_blob_8_u64::node_load_v1,154453716,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_8_u64::node_save_v1,102191868,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_8_u64_v2,521237550,0,0.00%,51,0,0.00%,4,0,0.00% -,btreemap_insert_blob_8_u64_v2::node_load_v2,235965110,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_blob_8_u64_v2::node_save_v2,129412997,0,0.00%,0,0,0.00%,1,0,0.00% -,btreemap_insert_u64_blob_8,422863534,0,0.00%,51,0,0.00%,7,0,0.00% -,btreemap_insert_u64_blob_8::node_load_v1,138793368,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_u64_blob_8::node_save_v1,136281331,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_u64_blob_8_v2,504104865,0,0.00%,51,0,0.00%,5,0,0.00% -,btreemap_insert_u64_blob_8_v2::node_load_v2,202441777,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_u64_blob_8_v2::node_save_v2,154449722,0,0.00%,0,0,0.00%,1,0,0.00% -,btreemap_insert_u64_u64,428400357,0,0.00%,52,0,0.00%,7,0,0.00% -,btreemap_insert_u64_u64::node_load_v1,138230543,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_u64_u64::node_save_v1,139318920,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_u64_u64_v2,512590688,0,0.00%,52,0,0.00%,6,0,0.00% -,btreemap_insert_u64_u64_v2::node_load_v2,203217101,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_u64_u64_v2::node_save_v2,158393148,0,0.00%,0,0,0.00%,1,0,0.00% -,btreemap_insert_u64_u64_v2_mem_manager,642171318,0,0.00%,52,0,0.00%,0,0,0.00% -,btreemap_insert_u64_u64_v2_mem_manager::node_load_v2,272676890,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_insert_u64_u64_v2_mem_manager::node_save_v2,211915857,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_iter_10mib_values,11465453,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_iter_10mib_values::node_load_v2,399541,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_iter_count_10mib_values,540177,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_iter_count_10mib_values::node_load_v2,407454,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_iter_count_small_values,11701932,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_iter_count_small_values::node_load_v2,5848713,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_iter_rev_10mib_values,11455999,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_iter_rev_10mib_values::node_load_v2,387380,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_iter_rev_small_values,17226679,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_iter_rev_small_values::node_load_v2,5847237,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_iter_small_values,17274982,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_iter_small_values::node_load_v2,5884280,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_keys_10mib_values,526210,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_keys_10mib_values::node_load_v2,399541,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_keys_rev_10mib_values,517641,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_keys_rev_10mib_values::node_load_v2,388334,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_keys_rev_small_values,11904862,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_keys_rev_small_values::node_load_v2,5847237,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_keys_small_values,11802459,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_keys_small_values::node_load_v2,5884280,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_read_every_third_value_from_range,86884187,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_read_every_third_value_from_range::node_load_v2,9902627,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_read_keys_from_range,86924191,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_read_keys_from_range::node_load_v2,9902627,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_128_1024,1712318385,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_128_1024::node_load_v1,845634581,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_128_1024::node_save_v1,386837188,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_128_1024_v2,1857451354,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_128_1024_v2::node_load_v2,934710105,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_128_1024_v2::node_save_v2,443355204,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_16_1024,892510261,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_16_1024::node_load_v1,214682159,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_16_1024::node_save_v1,347927786,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_16_1024_v2,1023414743,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_16_1024_v2::node_load_v2,295432861,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_16_1024_v2::node_save_v2,398908331,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_256_1024,2419971189,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_256_1024::node_load_v1,1421810928,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_256_1024::node_save_v1,396714659,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_256_1024_v2,2557565219,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_256_1024_v2::node_load_v2,1508508323,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_256_1024_v2::node_save_v2,449133836,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_32_1024,963529244,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_32_1024::node_load_v1,244486349,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_32_1024::node_save_v1,364703915,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_32_1024_v2,1103577917,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_32_1024_v2::node_load_v2,330183961,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_32_1024_v2::node_save_v2,419018094,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_4_1024,581223340,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_4_1024::node_load_v1,139182608,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_4_1024::node_save_v1,222825320,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_4_1024_v2,691772652,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_4_1024_v2::node_load_v2,219202372,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_4_1024_v2::node_save_v2,251873470,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_512_1024,3901589009,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_512_1024::node_load_v1,2600793169,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_512_1024::node_save_v1,433482786,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_512_1024_v2,4018429987,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_512_1024_v2::node_load_v2,2666000537,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_512_1024_v2::node_save_v2,486322801,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_64_1024,1272027822,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_64_1024::node_load_v1,490372664,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_64_1024::node_save_v1,373849439,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_64_1024_v2,1416837129,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_64_1024_v2::node_load_v2,579028104,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_64_1024_v2::node_save_v2,429459920,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_8_1024,758467914,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_8_1024::node_load_v1,173147291,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_8_1024::node_save_v1,296070233,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_8_1024_v2,885217985,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_8_1024_v2::node_load_v2,258240348,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_8_1024_v2::node_save_v2,338728875,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_8_u64,537369405,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_8_u64::node_load_v1,175908392,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_8_u64::node_save_v1,162275185,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_8_u64_v2,684447855,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_8_u64_v2::node_load_v2,265847602,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_blob_8_u64_v2::node_save_v2,213557869,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_u64_blob_8,592711411,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_u64_blob_8::node_load_v1,155452951,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_u64_blob_8::node_save_v1,239159663,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_u64_blob_8_v2,703022401,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_u64_blob_8_v2::node_load_v2,228119257,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_u64_blob_8_v2::node_save_v2,276694546,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_u64_u64,606967612,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_u64_u64::node_load_v1,156203254,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_u64_u64::node_save_v1,246955374,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_u64_u64_v2,726015927,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_u64_u64_v2::node_load_v2,232495913,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_remove_u64_u64_v2::node_save_v2,288662284,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_values_10mib_values,11464933,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_values_10mib_values::node_load_v2,399541,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_values_rev_10mib_values,11455479,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_values_rev_10mib_values::node_load_v2,387380,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_values_rev_small_values,17200675,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_values_rev_small_values::node_load_v2,5847237,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_values_small_values,17248978,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_values_small_values::node_load_v2,5884280,0,0.00%,0,0,0.00%,0,0,0.00% -,memory_manager_baseline,1176577076,0,0.00%,0,0,0.00%,8000,0,0.00% -,memory_manager_grow,346537961,0,0.00%,2,0,0.00%,32000,0,0.00% -,memory_manager_overhead,1181962837,0,0.00%,0,0,0.00%,8320,0,0.00% -,vec_get_blob_128,19246658,0,0.00%,0,0,0.00%,0,0,0.00% -,vec_get_blob_16,6345942,0,0.00%,0,0,0.00%,0,0,0.00% -,vec_get_blob_32,7063501,0,0.00%,0,0,0.00%,0,0,0.00% -,vec_get_blob_4,4804323,0,0.00%,0,0,0.00%,0,0,0.00% -,vec_get_blob_4_mem_manager,7171673,0,0.00%,0,0,0.00%,0,0,0.00% -,vec_get_blob_64,11310940,0,0.00%,0,0,0.00%,0,0,0.00% -,vec_get_blob_64_mem_manager,13651088,0,0.00%,0,0,0.00%,0,0,0.00% -,vec_get_blob_8,5620865,0,0.00%,0,0,0.00%,0,0,0.00% -,vec_get_u64,5270302,0,0.00%,0,0,0.00%,0,0,0.00% -,vec_insert_blob_128,4131421,0,0.00%,0,0,0.00%,19,0,0.00% -,vec_insert_blob_16,3296224,0,0.00%,0,0,0.00%,2,0,0.00% -,vec_insert_blob_32,3415464,0,0.00%,0,0,0.00%,5,0,0.00% -,vec_insert_blob_4,3207465,0,0.00%,0,0,0.00%,0,0,0.00% -,vec_insert_blob_64,3655801,0,0.00%,0,0,0.00%,9,0,0.00% -,vec_insert_blob_8,3236886,0,0.00%,0,0,0.00%,1,0,0.00% -,vec_insert_u64,5859516,0,0.00%,0,0,0.00%,1,0,0.00% diff --git a/canbench_results.yml b/canbench_results.yml index c4028e68..023a605b 100644 --- a/canbench_results.yml +++ b/canbench_results.yml @@ -1,1304 +1,3524 @@ benches: - btreemap_contains_key_blob_4_1024: + btreemap_v2_contains_10mib_values: total: - instructions: 210478760 + instructions: 159103703 heap_increase: 0 stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 137597545 + node_load_v2: + instructions: 159035758 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_blob8_u64: + total: + instructions: 330695991 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 242343162 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_blob_1024_128: + total: + instructions: 4946351764 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 4525699805 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_blob_128_128: + total: + instructions: 979959144 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 851417266 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_blob_16_128: + total: + instructions: 354190920 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 264936938 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_blob_256_128: + total: + instructions: 1533814859 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 1362320475 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_blob_32_1024: + total: + instructions: 393225817 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 297397819 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_blob_32_128: + total: + instructions: 389666027 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 294337269 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_blob_32_16: + total: + instructions: 391321996 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 297742175 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_blob_32_256: + total: + instructions: 397279277 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 299071599 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_blob_32_32: + total: + instructions: 393792385 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 298036729 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_blob_32_4: + total: + instructions: 390826169 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 295553088 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_blob_32_512: + total: + instructions: 390576040 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 294451651 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_blob_32_64: + total: + instructions: 389775490 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 296097512 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_blob_32_8: + total: + instructions: 389413194 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 295860681 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_blob_4_128: + total: + instructions: 287984130 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 217085971 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_blob_512_128: + total: + instructions: 2681019739 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 2427037301 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_blob_64_128: + total: + instructions: 637453983 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 527412649 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_blob_8_128: + total: + instructions: 319736027 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 233810813 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_u64_blob8: + total: + instructions: 290707346 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 210664848 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_u64_u64: + total: + instructions: 290275545 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 213396650 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_u64_vec8: + total: + instructions: 290707346 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 210664848 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_vec8_u64: + total: + instructions: 427069781 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 275461182 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_vec_1024_128: + total: + instructions: 2971069019 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 2276987607 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_vec_128_128: + total: + instructions: 761240945 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 552296549 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_vec_16_128: + total: + instructions: 485617005 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 318192856 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_vec_256_128: + total: + instructions: 1275557153 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 949288533 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_vec_32_1024: + total: + instructions: 630529453 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 441771790 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_vec_32_128: + total: + instructions: 543604433 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 363121366 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_vec_32_16: + total: + instructions: 466379341 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 315993006 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_vec_32_256: + total: + instructions: 577345567 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 386523541 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_vec_32_32: + total: + instructions: 470596407 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 318585657 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_vec_32_4: + total: + instructions: 467165373 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 316171188 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_vec_32_512: + total: + instructions: 585936291 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 393890350 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_vec_32_64: + total: + instructions: 523967275 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 351804119 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_vec_32_8: + total: + instructions: 469799819 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 317923897 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_vec_4_128: + total: + instructions: 440368122 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 294516166 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_vec_512_128: + total: + instructions: 1869170540 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 1415620461 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_vec_64_128: + total: + instructions: 649945032 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 453307594 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_contains_vec_8_128: + total: + instructions: 443719479 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 286863462 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_10mib_values: + total: + instructions: 1244360216 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 159035758 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_blob8_u64: + total: + instructions: 352567608 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 242343162 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_blob_1024_128: + total: + instructions: 5006709788 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 4525699114 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_blob_128_128: + total: + instructions: 1007633242 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 851416920 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_blob_16_128: + total: + instructions: 374229873 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 264936822 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_blob_256_128: + total: + instructions: 1563200563 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 1362323803 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_blob_32_1024: + total: + instructions: 410492510 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 297534748 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_blob_32_128: + total: + instructions: 409449721 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 294306073 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_blob_32_16: + total: + instructions: 411750644 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 297741171 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_blob_32_256: + total: + instructions: 418043521 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 299053047 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_blob_32_32: + total: + instructions: 412897071 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 298012021 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_blob_32_4: + total: + instructions: 406884037 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 295521362 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_blob_32_512: + total: + instructions: 407751155 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 294826647 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_blob_32_64: + total: + instructions: 411153754 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 296097425 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_blob_32_8: + total: + instructions: 408787333 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 295860681 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_blob_4_128: + total: + instructions: 304053924 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 217073132 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_blob_512_128: + total: + instructions: 2720934269 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 2427035957 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_blob_64_128: + total: + instructions: 660387847 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 527381720 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_blob_8_128: + total: + instructions: 339881833 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 233810340 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_u64_blob8: + total: + instructions: 298404091 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 210664848 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_u64_u64: + total: + instructions: 299279306 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 213396650 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_u64_vec8: + total: + instructions: 298790296 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 210664848 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_vec8_u64: + total: + instructions: 437281165 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 275461182 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_vec_1024_128: + total: + instructions: 2994101578 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 2276258589 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_vec_128_128: + total: + instructions: 774011760 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 552296549 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_vec_16_128: + total: + instructions: 495415534 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 318137669 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_vec_256_128: + total: + instructions: 1288817439 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 949288165 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_vec_32_1024: + total: + instructions: 672105195 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 444473133 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_vec_32_128: + total: + instructions: 553735030 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 362989448 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_vec_32_16: + total: + instructions: 475199734 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 315995010 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_vec_32_256: + total: + instructions: 595277345 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 387435144 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_vec_32_32: + total: + instructions: 478809412 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 318585657 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_vec_32_4: + total: + instructions: 475080632 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 316171188 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_vec_32_512: + total: + instructions: 614075148 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 398403222 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_vec_32_64: + total: + instructions: 532617794 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 351804119 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_vec_32_8: + total: + instructions: 477757748 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 317923897 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_vec_4_128: + total: + instructions: 450271905 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 294514956 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_vec_512_128: + total: + instructions: 1882534292 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 1415627637 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_vec_64_128: + total: + instructions: 661173876 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 453307367 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_get_vec_8_128: + total: + instructions: 453495691 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 286863462 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_insert_10mib_values: + total: + instructions: 5255945722 + heap_increase: 322 + stable_memory_increase: 3613 + scopes: + node_load_v2: + instructions: 158720986 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 4110356807 + heap_increase: 161 + stable_memory_increase: 3613 + btreemap_v2_insert_blob8_u64: + total: + instructions: 521117714 + heap_increase: 52 + stable_memory_increase: 4 + scopes: + node_load_v2: + instructions: 235965110 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 129412997 + heap_increase: 0 + stable_memory_increase: 1 + btreemap_v2_insert_blob_1024_128: + total: + instructions: 5233847198 + heap_increase: 52 + stable_memory_increase: 196 + scopes: + node_load_v2: + instructions: 4433930796 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 202677765 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_insert_blob_128_128: + total: + instructions: 1214308871 + heap_increase: 51 + stable_memory_increase: 46 + scopes: + node_load_v2: + instructions: 833731487 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 153630742 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_insert_blob_16_128: + total: + instructions: 584047270 + heap_increase: 51 + stable_memory_increase: 24 + scopes: + node_load_v2: + instructions: 262483000 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 143475839 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_insert_blob_256_128: + total: + instructions: 1771663268 + heap_increase: 52 + stable_memory_increase: 67 + scopes: + node_load_v2: + instructions: 1332231045 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 160408263 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_insert_blob_32_1024: + total: + instructions: 792185754 + heap_increase: 51 + stable_memory_increase: 173 + scopes: + node_load_v2: + instructions: 290801162 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 249088762 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_insert_blob_32_128: + total: + instructions: 617860432 + heap_increase: 52 + stable_memory_increase: 28 + scopes: + node_load_v2: + instructions: 287180329 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 146117918 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_insert_blob_32_16: + total: + instructions: 596204047 + heap_increase: 52 + stable_memory_increase: 11 + scopes: + node_load_v2: + instructions: 289994473 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 135807257 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_insert_blob_32_256: + total: + instructions: 648943406 + heap_increase: 51 + stable_memory_increase: 49 + scopes: + node_load_v2: + instructions: 293189508 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 160502766 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_insert_blob_32_32: + total: + instructions: 593656541 + heap_increase: 52 + stable_memory_increase: 13 + scopes: + node_load_v2: + instructions: 289258837 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 137561414 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_insert_blob_32_4: + total: + instructions: 584231629 + heap_increase: 52 + stable_memory_increase: 8 + scopes: + node_load_v2: + instructions: 288812638 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 131121894 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_insert_blob_32_512: + total: + instructions: 697561366 + heap_increase: 51 + stable_memory_increase: 91 + scopes: + node_load_v2: + instructions: 287855545 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 193332234 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_insert_blob_32_64: + total: + instructions: 606785064 + heap_increase: 52 + stable_memory_increase: 18 + scopes: + node_load_v2: + instructions: 289286444 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 140467842 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_insert_blob_32_8: + total: + instructions: 591194689 + heap_increase: 52 + stable_memory_increase: 9 + scopes: + node_load_v2: + instructions: 291200312 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 132842945 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_insert_blob_4_128: + total: + instructions: 484430019 + heap_increase: 51 + stable_memory_increase: 13 + scopes: + node_load_v2: + instructions: 196881202 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 129083749 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_insert_blob_512_128: + total: + instructions: 2972289417 + heap_increase: 52 + stable_memory_increase: 111 + scopes: + node_load_v2: + instructions: 2410701919 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 175031083 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_insert_blob_64_128: + total: + instructions: 864622388 + heap_increase: 52 + stable_memory_increase: 34 + scopes: + node_load_v2: + instructions: 510524019 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 149587326 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_insert_blob_8_128: + total: + instructions: 544967085 + heap_increase: 52 + stable_memory_increase: 20 + scopes: + node_load_v2: + instructions: 233327821 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 140134918 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_insert_u64_blob8: + total: + instructions: 503925035 + heap_increase: 52 + stable_memory_increase: 5 + scopes: + node_load_v2: + instructions: 202441777 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 154449722 + heap_increase: 0 + stable_memory_increase: 1 + btreemap_v2_insert_u64_u64: + total: + instructions: 512449920 + heap_increase: 51 + stable_memory_increase: 6 + scopes: + node_load_v2: + instructions: 203217101 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 158393148 + heap_increase: 0 + stable_memory_increase: 1 + btreemap_v2_insert_u64_vec8: + total: + instructions: 511940371 + heap_increase: 52 + stable_memory_increase: 21 + scopes: + node_load_v2: + instructions: 202467461 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 156906810 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_insert_vec8_u64: + total: + instructions: 656387941 + heap_increase: 52 + stable_memory_increase: 16 + scopes: + node_load_v2: + instructions: 262845106 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 168466190 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_insert_vec_1024_128: + total: + instructions: 3455479290 + heap_increase: 0 + stable_memory_increase: 193 + scopes: + node_load_v2: + instructions: 2201061951 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 961229841 + heap_increase: 0 + stable_memory_increase: 181 + btreemap_v2_insert_vec_128_128: + total: + instructions: 1180798897 + heap_increase: 45 + stable_memory_increase: 51 + scopes: + node_load_v2: + instructions: 532661092 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 357473638 + heap_increase: 0 + stable_memory_increase: 38 + btreemap_v2_insert_vec_16_128: + total: + instructions: 780046480 + heap_increase: 50 + stable_memory_increase: 31 + scopes: + node_load_v2: + instructions: 295901921 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 223177767 + heap_increase: 0 + stable_memory_increase: 16 + btreemap_v2_insert_vec_256_128: + total: + instructions: 1673266868 + heap_increase: 0 + stable_memory_increase: 71 + scopes: + node_load_v2: + instructions: 879332317 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 499281171 + heap_increase: 0 + stable_memory_increase: 57 + btreemap_v2_insert_vec_32_1024: + total: + instructions: 1299170988 + heap_increase: 0 + stable_memory_increase: 171 + scopes: + node_load_v2: + instructions: 422801307 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 551042738 + heap_increase: 0 + stable_memory_increase: 158 + btreemap_v2_insert_vec_32_128: + total: + instructions: 839777311 + heap_increase: 50 + stable_memory_increase: 33 + scopes: + node_load_v2: + instructions: 328475041 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 242953557 + heap_increase: 0 + stable_memory_increase: 22 + btreemap_v2_insert_vec_32_16: + total: + instructions: 738365756 + heap_increase: 53 + stable_memory_increase: 20 + scopes: + node_load_v2: + instructions: 304982713 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 191645264 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_insert_vec_32_256: + total: + instructions: 970318106 + heap_increase: 34 + stable_memory_increase: 54 + scopes: + node_load_v2: + instructions: 355257746 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 328068653 + heap_increase: 0 + stable_memory_increase: 42 + btreemap_v2_insert_vec_32_32: + total: + instructions: 747160754 + heap_increase: 52 + stable_memory_increase: 20 + scopes: + node_load_v2: + instructions: 304592764 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 191833117 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_insert_vec_32_4: + total: + instructions: 738185842 + heap_increase: 53 + stable_memory_increase: 20 + scopes: + node_load_v2: + instructions: 304525147 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 188518693 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_insert_vec_32_512: + total: + instructions: 1080290017 + heap_increase: 0 + stable_memory_increase: 91 + scopes: + node_load_v2: + instructions: 373390081 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 407263742 + heap_increase: 0 + stable_memory_increase: 81 + btreemap_v2_insert_vec_32_64: + total: + instructions: 770223849 + heap_increase: 52 + stable_memory_increase: 24 + scopes: + node_load_v2: + instructions: 308876559 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 206255462 + heap_increase: 0 + stable_memory_increase: 7 + btreemap_v2_insert_vec_32_8: + total: + instructions: 737675142 + heap_increase: 53 + stable_memory_increase: 20 + scopes: + node_load_v2: + instructions: 303340130 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 188440719 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_insert_vec_4_128: + total: + instructions: 676577560 + heap_increase: 52 + stable_memory_increase: 16 + scopes: + node_load_v2: + instructions: 256921058 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 191008095 + heap_increase: 0 + stable_memory_increase: 11 + btreemap_v2_insert_vec_512_128: + total: + instructions: 2285515015 + heap_increase: 0 + stable_memory_increase: 112 + scopes: + node_load_v2: + instructions: 1334046533 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 654838090 + heap_increase: 0 + stable_memory_increase: 99 + btreemap_v2_insert_vec_64_128: + total: + instructions: 958693398 + heap_increase: 37 + stable_memory_increase: 41 + scopes: + node_load_v2: + instructions: 394006206 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 284987771 + heap_increase: 0 + stable_memory_increase: 24 + btreemap_v2_insert_vec_8_128: + total: + instructions: 740401663 + heap_increase: 52 + stable_memory_increase: 23 + scopes: + node_load_v2: + instructions: 277586789 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 212575819 + heap_increase: 0 + stable_memory_increase: 14 + btreemap_v2_mem_manager_contains_blob512_u64: + total: + instructions: 2807717374 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 2538778135 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_mem_manager_contains_u64_blob512: + total: + instructions: 363391020 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 283411568 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_mem_manager_contains_u64_u64: + total: + instructions: 367291218 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 286691737 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_mem_manager_contains_u64_vec512: + total: + instructions: 447058632 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 361537503 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_mem_manager_contains_vec512_u64: + total: + instructions: 1905983732 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 1462912241 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_mem_manager_get_blob512_u64: + total: + instructions: 2841984210 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 2538778195 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_mem_manager_get_u64_blob512: + total: + instructions: 386399215 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 283424980 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_mem_manager_get_u64_u64: + total: + instructions: 390139394 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 286690254 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_mem_manager_get_u64_vec512: + total: + instructions: 472838663 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 361620390 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_mem_manager_get_vec512_u64: + total: + instructions: 1934239933 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 1462912226 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_mem_manager_insert_blob512_u64: + total: + instructions: 3054047755 + heap_increase: 52 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 2451661848 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 227534972 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_mem_manager_insert_u64_blob512: + total: + instructions: 744419048 + heap_increase: 52 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 270511382 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 269319281 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_mem_manager_insert_u64_u64: + total: + instructions: 642030550 + heap_increase: 51 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 272676890 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 211915857 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_mem_manager_insert_u64_vec512: + total: + instructions: 1004854360 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 348035687 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 446031481 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_mem_manager_insert_vec512_u64: + total: + instructions: 2397956550 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 1418258170 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 693784323 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_mem_manager_remove_blob512_u64: + total: + instructions: 3972754848 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 2802777927 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 423116341 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_mem_manager_remove_u64_blob512: + total: + instructions: 1064106692 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 306115029 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 474856514 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_mem_manager_remove_u64_u64: + total: + instructions: 918291128 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 310514792 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 388046476 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_mem_manager_remove_u64_vec512: + total: + instructions: 1418502078 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 393285892 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 752484054 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_mem_manager_remove_vec512_u64: + total: + instructions: 3474884241 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 1571241111 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 1238421181 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_blob8_u64: + total: + instructions: 715052899 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 341610476 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 161817645 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_blob_1024_128: + total: + instructions: 9584329021 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 7895203677 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 298391648 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_blob_128_128: + total: + instructions: 2146173917 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 1492427437 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 223985235 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_blob_16_128: + total: + instructions: 878787257 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 414664548 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 195303077 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_blob_256_128: + total: + instructions: 3227863790 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 2430225205 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 236379112 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_blob_32_1024: + total: + instructions: 1282487207 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 495670466 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 338312203 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_blob_32_128: + total: + instructions: 1017421187 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 499820011 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 211698113 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_blob_32_16: + total: + instructions: 967598113 + heap_increase: 49 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 494381403 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 192579867 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_blob_32_256: + total: + instructions: 1045248494 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 492219461 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 229079661 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_blob_32_32: + total: + instructions: 976295686 + heap_increase: 49 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 496905216 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 195314315 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_blob_32_4: + total: + instructions: 947100734 + heap_increase: 49 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 492389933 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 188416842 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_blob_32_512: + total: + instructions: 1119630301 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 486656024 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 267033271 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_blob_32_64: + total: + instructions: 982665047 + heap_increase: 49 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 490604346 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 199863131 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_blob_32_8: + total: + instructions: 965147358 + heap_increase: 49 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 495575398 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 193798844 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_blob_4_128: + total: + instructions: 437173981 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 185941633 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 111736264 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_blob_512_128: + total: + instructions: 5330751696 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 4261841961 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 256334319 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_blob_64_128: + total: + instructions: 1471203383 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 894595133 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 217635694 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_blob_8_128: + total: + instructions: 714589579 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 321840978 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 167270333 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_u64_blob8: + total: + instructions: 844061399 + heap_increase: 49 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 366573119 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 229352459 heap_increase: 0 stable_memory_increase: 0 - btreemap_contains_key_blob_4_1024_v2: + btreemap_v2_pop_first_u64_u64: total: - instructions: 293406475 - heap_increase: 0 + instructions: 857365232 + heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 221192292 + instructions: 365335172 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 237123122 heap_increase: 0 stable_memory_increase: 0 - btreemap_get_blob_128_1024: + btreemap_v2_pop_first_u64_vec8: total: - instructions: 926943319 - heap_increase: 0 + instructions: 848662584 + heap_increase: 49 stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 766865961 + node_load_v2: + instructions: 363986609 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 232350972 heap_increase: 0 stable_memory_increase: 0 - btreemap_get_blob_128_1024_v2: + btreemap_v2_pop_first_vec8_u64: total: - instructions: 1007468700 + instructions: 889665037 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 851349165 + instructions: 379263087 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 205578955 heap_increase: 0 stable_memory_increase: 0 - btreemap_get_blob_16_1024: + btreemap_v2_pop_first_vec_1024_128: total: - instructions: 301748222 + instructions: 6015697298 heap_increase: 0 stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 191633449 + node_load_v2: + instructions: 3816620771 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 1398698296 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_vec_128_128: + total: + instructions: 1968891164 + heap_increase: 49 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 954844622 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 506915689 heap_increase: 0 stable_memory_increase: 0 - btreemap_get_blob_16_1024_v2: + btreemap_v2_pop_first_vec_16_128: total: - instructions: 370128140 + instructions: 1153000278 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 263395878 + instructions: 473865652 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 297311587 heap_increase: 0 stable_memory_increase: 0 - btreemap_get_blob_256_1024: + btreemap_v2_pop_first_vec_256_128: total: - instructions: 1502343919 - heap_increase: 0 + instructions: 2816282265 + heap_increase: 49 stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 1295341175 + node_load_v2: + instructions: 1527363797 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 712727513 heap_increase: 0 stable_memory_increase: 0 - btreemap_get_blob_256_1024_v2: + btreemap_v2_pop_first_vec_32_1024: total: - instructions: 1577417509 + instructions: 1962184548 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1372732602 + instructions: 720596088 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 739339651 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_vec_32_128: + total: + instructions: 1357404996 + heap_increase: 49 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 575024067 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 345452608 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_vec_32_16: + total: + instructions: 1189798668 + heap_increase: 49 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 520374713 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 271638937 heap_increase: 0 stable_memory_increase: 0 - btreemap_get_blob_32_1024: + btreemap_v2_pop_first_vec_32_256: total: - instructions: 337325992 + instructions: 1486036863 heap_increase: 0 stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 217553762 + node_load_v2: + instructions: 604356177 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 442102211 heap_increase: 0 stable_memory_increase: 0 - btreemap_get_blob_32_1024_v2: + btreemap_v2_pop_first_vec_32_32: total: - instructions: 410492510 + instructions: 1191019294 + heap_increase: 49 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 521693711 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 272480740 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_vec_32_4: + total: + instructions: 1179362123 + heap_increase: 49 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 515756517 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 269852513 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_vec_32_512: + total: + instructions: 1637727164 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 297534748 + instructions: 634178176 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 548142210 heap_increase: 0 stable_memory_increase: 0 - btreemap_get_blob_4_1024: + btreemap_v2_pop_first_vec_32_64: total: - instructions: 228636956 + instructions: 1228367079 heap_increase: 0 stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 137597256 + node_load_v2: + instructions: 528947309 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 292518894 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_vec_32_8: + total: + instructions: 1195574343 + heap_increase: 49 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 522280129 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 274453749 heap_increase: 0 stable_memory_increase: 0 - btreemap_get_blob_4_1024_v2: + btreemap_v2_pop_first_vec_4_128: total: - instructions: 314184667 + instructions: 610019591 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 221192292 + instructions: 239319614 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 164109941 heap_increase: 0 stable_memory_increase: 0 - btreemap_get_blob_512_1024: + btreemap_v2_pop_first_vec_512_128: total: - instructions: 2651684202 + instructions: 3878926648 heap_increase: 0 stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 2351582014 + node_load_v2: + instructions: 2294927046 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 938127791 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_first_vec_64_128: + total: + instructions: 1569344089 + heap_increase: 49 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 688159972 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 408218779 heap_increase: 0 stable_memory_increase: 0 - btreemap_get_blob_512_1024_v2: + btreemap_v2_pop_first_vec_8_128: total: - instructions: 2708257297 + instructions: 953739217 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 2410457934 + instructions: 386669230 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 248926154 heap_increase: 0 stable_memory_increase: 0 - btreemap_get_blob_512_1024_v2_mem_manager: + btreemap_v2_pop_last_blob8_u64: total: - instructions: 2814881331 + instructions: 700029959 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 2508819721 + instructions: 339131972 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 161869530 heap_increase: 0 stable_memory_increase: 0 - btreemap_get_blob_64_1024: + btreemap_v2_pop_last_blob_1024_128: total: - instructions: 577674256 + instructions: 9386675497 heap_increase: 0 stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 441791091 + node_load_v2: + instructions: 7918160836 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 299369785 heap_increase: 0 stable_memory_increase: 0 - btreemap_get_blob_64_1024_v2: + btreemap_v2_pop_last_blob_128_128: total: - instructions: 660576120 + instructions: 2097862796 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 523551588 + instructions: 1481425792 heap_increase: 0 stable_memory_increase: 0 - btreemap_get_blob_8_1024: + node_save_v2: + instructions: 224327783 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_last_blob_16_128: total: - instructions: 271015799 + instructions: 862310306 heap_increase: 0 stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 164252737 + node_load_v2: + instructions: 412038348 heap_increase: 0 stable_memory_increase: 0 - btreemap_get_blob_8_1024_v2: + node_save_v2: + instructions: 195302546 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_last_blob_256_128: total: - instructions: 346911944 + instructions: 3156928300 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 241490971 + instructions: 2424736180 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 236513353 heap_increase: 0 stable_memory_increase: 0 - btreemap_get_blob_8_u64: + btreemap_v2_pop_last_blob_32_1024: total: - instructions: 259007647 + instructions: 1264763373 heap_increase: 0 stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 160094807 + node_load_v2: + instructions: 494014933 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 338338359 heap_increase: 0 stable_memory_increase: 0 - btreemap_get_blob_8_u64_v2: + btreemap_v2_pop_last_blob_32_128: total: - instructions: 351400067 + instructions: 995831624 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 241977555 + instructions: 496438877 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 211962239 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_last_blob_32_16: + total: + instructions: 946032622 + heap_increase: 49 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 491577669 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 192565692 heap_increase: 0 stable_memory_increase: 0 - btreemap_get_u64_blob_8: + btreemap_v2_pop_last_blob_32_256: total: - instructions: 233097254 + instructions: 1023271505 heap_increase: 0 stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 143539455 + node_load_v2: + instructions: 488874622 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 229017253 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_last_blob_32_32: + total: + instructions: 954719148 + heap_increase: 49 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 493178581 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 194866675 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_last_blob_32_4: + total: + instructions: 936456460 + heap_increase: 49 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 494698127 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 189009601 heap_increase: 0 stable_memory_increase: 0 - btreemap_get_u64_blob_8_v2: + btreemap_v2_pop_last_blob_32_512: total: - instructions: 298354095 + instructions: 1100331407 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 210664848 + instructions: 486329941 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 265870816 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_last_blob_32_64: + total: + instructions: 967995180 + heap_increase: 49 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 491648915 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 200043896 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_pop_last_blob_32_8: + total: + instructions: 947184301 + heap_increase: 49 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 493361185 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 193992261 heap_increase: 0 stable_memory_increase: 0 - btreemap_get_u64_u64: + btreemap_v2_pop_last_blob_4_128: total: - instructions: 231146399 + instructions: 430831632 heap_increase: 0 stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 143446226 + node_load_v2: + instructions: 184253198 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 111478453 heap_increase: 0 stable_memory_increase: 0 - btreemap_get_u64_u64_v2: + btreemap_v2_pop_last_blob_512_128: total: - instructions: 299229310 + instructions: 5200040292 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 213396650 + instructions: 4243567615 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 256605306 heap_increase: 0 stable_memory_increase: 0 - btreemap_get_u64_u64_v2_mem_manager: + btreemap_v2_pop_last_blob_64_128: total: - instructions: 390089400 + instructions: 1448856844 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 286690254 + instructions: 897971957 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 217393515 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_10mib_values: + btreemap_v2_pop_last_blob_8_128: total: - instructions: 5241017656 + instructions: 714631346 heap_increase: 0 - stable_memory_increase: 3613 + stable_memory_increase: 0 scopes: node_load_v2: - instructions: 158720585 + instructions: 330183528 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 4095426800 + instructions: 167155446 heap_increase: 0 - stable_memory_increase: 3613 - btreemap_insert_blob_1024_128: + stable_memory_increase: 0 + btreemap_v2_pop_last_u64_blob8: total: - instructions: 5240156308 - heap_increase: 52 - stable_memory_increase: 262 + instructions: 836793154 + heap_increase: 49 + stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 4370753436 + node_load_v2: + instructions: 368068135 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 176184515 + node_save_v2: + instructions: 229435732 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_1024_128_v2: + btreemap_v2_pop_last_u64_u64: total: - instructions: 5329057513 - heap_increase: 52 - stable_memory_increase: 196 + instructions: 842895543 + heap_increase: 49 + stable_memory_increase: 0 scopes: node_load_v2: - instructions: 4433930796 + instructions: 364480937 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 202677765 + instructions: 236973883 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_1024_16: + btreemap_v2_pop_last_u64_vec8: total: - instructions: 5211074337 - heap_increase: 52 - stable_memory_increase: 241 + instructions: 840834525 + heap_increase: 49 + stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 4395294750 + node_load_v2: + instructions: 365254738 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 164722892 + node_save_v2: + instructions: 232471869 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_1024_16_v2: + btreemap_v2_pop_last_vec8_u64: total: - instructions: 5297454832 - heap_increase: 52 - stable_memory_increase: 181 + instructions: 869501788 + heap_increase: 0 + stable_memory_increase: 0 scopes: node_load_v2: - instructions: 4456791682 + instructions: 373796490 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 191405846 + instructions: 206244291 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_1024_256: + btreemap_v2_pop_last_vec_1024_128: total: - instructions: 5251223699 - heap_increase: 52 - stable_memory_increase: 292 + instructions: 6315062581 + heap_increase: 0 + stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 4364522733 + node_load_v2: + instructions: 3853848896 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 189602900 + node_save_v2: + instructions: 1398620181 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_1024_256_v2: + btreemap_v2_pop_last_vec_128_128: total: - instructions: 5334417656 - heap_increase: 52 - stable_memory_increase: 219 + instructions: 1976902484 + heap_increase: 0 + stable_memory_increase: 0 scopes: node_load_v2: - instructions: 4422741202 + instructions: 942303453 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 215932923 + instructions: 505790146 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_1024_32: + btreemap_v2_pop_last_vec_16_128: total: - instructions: 5223357705 - heap_increase: 52 - stable_memory_increase: 239 + instructions: 1139800358 + heap_increase: 0 + stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 4390154180 + node_load_v2: + instructions: 469802970 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 165945553 + node_save_v2: + instructions: 294454184 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_1024_32_v2: + btreemap_v2_pop_last_vec_256_128: total: - instructions: 5286863881 - heap_increase: 52 - stable_memory_increase: 180 + instructions: 2845660209 + heap_increase: 49 + stable_memory_increase: 0 scopes: node_load_v2: - instructions: 4439402744 + instructions: 1509983583 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 192496375 + instructions: 711233076 heap_increase: 0 - stable_memory_increase: 1 - btreemap_insert_blob_1024_4: + stable_memory_increase: 0 + btreemap_v2_pop_last_vec_32_1024: total: - instructions: 5115589244 - heap_increase: 52 - stable_memory_increase: 235 + instructions: 1957833146 + heap_increase: 0 + stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 4395654409 + node_load_v2: + instructions: 717412281 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 159350369 + node_save_v2: + instructions: 732295974 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_1024_4_v2: + btreemap_v2_pop_last_vec_32_128: total: - instructions: 5224787867 - heap_increase: 52 - stable_memory_increase: 176 + instructions: 1345805618 + heap_increase: 0 + stable_memory_increase: 0 scopes: node_load_v2: - instructions: 4453236660 + instructions: 571491055 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 186016034 + instructions: 342277482 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_1024_512: + btreemap_v2_pop_last_vec_32_16: total: - instructions: 5342088284 - heap_increase: 52 - stable_memory_increase: 348 + instructions: 1179250876 + heap_increase: 49 + stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 4370417429 + node_load_v2: + instructions: 517469395 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 225386175 + node_save_v2: + instructions: 271707932 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_1024_512_v2: + btreemap_v2_pop_last_vec_32_256: total: - instructions: 5416154864 - heap_increase: 52 - stable_memory_increase: 261 + instructions: 1477867340 + heap_increase: 0 + stable_memory_increase: 0 scopes: node_load_v2: - instructions: 4425642216 + instructions: 600089251 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 249103376 + instructions: 436151629 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_1024_512_v2_mem_manager: + btreemap_v2_pop_last_vec_32_32: total: - instructions: 5583623879 - heap_increase: 52 - stable_memory_increase: 256 + instructions: 1180458647 + heap_increase: 49 + stable_memory_increase: 0 scopes: node_load_v2: - instructions: 4520360645 + instructions: 518603736 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 313521821 + instructions: 272252235 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_1024_64: + btreemap_v2_pop_last_vec_32_4: total: - instructions: 5268373458 - heap_increase: 52 - stable_memory_increase: 250 + instructions: 1184425618 + heap_increase: 49 + stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 4428679832 + node_load_v2: + instructions: 520455345 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 169852259 + node_save_v2: + instructions: 270857449 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_1024_64_v2: + btreemap_v2_pop_last_vec_32_512: total: - instructions: 5355217585 - heap_increase: 52 - stable_memory_increase: 188 + instructions: 1640088006 + heap_increase: 0 + stable_memory_increase: 0 scopes: node_load_v2: - instructions: 4481320583 + instructions: 637829335 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 196471440 + instructions: 542011304 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_1024_8: + btreemap_v2_pop_last_vec_32_64: total: - instructions: 5221278713 - heap_increase: 52 - stable_memory_increase: 237 + instructions: 1229845828 + heap_increase: 49 + stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 4393097416 + node_load_v2: + instructions: 529373910 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 162826342 + node_save_v2: + instructions: 291849366 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_1024_8_v2: + btreemap_v2_pop_last_vec_32_8: total: - instructions: 5289865484 - heap_increase: 52 - stable_memory_increase: 178 + instructions: 1186787281 + heap_increase: 49 + stable_memory_increase: 0 scopes: node_load_v2: - instructions: 4452300824 + instructions: 518437160 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 189513647 + instructions: 274812527 heap_increase: 0 - stable_memory_increase: 1 - btreemap_insert_blob_128_1024: + stable_memory_increase: 0 + btreemap_v2_pop_last_vec_4_128: total: - instructions: 1368641001 - heap_increase: 51 - stable_memory_increase: 260 + instructions: 600426523 + heap_increase: 0 + stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 753632390 + node_load_v2: + instructions: 237155435 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 226369379 + node_save_v2: + instructions: 162058827 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_128_1024_v2: + btreemap_v2_pop_last_vec_512_128: total: - instructions: 1469526752 - heap_increase: 51 - stable_memory_increase: 195 + instructions: 3967188815 + heap_increase: 0 + stable_memory_increase: 0 scopes: node_load_v2: - instructions: 833359199 + instructions: 2272214408 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 252442880 + instructions: 928867989 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_16_1024: + btreemap_v2_pop_last_vec_64_128: total: - instructions: 741867800 - heap_increase: 51 - stable_memory_increase: 215 + instructions: 1582688433 + heap_increase: 49 + stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 186713642 + node_load_v2: + instructions: 694214513 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 215461849 + node_save_v2: + instructions: 402280891 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_16_1024_v2: + btreemap_v2_pop_last_vec_8_128: total: - instructions: 842665968 - heap_increase: 51 - stable_memory_increase: 161 + instructions: 965424993 + heap_increase: 0 + stable_memory_increase: 0 scopes: node_load_v2: - instructions: 262757961 + instructions: 397094774 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 241446873 + instructions: 246771952 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_256_1024: + btreemap_v2_range_count_1k_0b: total: - instructions: 1963715061 - heap_increase: 51 - stable_memory_increase: 292 + instructions: 21372 + heap_increase: 0 + stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 1275230484 - heap_increase: 0 - stable_memory_increase: 0 - node_save_v1: - instructions: 236361040 + node_load_v2: + instructions: 13069 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_256_1024_v2: + btreemap_v2_range_count_1k_10kib: total: - instructions: 2057811503 - heap_increase: 52 - stable_memory_increase: 219 + instructions: 2688594 + heap_increase: 0 + stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1352351996 + instructions: 2059335 heap_increase: 0 stable_memory_increase: 0 - node_save_v2: - instructions: 260087324 + btreemap_v2_range_count_20_10mib: + total: + instructions: 20571698 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 20558085 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_32_1024: + btreemap_v2_range_key_sum_1k_0b: total: - instructions: 776268961 - heap_increase: 52 - stable_memory_increase: 230 + instructions: 21906 + heap_increase: 0 + stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 213012320 + node_load_v2: + instructions: 13069 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 222677443 + btreemap_v2_range_key_sum_1k_10kib: + total: + instructions: 57370166 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 1935907 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_32_1024_v2: + btreemap_v2_range_key_sum_20_10mib: total: - instructions: 878086096 - heap_increase: 51 - stable_memory_increase: 173 + instructions: 1105825232 + heap_increase: 0 + stable_memory_increase: 0 scopes: node_load_v2: - instructions: 290801162 + instructions: 20558085 heap_increase: 0 stable_memory_increase: 0 - node_save_v2: - instructions: 249088762 + btreemap_v2_range_value_sum_1k_0b: + total: + instructions: 21920 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 13069 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_4_1024: + btreemap_v2_range_value_sum_1k_10kib: total: - instructions: 585582628 - heap_increase: 51 - stable_memory_increase: 123 + instructions: 57382162 + heap_increase: 0 + stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 127809591 + node_load_v2: + instructions: 1935907 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 196112664 + btreemap_v2_range_value_sum_20_10mib: + total: + instructions: 1105825468 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 20558085 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_4_1024_v2: + btreemap_v2_remove_10mib_values: total: - instructions: 682114531 - heap_increase: 51 - stable_memory_increase: 92 + instructions: 5574125707 + heap_increase: 0 + stable_memory_increase: 657 scopes: node_load_v2: - instructions: 201146487 + instructions: 162383250 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 219884454 + instructions: 4114616278 heap_increase: 0 - stable_memory_increase: 0 - btreemap_insert_blob_512_1024: + stable_memory_increase: 657 + btreemap_v2_remove_blob8_u64: total: - instructions: 3122211197 - heap_increase: 52 - stable_memory_increase: 351 + instructions: 683976795 + heap_increase: 0 + stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 2296299576 + node_load_v2: + instructions: 267526627 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 250121434 + node_save_v2: + instructions: 213557072 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_512_1024_v2: + btreemap_v2_remove_blob_1024_128: total: - instructions: 3210600526 - heap_increase: 52 - stable_memory_increase: 263 + instructions: 6603500854 + heap_increase: 0 + stable_memory_increase: 0 scopes: node_load_v2: - instructions: 2364644400 + instructions: 4938906167 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 275072715 + instructions: 363635975 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_64_1024: + btreemap_v2_remove_blob_128_128: total: - instructions: 1022852634 - heap_increase: 51 - stable_memory_increase: 245 + instructions: 1582064460 + heap_increase: 0 + stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 435511122 + node_load_v2: + instructions: 932155237 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 225085631 + node_save_v2: + instructions: 276340739 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_64_1024_v2: + btreemap_v2_remove_blob_16_128: total: - instructions: 1125614294 - heap_increase: 51 - stable_memory_increase: 183 + instructions: 793980931 + heap_increase: 0 + stable_memory_increase: 0 scopes: node_load_v2: - instructions: 513947108 + instructions: 296692115 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 251566709 + instructions: 253733072 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_8_1024: + btreemap_v2_remove_blob_256_128: total: - instructions: 704006505 - heap_increase: 52 - stable_memory_increase: 183 + instructions: 2307598024 + heap_increase: 0 + stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 155477106 + node_load_v2: + instructions: 1520096585 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 209560046 + node_save_v2: + instructions: 290577083 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_8_1024_v2: + btreemap_v2_remove_blob_32_1024: total: - instructions: 807160223 - heap_increase: 52 - stable_memory_increase: 138 + instructions: 1103577917 + heap_increase: 0 + stable_memory_increase: 0 scopes: node_load_v2: - instructions: 233928506 + instructions: 330183961 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 234958833 + instructions: 419018094 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_8_u64: + btreemap_v2_remove_blob_32_128: total: - instructions: 410991735 - heap_increase: 51 - stable_memory_increase: 6 + instructions: 850329611 + heap_increase: 0 + stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 154453716 + node_load_v2: + instructions: 330559220 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 102191868 + node_save_v2: + instructions: 259634300 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_blob_8_u64_v2: + btreemap_v2_remove_blob_32_16: total: - instructions: 521237550 - heap_increase: 51 - stable_memory_increase: 4 + instructions: 807796662 + heap_increase: 0 + stable_memory_increase: 0 scopes: node_load_v2: - instructions: 235965110 + instructions: 329364030 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 129412997 + instructions: 239318990 heap_increase: 0 - stable_memory_increase: 1 - btreemap_insert_u64_blob_8: + stable_memory_increase: 0 + btreemap_v2_remove_blob_32_256: total: - instructions: 422863534 - heap_increase: 51 - stable_memory_increase: 7 + instructions: 886561366 + heap_increase: 0 + stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 138793368 + node_load_v2: + instructions: 330308940 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 136281331 + node_save_v2: + instructions: 281116675 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_u64_blob_8_v2: + btreemap_v2_remove_blob_32_32: total: - instructions: 504104865 - heap_increase: 51 - stable_memory_increase: 5 + instructions: 817223169 + heap_increase: 0 + stable_memory_increase: 0 scopes: node_load_v2: - instructions: 202441777 + instructions: 329479606 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 154449722 + instructions: 243413417 heap_increase: 0 - stable_memory_increase: 1 - btreemap_insert_u64_u64: + stable_memory_increase: 0 + btreemap_v2_remove_blob_32_4: total: - instructions: 428400357 - heap_increase: 52 - stable_memory_increase: 7 + instructions: 801239502 + heap_increase: 0 + stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 138230543 + node_load_v2: + instructions: 330896797 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 139318920 + node_save_v2: + instructions: 237641826 heap_increase: 0 stable_memory_increase: 0 - btreemap_insert_u64_u64_v2: + btreemap_v2_remove_blob_32_512: total: - instructions: 512590688 - heap_increase: 52 - stable_memory_increase: 6 + instructions: 965429166 + heap_increase: 0 + stable_memory_increase: 0 scopes: node_load_v2: - instructions: 203217101 + instructions: 327474298 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 158393148 + instructions: 335219915 heap_increase: 0 - stable_memory_increase: 1 - btreemap_insert_u64_u64_v2_mem_manager: + stable_memory_increase: 0 + btreemap_v2_remove_blob_32_64: total: - instructions: 642171318 - heap_increase: 52 + instructions: 838601311 + heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 272676890 + instructions: 329581965 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 211915857 + instructions: 256700252 heap_increase: 0 stable_memory_increase: 0 - btreemap_iter_10mib_values: + btreemap_v2_remove_blob_32_8: total: - instructions: 11465453 + instructions: 801227603 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 399541 + instructions: 328995561 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 236361097 heap_increase: 0 stable_memory_increase: 0 - btreemap_iter_count_10mib_values: + btreemap_v2_remove_blob_4_128: total: - instructions: 540177 + instructions: 536258233 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 407454 + instructions: 217740795 heap_increase: 0 stable_memory_increase: 0 - btreemap_iter_count_small_values: + node_save_v2: + instructions: 154598598 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_remove_blob_512_128: total: - instructions: 11701932 + instructions: 3735498713 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 5848713 + instructions: 2662296294 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 315349204 heap_increase: 0 stable_memory_increase: 0 - btreemap_iter_rev_10mib_values: + btreemap_v2_remove_blob_64_128: total: - instructions: 11455999 + instructions: 1133447653 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 387380 + instructions: 570666497 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 260394994 heap_increase: 0 stable_memory_increase: 0 - btreemap_iter_rev_small_values: + btreemap_v2_remove_blob_8_128: total: - instructions: 17226679 + instructions: 711767653 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 5847237 + instructions: 263655818 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 228090135 heap_increase: 0 stable_memory_increase: 0 - btreemap_iter_small_values: + btreemap_v2_remove_u64_blob8: total: - instructions: 17274982 + instructions: 703022401 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 5884280 + instructions: 228119257 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 276694546 heap_increase: 0 stable_memory_increase: 0 - btreemap_keys_10mib_values: + btreemap_v2_remove_u64_u64: total: - instructions: 526210 + instructions: 726015927 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 399541 + instructions: 232495913 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 288662284 heap_increase: 0 stable_memory_increase: 0 - btreemap_keys_rev_10mib_values: + btreemap_v2_remove_u64_vec8: total: - instructions: 517641 + instructions: 709583604 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 388334 + instructions: 227318513 heap_increase: 0 stable_memory_increase: 0 - btreemap_keys_rev_small_values: + node_save_v2: + instructions: 280445509 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_remove_vec8_u64: total: - instructions: 11904862 + instructions: 851442944 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 5847237 + instructions: 297711523 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 277722943 heap_increase: 0 stable_memory_increase: 0 - btreemap_keys_small_values: + btreemap_v2_remove_vec_1024_128: total: - instructions: 11802459 + instructions: 5125451376 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 5884280 + instructions: 2465286195 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 1691072847 heap_increase: 0 stable_memory_increase: 0 - btreemap_read_every_third_value_from_range: + btreemap_v2_remove_vec_128_128: total: - instructions: 86884187 + instructions: 1555389629 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 9902627 + instructions: 589736376 + heap_increase: 0 + stable_memory_increase: 0 + node_save_v2: + instructions: 615620643 heap_increase: 0 stable_memory_increase: 0 - btreemap_read_keys_from_range: + btreemap_v2_remove_vec_16_128: total: - instructions: 86924191 + instructions: 1006045403 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 9902627 + instructions: 339292860 heap_increase: 0 stable_memory_increase: 0 - btreemap_remove_blob_128_1024: + node_save_v2: + instructions: 380202733 + heap_increase: 0 + stable_memory_increase: 0 + btreemap_v2_remove_vec_256_128: total: - instructions: 1712318385 + instructions: 2412834655 heap_increase: 0 stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 845634581 + node_load_v2: + instructions: 1032337638 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 386837188 + node_save_v2: + instructions: 894871052 heap_increase: 0 stable_memory_increase: 0 - btreemap_remove_blob_128_1024_v2: + btreemap_v2_remove_vec_32_1024: total: - instructions: 1857451354 + instructions: 1776622494 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 934710105 + instructions: 479056495 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 443355204 + instructions: 907312069 heap_increase: 0 stable_memory_increase: 0 - btreemap_remove_blob_16_1024: + btreemap_v2_remove_vec_32_128: total: - instructions: 892510261 + instructions: 1107200088 heap_increase: 0 stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 214682159 + node_load_v2: + instructions: 387675587 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 347927786 + node_save_v2: + instructions: 415392870 heap_increase: 0 stable_memory_increase: 0 - btreemap_remove_blob_16_1024_v2: + btreemap_v2_remove_vec_32_16: total: - instructions: 1023414743 + instructions: 941629328 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 295432861 + instructions: 341081698 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 398908331 + instructions: 334028938 heap_increase: 0 stable_memory_increase: 0 - btreemap_remove_blob_256_1024: + btreemap_v2_remove_vec_32_256: total: - instructions: 2419971189 + instructions: 1334415130 heap_increase: 0 stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 1421810928 + node_load_v2: + instructions: 416602895 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 396714659 + node_save_v2: + instructions: 560571532 heap_increase: 0 stable_memory_increase: 0 - btreemap_remove_blob_256_1024_v2: + btreemap_v2_remove_vec_32_32: total: - instructions: 2557565219 + instructions: 954103695 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1508508323 + instructions: 342706354 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 449133836 + instructions: 340425387 heap_increase: 0 stable_memory_increase: 0 - btreemap_remove_blob_32_1024: + btreemap_v2_remove_vec_32_4: total: - instructions: 963529244 + instructions: 954239019 heap_increase: 0 stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 244486349 + node_load_v2: + instructions: 344790310 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 364703915 + node_save_v2: + instructions: 336195454 heap_increase: 0 stable_memory_increase: 0 - btreemap_remove_blob_32_1024_v2: + btreemap_v2_remove_vec_32_512: total: - instructions: 1103577917 + instructions: 1492982129 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 330183961 + instructions: 424168089 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 419018094 + instructions: 696911760 heap_increase: 0 stable_memory_increase: 0 - btreemap_remove_blob_4_1024: + btreemap_v2_remove_vec_32_64: total: - instructions: 581223340 + instructions: 1026251236 heap_increase: 0 stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 139182608 + node_load_v2: + instructions: 364259432 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 222825320 + node_save_v2: + instructions: 368241138 heap_increase: 0 stable_memory_increase: 0 - btreemap_remove_blob_4_1024_v2: + btreemap_v2_remove_vec_32_8: total: - instructions: 691772652 + instructions: 945081779 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 219202372 + instructions: 342313556 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 251873470 + instructions: 333497509 heap_increase: 0 stable_memory_increase: 0 - btreemap_remove_blob_512_1024: + btreemap_v2_remove_vec_4_128: total: - instructions: 3901589009 + instructions: 725559525 heap_increase: 0 stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 2600793169 + node_load_v2: + instructions: 279969662 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 433482786 + node_save_v2: + instructions: 228139333 heap_increase: 0 stable_memory_increase: 0 - btreemap_remove_blob_512_1024_v2: + btreemap_v2_remove_vec_512_128: total: - instructions: 4018429987 + instructions: 3380488280 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 2666000537 + instructions: 1549295846 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 486322801 + instructions: 1176553465 heap_increase: 0 stable_memory_increase: 0 - btreemap_remove_blob_64_1024: + btreemap_v2_remove_vec_64_128: total: - instructions: 1272027822 + instructions: 1275462295 heap_increase: 0 stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 490372664 + node_load_v2: + instructions: 475038237 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 373849439 + node_save_v2: + instructions: 477131793 heap_increase: 0 stable_memory_increase: 0 - btreemap_remove_blob_64_1024_v2: + btreemap_v2_remove_vec_8_128: total: - instructions: 1416837129 + instructions: 911656165 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 579028104 + instructions: 316304707 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 429459920 + instructions: 331610049 heap_increase: 0 stable_memory_increase: 0 - btreemap_remove_blob_8_1024: + btreemap_v2_scan_iter_1k_0b: total: - instructions: 758467914 + instructions: 1720046 heap_increase: 0 stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 173147291 - heap_increase: 0 - stable_memory_increase: 0 - node_save_v1: - instructions: 296070233 + node_load_v2: + instructions: 583752 heap_increase: 0 stable_memory_increase: 0 - btreemap_remove_blob_8_1024_v2: + btreemap_v2_scan_iter_1k_10kib: total: - instructions: 885217985 + instructions: 57318951 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 258240348 - heap_increase: 0 - stable_memory_increase: 0 - node_save_v2: - instructions: 338728875 + instructions: 1928835 heap_increase: 0 stable_memory_increase: 0 - btreemap_remove_blob_8_u64: + btreemap_v2_scan_iter_20_10mib: total: - instructions: 537369405 + instructions: 1103723970 heap_increase: 0 stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 175908392 + node_load_v2: + instructions: 18456662 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 162275185 + btreemap_v2_scan_iter_rev_1k_0b: + total: + instructions: 1721893 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 582803 heap_increase: 0 stable_memory_increase: 0 - btreemap_remove_blob_8_u64_v2: + btreemap_v2_scan_iter_rev_1k_10kib: total: - instructions: 684447855 + instructions: 57284203 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 265847602 + instructions: 1928368 heap_increase: 0 stable_memory_increase: 0 - node_save_v2: - instructions: 213557869 + btreemap_v2_scan_iter_rev_20_10mib: + total: + instructions: 1103723547 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 18456662 heap_increase: 0 stable_memory_increase: 0 - btreemap_remove_u64_blob_8: + btreemap_v2_scan_keys_1k_0b: total: - instructions: 592711411 + instructions: 1172671 heap_increase: 0 stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 155452951 + node_load_v2: + instructions: 583752 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 239159663 + btreemap_v2_scan_keys_1k_10kib: + total: + instructions: 2700777 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 2072638 heap_increase: 0 stable_memory_increase: 0 - btreemap_remove_u64_blob_8_v2: + btreemap_v2_scan_keys_20_10mib: total: - instructions: 703022401 + instructions: 18470142 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 228119257 + instructions: 18456662 heap_increase: 0 stable_memory_increase: 0 - node_save_v2: - instructions: 276694546 + btreemap_v2_scan_keys_rev_1k_0b: + total: + instructions: 1189616 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 582803 heap_increase: 0 stable_memory_increase: 0 - btreemap_remove_u64_u64: + btreemap_v2_scan_keys_rev_1k_10kib: total: - instructions: 606967612 + instructions: 2568189 heap_increase: 0 stable_memory_increase: 0 scopes: - node_load_v1: - instructions: 156203254 + node_load_v2: + instructions: 1931544 heap_increase: 0 stable_memory_increase: 0 - node_save_v1: - instructions: 246955374 + btreemap_v2_scan_keys_rev_20_10mib: + total: + instructions: 18470477 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 18456662 heap_increase: 0 stable_memory_increase: 0 - btreemap_remove_u64_u64_v2: + btreemap_v2_scan_values_1k_0b: total: - instructions: 726015927 + instructions: 1717444 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 232495913 + instructions: 583752 heap_increase: 0 stable_memory_increase: 0 - node_save_v2: - instructions: 288662284 + btreemap_v2_scan_values_1k_10kib: + total: + instructions: 57316349 + heap_increase: 0 + stable_memory_increase: 0 + scopes: + node_load_v2: + instructions: 1928835 heap_increase: 0 stable_memory_increase: 0 - btreemap_values_10mib_values: + btreemap_v2_scan_values_20_10mib: total: - instructions: 11464933 + instructions: 1103723920 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 399541 + instructions: 18456662 heap_increase: 0 stable_memory_increase: 0 - btreemap_values_rev_10mib_values: + btreemap_v2_scan_values_rev_1k_0b: total: - instructions: 11455479 + instructions: 1719291 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 387380 + instructions: 582803 heap_increase: 0 stable_memory_increase: 0 - btreemap_values_rev_small_values: + btreemap_v2_scan_values_rev_1k_10kib: total: - instructions: 17200675 + instructions: 57281601 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 5847237 + instructions: 1928368 heap_increase: 0 stable_memory_increase: 0 - btreemap_values_small_values: + btreemap_v2_scan_values_rev_20_10mib: total: - instructions: 17248978 + instructions: 1103723497 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 5884280 + instructions: 18456662 heap_increase: 0 stable_memory_increase: 0 memory_manager_baseline: diff --git a/src/storable.rs b/src/storable.rs index 8ae6ddec..e3bbc1d0 100644 --- a/src/storable.rs +++ b/src/storable.rs @@ -189,6 +189,47 @@ impl Storable for Blob { }; } +/// Byte‑vector for testing size N; otherwise just a Vec. +#[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Debug)] +pub struct FixedVec(Vec); + +impl FixedVec { + pub fn max_size() -> u32 { + N as u32 + } + + pub fn from(slice: &[u8]) -> Self { + assert!( + slice.len() <= N, + "expected a slice with length <= {} bytes, but found {} bytes", + N, + slice.len() + ); + let mut vec = Vec::with_capacity(N); + vec.extend_from_slice(slice); + vec.resize(N, 0); + FixedVec(vec) + } +} + +impl Default for FixedVec { + fn default() -> Self { + FixedVec(vec![0; N]) + } +} + +impl Storable for FixedVec { + fn to_bytes(&self) -> Cow<[u8]> { + Cow::Owned(self.0.clone()) + } + + fn from_bytes(bytes: Cow<[u8]>) -> Self { + FixedVec(bytes.into_owned()) + } + + const BOUND: Bound = Bound::Unbounded; +} + // NOTE: Below are a few implementations of `Storable` for common types. // Some of these implementations use `unwrap`, as opposed to returning a `Result` // with a possible error. The reason behind this decision is that these