From aa77530f106f1f976912c78ca3cfece2a7165ab2 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Fri, 18 Apr 2025 11:39:33 +0200 Subject: [PATCH 01/68] . --- benchmarks/src/btreemap.rs | 525 +++++++++++++++++++++++++++++++++++-- 1 file changed, 501 insertions(+), 24 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index a186d3ee..5f7edc0b 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -47,6 +47,150 @@ bench_tests! { btreemap_insert_blob_512_1024, insert_helper_v1, Blob512, Blob1024; btreemap_insert_blob_512_1024_v2, insert_helper_v2, Blob512, Blob1024; + // 4 x V + btreemap_insert_blob_4_4, insert_helper_v1, Blob4, Blob4; + btreemap_insert_blob_4_4_v2, insert_helper_v2, Blob4, Blob4; + btreemap_insert_blob_4_8, insert_helper_v1, Blob4, Blob8; + btreemap_insert_blob_4_8_v2, insert_helper_v2, Blob4, Blob8; + btreemap_insert_blob_4_16, insert_helper_v1, Blob4, Blob16; + btreemap_insert_blob_4_16_v2, insert_helper_v2, Blob4, Blob16; + btreemap_insert_blob_4_32, insert_helper_v1, Blob4, Blob32; + btreemap_insert_blob_4_32_v2, insert_helper_v2, Blob4, Blob32; + btreemap_insert_blob_4_64, insert_helper_v1, Blob4, Blob64; + btreemap_insert_blob_4_64_v2, insert_helper_v2, Blob4, Blob64; + btreemap_insert_blob_4_128, insert_helper_v1, Blob4, Blob128; + btreemap_insert_blob_4_128_v2, insert_helper_v2, Blob4, Blob128; + btreemap_insert_blob_4_256, insert_helper_v1, Blob4, Blob256; + btreemap_insert_blob_4_256_v2, insert_helper_v2, Blob4, Blob256; + btreemap_insert_blob_4_512, insert_helper_v1, Blob4, Blob512; + btreemap_insert_blob_4_512_v2, insert_helper_v2, Blob4, Blob512; + + // 8 x V + btreemap_insert_blob_8_4, insert_helper_v1, Blob8, Blob4; + btreemap_insert_blob_8_4_v2, insert_helper_v2, Blob8, Blob4; + btreemap_insert_blob_8_8, insert_helper_v1, Blob8, Blob8; + btreemap_insert_blob_8_8_v2, insert_helper_v2, Blob8, Blob8; + btreemap_insert_blob_8_16, insert_helper_v1, Blob8, Blob16; + btreemap_insert_blob_8_16_v2, insert_helper_v2, Blob8, Blob16; + btreemap_insert_blob_8_32, insert_helper_v1, Blob8, Blob32; + btreemap_insert_blob_8_32_v2, insert_helper_v2, Blob8, Blob32; + btreemap_insert_blob_8_64, insert_helper_v1, Blob8, Blob64; + btreemap_insert_blob_8_64_v2, insert_helper_v2, Blob8, Blob64; + btreemap_insert_blob_8_128, insert_helper_v1, Blob8, Blob128; + btreemap_insert_blob_8_128_v2, insert_helper_v2, Blob8, Blob128; + btreemap_insert_blob_8_256, insert_helper_v1, Blob8, Blob256; + btreemap_insert_blob_8_256_v2, insert_helper_v2, Blob8, Blob256; + btreemap_insert_blob_8_512, insert_helper_v1, Blob8, Blob512; + btreemap_insert_blob_8_512_v2, insert_helper_v2, Blob8, Blob512; + + // 16 x V + btreemap_insert_blob_16_4, insert_helper_v1, Blob16, Blob4; + btreemap_insert_blob_16_4_v2, insert_helper_v2, Blob16, Blob4; + btreemap_insert_blob_16_8, insert_helper_v1, Blob16, Blob8; + btreemap_insert_blob_16_8_v2, insert_helper_v2, Blob16, Blob8; + btreemap_insert_blob_16_16, insert_helper_v1, Blob16, Blob16; + btreemap_insert_blob_16_16_v2, insert_helper_v2, Blob16, Blob16; + btreemap_insert_blob_16_32, insert_helper_v1, Blob16, Blob32; + btreemap_insert_blob_16_32_v2, insert_helper_v2, Blob16, Blob32; + btreemap_insert_blob_16_64, insert_helper_v1, Blob16, Blob64; + btreemap_insert_blob_16_64_v2, insert_helper_v2, Blob16, Blob64; + btreemap_insert_blob_16_128, insert_helper_v1, Blob16, Blob128; + btreemap_insert_blob_16_128_v2, insert_helper_v2, Blob16, Blob128; + btreemap_insert_blob_16_256, insert_helper_v1, Blob16, Blob256; + btreemap_insert_blob_16_256_v2, insert_helper_v2, Blob16, Blob256; + btreemap_insert_blob_16_512, insert_helper_v1, Blob16, Blob512; + btreemap_insert_blob_16_512_v2, insert_helper_v2, Blob16, Blob512; + + // 32 x V + btreemap_insert_blob_32_4, insert_helper_v1, Blob32, Blob4; + btreemap_insert_blob_32_4_v2, insert_helper_v2, Blob32, Blob4; + btreemap_insert_blob_32_8, insert_helper_v1, Blob32, Blob8; + btreemap_insert_blob_32_8_v2, insert_helper_v2, Blob32, Blob8; + btreemap_insert_blob_32_16, insert_helper_v1, Blob32, Blob16; + btreemap_insert_blob_32_16_v2, insert_helper_v2, Blob32, Blob16; + btreemap_insert_blob_32_32, insert_helper_v1, Blob32, Blob32; + btreemap_insert_blob_32_32_v2, insert_helper_v2, Blob32, Blob32; + btreemap_insert_blob_32_64, insert_helper_v1, Blob32, Blob64; + btreemap_insert_blob_32_64_v2, insert_helper_v2, Blob32, Blob64; + btreemap_insert_blob_32_128, insert_helper_v1, Blob32, Blob128; + btreemap_insert_blob_32_128_v2, insert_helper_v2, Blob32, Blob128; + btreemap_insert_blob_32_256, insert_helper_v1, Blob32, Blob256; + btreemap_insert_blob_32_256_v2, insert_helper_v2, Blob32, Blob256; + btreemap_insert_blob_32_512, insert_helper_v1, Blob32, Blob512; + btreemap_insert_blob_32_512_v2, insert_helper_v2, Blob32, Blob512; + + // 64 x V + btreemap_insert_blob_64_4, insert_helper_v1, Blob64, Blob4; + btreemap_insert_blob_64_4_v2, insert_helper_v2, Blob64, Blob4; + btreemap_insert_blob_64_8, insert_helper_v1, Blob64, Blob8; + btreemap_insert_blob_64_8_v2, insert_helper_v2, Blob64, Blob8; + btreemap_insert_blob_64_16, insert_helper_v1, Blob64, Blob16; + btreemap_insert_blob_64_16_v2, insert_helper_v2, Blob64, Blob16; + btreemap_insert_blob_64_32, insert_helper_v1, Blob64, Blob32; + btreemap_insert_blob_64_32_v2, insert_helper_v2, Blob64, Blob32; + btreemap_insert_blob_64_64, insert_helper_v1, Blob64, Blob64; + btreemap_insert_blob_64_64_v2, insert_helper_v2, Blob64, Blob64; + btreemap_insert_blob_64_128, insert_helper_v1, Blob64, Blob128; + btreemap_insert_blob_64_128_v2, insert_helper_v2, Blob64, Blob128; + btreemap_insert_blob_64_256, insert_helper_v1, Blob64, Blob256; + btreemap_insert_blob_64_256_v2, insert_helper_v2, Blob64, Blob256; + btreemap_insert_blob_64_512, insert_helper_v1, Blob64, Blob512; + btreemap_insert_blob_64_512_v2, insert_helper_v2, Blob64, Blob512; + + // 128 x V + btreemap_insert_blob_128_4, insert_helper_v1, Blob128, Blob4; + btreemap_insert_blob_128_4_v2, insert_helper_v2, Blob128, Blob4; + btreemap_insert_blob_128_8, insert_helper_v1, Blob128, Blob8; + btreemap_insert_blob_128_8_v2, insert_helper_v2, Blob128, Blob8; + btreemap_insert_blob_128_16, insert_helper_v1, Blob128, Blob16; + btreemap_insert_blob_128_16_v2, insert_helper_v2, Blob128, Blob16; + btreemap_insert_blob_128_32, insert_helper_v1, Blob128, Blob32; + btreemap_insert_blob_128_32_v2, insert_helper_v2, Blob128, Blob32; + btreemap_insert_blob_128_64, insert_helper_v1, Blob128, Blob64; + btreemap_insert_blob_128_64_v2, insert_helper_v2, Blob128, Blob64; + btreemap_insert_blob_128_128, insert_helper_v1, Blob128, Blob128; + btreemap_insert_blob_128_128_v2, insert_helper_v2, Blob128, Blob128; + btreemap_insert_blob_128_256, insert_helper_v1, Blob128, Blob256; + btreemap_insert_blob_128_256_v2, insert_helper_v2, Blob128, Blob256; + btreemap_insert_blob_128_512, insert_helper_v1, Blob128, Blob512; + btreemap_insert_blob_128_512_v2, insert_helper_v2, Blob128, Blob512; + + // 256 x V + btreemap_insert_blob_256_4, insert_helper_v1, Blob256, Blob4; + btreemap_insert_blob_256_4_v2, insert_helper_v2, Blob256, Blob4; + btreemap_insert_blob_256_8, insert_helper_v1, Blob256, Blob8; + btreemap_insert_blob_256_8_v2, insert_helper_v2, Blob256, Blob8; + btreemap_insert_blob_256_16, insert_helper_v1, Blob256, Blob16; + btreemap_insert_blob_256_16_v2, insert_helper_v2, Blob256, Blob16; + btreemap_insert_blob_256_32, insert_helper_v1, Blob256, Blob32; + btreemap_insert_blob_256_32_v2, insert_helper_v2, Blob256, Blob32; + btreemap_insert_blob_256_64, insert_helper_v1, Blob256, Blob64; + btreemap_insert_blob_256_64_v2, insert_helper_v2, Blob256, Blob64; + btreemap_insert_blob_256_128, insert_helper_v1, Blob256, Blob128; + btreemap_insert_blob_256_128_v2, insert_helper_v2, Blob256, Blob128; + btreemap_insert_blob_256_256, insert_helper_v1, Blob256, Blob256; + btreemap_insert_blob_256_256_v2, insert_helper_v2, Blob256, Blob256; + btreemap_insert_blob_256_512, insert_helper_v1, Blob256, Blob512; + btreemap_insert_blob_256_512_v2, insert_helper_v2, Blob256, Blob512; + + // 512 x V + btreemap_insert_blob_512_4, insert_helper_v1, Blob512, Blob4; + btreemap_insert_blob_512_4_v2, insert_helper_v2, Blob512, Blob4; + btreemap_insert_blob_512_8, insert_helper_v1, Blob512, Blob8; + btreemap_insert_blob_512_8_v2, insert_helper_v2, Blob512, Blob8; + btreemap_insert_blob_512_16, insert_helper_v1, Blob512, Blob16; + btreemap_insert_blob_512_16_v2, insert_helper_v2, Blob512, Blob16; + btreemap_insert_blob_512_32, insert_helper_v1, Blob512, Blob32; + btreemap_insert_blob_512_32_v2, insert_helper_v2, Blob512, Blob32; + btreemap_insert_blob_512_64, insert_helper_v1, Blob512, Blob64; + btreemap_insert_blob_512_64_v2, insert_helper_v2, Blob512, Blob64; + btreemap_insert_blob_512_128, insert_helper_v1, Blob512, Blob128; + btreemap_insert_blob_512_128_v2, insert_helper_v2, Blob512, Blob128; + btreemap_insert_blob_512_256, insert_helper_v1, Blob512, Blob256; + btreemap_insert_blob_512_256_v2, insert_helper_v2, Blob512, Blob256; + btreemap_insert_blob_512_512, insert_helper_v1, Blob512, Blob512; + btreemap_insert_blob_512_512_v2, insert_helper_v2, Blob512, Blob512; + // 1024 x V btreemap_insert_blob_1024_4, insert_helper_v1, Blob1024, Blob4; btreemap_insert_blob_1024_4_v2, insert_helper_v2, Blob1024, Blob4; @@ -64,16 +208,19 @@ bench_tests! { 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_blob_1024_512_v2_mem_manager, insert_helper_v2_mem_manager, Blob1024, Blob512; + + btreemap_insert_blob_1024_1024, insert_helper_v1, Blob1024, Blob1024; + btreemap_insert_blob_1024_1024_v2, insert_helper_v2, Blob1024, Blob1024; - 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_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; + // 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. @@ -96,13 +243,178 @@ bench_tests! { 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; + // // 4 x V + // btreemap_remove_blob_4_4, remove_helper_v1, Blob4, Blob4; + // btreemap_remove_blob_4_4_v2, remove_helper_v2, Blob4, Blob4; + // btreemap_remove_blob_4_8, remove_helper_v1, Blob4, Blob8; + // btreemap_remove_blob_4_8_v2, remove_helper_v2, Blob4, Blob8; + // btreemap_remove_blob_4_16, remove_helper_v1, Blob4, Blob16; + // btreemap_remove_blob_4_16_v2, remove_helper_v2, Blob4, Blob16; + // btreemap_remove_blob_4_32, remove_helper_v1, Blob4, Blob32; + // btreemap_remove_blob_4_32_v2, remove_helper_v2, Blob4, Blob32; + // btreemap_remove_blob_4_64, remove_helper_v1, Blob4, Blob64; + // btreemap_remove_blob_4_64_v2, remove_helper_v2, Blob4, Blob64; + // btreemap_remove_blob_4_128, remove_helper_v1, Blob4, Blob128; + // btreemap_remove_blob_4_128_v2, remove_helper_v2, Blob4, Blob128; + // btreemap_remove_blob_4_256, remove_helper_v1, Blob4, Blob256; + // btreemap_remove_blob_4_256_v2, remove_helper_v2, Blob4, Blob256; + // btreemap_remove_blob_4_512, remove_helper_v1, Blob4, Blob512; + // btreemap_remove_blob_4_512_v2, remove_helper_v2, Blob4, Blob512; + + // // 8 x V + // btreemap_remove_blob_8_4, remove_helper_v1, Blob8, Blob4; + // btreemap_remove_blob_8_4_v2, remove_helper_v2, Blob8, Blob4; + // btreemap_remove_blob_8_8, remove_helper_v1, Blob8, Blob8; + // btreemap_remove_blob_8_8_v2, remove_helper_v2, Blob8, Blob8; + // btreemap_remove_blob_8_16, remove_helper_v1, Blob8, Blob16; + // btreemap_remove_blob_8_16_v2, remove_helper_v2, Blob8, Blob16; + // btreemap_remove_blob_8_32, remove_helper_v1, Blob8, Blob32; + // btreemap_remove_blob_8_32_v2, remove_helper_v2, Blob8, Blob32; + // btreemap_remove_blob_8_64, remove_helper_v1, Blob8, Blob64; + // btreemap_remove_blob_8_64_v2, remove_helper_v2, Blob8, Blob64; + // btreemap_remove_blob_8_128, remove_helper_v1, Blob8, Blob128; + // btreemap_remove_blob_8_128_v2, remove_helper_v2, Blob8, Blob128; + // btreemap_remove_blob_8_256, remove_helper_v1, Blob8, Blob256; + // btreemap_remove_blob_8_256_v2, remove_helper_v2, Blob8, Blob256; + // btreemap_remove_blob_8_512, remove_helper_v1, Blob8, Blob512; + // btreemap_remove_blob_8_512_v2, remove_helper_v2, Blob8, Blob512; + + // // 16 x V + // btreemap_remove_blob_16_4, remove_helper_v1, Blob16, Blob4; + // btreemap_remove_blob_16_4_v2, remove_helper_v2, Blob16, Blob4; + // btreemap_remove_blob_16_8, remove_helper_v1, Blob16, Blob8; + // btreemap_remove_blob_16_8_v2, remove_helper_v2, Blob16, Blob8; + // btreemap_remove_blob_16_16, remove_helper_v1, Blob16, Blob16; + // btreemap_remove_blob_16_16_v2, remove_helper_v2, Blob16, Blob16; + // btreemap_remove_blob_16_32, remove_helper_v1, Blob16, Blob32; + // btreemap_remove_blob_16_32_v2, remove_helper_v2, Blob16, Blob32; + // btreemap_remove_blob_16_64, remove_helper_v1, Blob16, Blob64; + // btreemap_remove_blob_16_64_v2, remove_helper_v2, Blob16, Blob64; + // btreemap_remove_blob_16_128, remove_helper_v1, Blob16, Blob128; + // btreemap_remove_blob_16_128_v2, remove_helper_v2, Blob16, Blob128; + // btreemap_remove_blob_16_256, remove_helper_v1, Blob16, Blob256; + // btreemap_remove_blob_16_256_v2, remove_helper_v2, Blob16, Blob256; + // btreemap_remove_blob_16_512, remove_helper_v1, Blob16, Blob512; + // btreemap_remove_blob_16_512_v2, remove_helper_v2, Blob16, Blob512; + + // // 32 x V + // btreemap_remove_blob_32_4, remove_helper_v1, Blob32, Blob4; + // btreemap_remove_blob_32_4_v2, remove_helper_v2, Blob32, Blob4; + // btreemap_remove_blob_32_8, remove_helper_v1, Blob32, Blob8; + // btreemap_remove_blob_32_8_v2, remove_helper_v2, Blob32, Blob8; + // btreemap_remove_blob_32_16, remove_helper_v1, Blob32, Blob16; + // btreemap_remove_blob_32_16_v2, remove_helper_v2, Blob32, Blob16; + // btreemap_remove_blob_32_32, remove_helper_v1, Blob32, Blob32; + // btreemap_remove_blob_32_32_v2, remove_helper_v2, Blob32, Blob32; + // btreemap_remove_blob_32_64, remove_helper_v1, Blob32, Blob64; + // btreemap_remove_blob_32_64_v2, remove_helper_v2, Blob32, Blob64; + // btreemap_remove_blob_32_128, remove_helper_v1, Blob32, Blob128; + // btreemap_remove_blob_32_128_v2, remove_helper_v2, Blob32, Blob128; + // btreemap_remove_blob_32_256, remove_helper_v1, Blob32, Blob256; + // btreemap_remove_blob_32_256_v2, remove_helper_v2, Blob32, Blob256; + // btreemap_remove_blob_32_512, remove_helper_v1, Blob32, Blob512; + // btreemap_remove_blob_32_512_v2, remove_helper_v2, Blob32, Blob512; + + // // 64 x V + // btreemap_remove_blob_64_4, remove_helper_v1, Blob64, Blob4; + // btreemap_remove_blob_64_4_v2, remove_helper_v2, Blob64, Blob4; + // btreemap_remove_blob_64_8, remove_helper_v1, Blob64, Blob8; + // btreemap_remove_blob_64_8_v2, remove_helper_v2, Blob64, Blob8; + // btreemap_remove_blob_64_16, remove_helper_v1, Blob64, Blob16; + // btreemap_remove_blob_64_16_v2, remove_helper_v2, Blob64, Blob16; + // btreemap_remove_blob_64_32, remove_helper_v1, Blob64, Blob32; + // btreemap_remove_blob_64_32_v2, remove_helper_v2, Blob64, Blob32; + // btreemap_remove_blob_64_64, remove_helper_v1, Blob64, Blob64; + // btreemap_remove_blob_64_64_v2, remove_helper_v2, Blob64, Blob64; + // btreemap_remove_blob_64_128, remove_helper_v1, Blob64, Blob128; + // btreemap_remove_blob_64_128_v2, remove_helper_v2, Blob64, Blob128; + // btreemap_remove_blob_64_256, remove_helper_v1, Blob64, Blob256; + // btreemap_remove_blob_64_256_v2, remove_helper_v2, Blob64, Blob256; + // btreemap_remove_blob_64_512, remove_helper_v1, Blob64, Blob512; + // btreemap_remove_blob_64_512_v2, remove_helper_v2, Blob64, Blob512; + + // // 128 x V + // btreemap_remove_blob_128_4, remove_helper_v1, Blob128, Blob4; + // btreemap_remove_blob_128_4_v2, remove_helper_v2, Blob128, Blob4; + // btreemap_remove_blob_128_8, remove_helper_v1, Blob128, Blob8; + // btreemap_remove_blob_128_8_v2, remove_helper_v2, Blob128, Blob8; + // btreemap_remove_blob_128_16, remove_helper_v1, Blob128, Blob16; + // btreemap_remove_blob_128_16_v2, remove_helper_v2, Blob128, Blob16; + // btreemap_remove_blob_128_32, remove_helper_v1, Blob128, Blob32; + // btreemap_remove_blob_128_32_v2, remove_helper_v2, Blob128, Blob32; + // btreemap_remove_blob_128_64, remove_helper_v1, Blob128, Blob64; + // btreemap_remove_blob_128_64_v2, remove_helper_v2, Blob128, Blob64; + // btreemap_remove_blob_128_128, remove_helper_v1, Blob128, Blob128; + // btreemap_remove_blob_128_128_v2, remove_helper_v2, Blob128, Blob128; + // btreemap_remove_blob_128_256, remove_helper_v1, Blob128, Blob256; + // btreemap_remove_blob_128_256_v2, remove_helper_v2, Blob128, Blob256; + // btreemap_remove_blob_128_512, remove_helper_v1, Blob128, Blob512; + // btreemap_remove_blob_128_512_v2, remove_helper_v2, Blob128, Blob512; + + // // 256 x V + // btreemap_remove_blob_256_4, remove_helper_v1, Blob256, Blob4; + // btreemap_remove_blob_256_4_v2, remove_helper_v2, Blob256, Blob4; + // btreemap_remove_blob_256_8, remove_helper_v1, Blob256, Blob8; + // btreemap_remove_blob_256_8_v2, remove_helper_v2, Blob256, Blob8; + // btreemap_remove_blob_256_16, remove_helper_v1, Blob256, Blob16; + // btreemap_remove_blob_256_16_v2, remove_helper_v2, Blob256, Blob16; + // btreemap_remove_blob_256_32, remove_helper_v1, Blob256, Blob32; + // btreemap_remove_blob_256_32_v2, remove_helper_v2, Blob256, Blob32; + // btreemap_remove_blob_256_64, remove_helper_v1, Blob256, Blob64; + // btreemap_remove_blob_256_64_v2, remove_helper_v2, Blob256, Blob64; + // btreemap_remove_blob_256_128, remove_helper_v1, Blob256, Blob128; + // btreemap_remove_blob_256_128_v2, remove_helper_v2, Blob256, Blob128; + // btreemap_remove_blob_256_256, remove_helper_v1, Blob256, Blob256; + // btreemap_remove_blob_256_256_v2, remove_helper_v2, Blob256, Blob256; + // btreemap_remove_blob_256_512, remove_helper_v1, Blob256, Blob512; + // btreemap_remove_blob_256_512_v2, remove_helper_v2, Blob256, Blob512; + + // // 512 x V + // btreemap_remove_blob_512_4, remove_helper_v1, Blob512, Blob4; + // btreemap_remove_blob_512_4_v2, remove_helper_v2, Blob512, Blob4; + // btreemap_remove_blob_512_8, remove_helper_v1, Blob512, Blob8; + // btreemap_remove_blob_512_8_v2, remove_helper_v2, Blob512, Blob8; + // btreemap_remove_blob_512_16, remove_helper_v1, Blob512, Blob16; + // btreemap_remove_blob_512_16_v2, remove_helper_v2, Blob512, Blob16; + // btreemap_remove_blob_512_32, remove_helper_v1, Blob512, Blob32; + // btreemap_remove_blob_512_32_v2, remove_helper_v2, Blob512, Blob32; + // btreemap_remove_blob_512_64, remove_helper_v1, Blob512, Blob64; + // btreemap_remove_blob_512_64_v2, remove_helper_v2, Blob512, Blob64; + // btreemap_remove_blob_512_128, remove_helper_v1, Blob512, Blob128; + // btreemap_remove_blob_512_128_v2, remove_helper_v2, Blob512, Blob128; + // btreemap_remove_blob_512_256, remove_helper_v1, Blob512, Blob256; + // btreemap_remove_blob_512_256_v2, remove_helper_v2, Blob512, Blob256; + // btreemap_remove_blob_512_512, remove_helper_v1, Blob512, Blob512; + // btreemap_remove_blob_512_512_v2, remove_helper_v2, Blob512, Blob512; + + // // 1024 x V + // btreemap_remove_blob_1024_4, remove_helper_v1, Blob1024, Blob4; + // btreemap_remove_blob_1024_4_v2, remove_helper_v2, Blob1024, Blob4; + // btreemap_remove_blob_1024_8, remove_helper_v1, Blob1024, Blob8; + // btreemap_remove_blob_1024_8_v2, remove_helper_v2, Blob1024, Blob8; + // btreemap_remove_blob_1024_16, remove_helper_v1, Blob1024, Blob16; + // btreemap_remove_blob_1024_16_v2, remove_helper_v2, Blob1024, Blob16; + // btreemap_remove_blob_1024_32, remove_helper_v1, Blob1024, Blob32; + // btreemap_remove_blob_1024_32_v2, remove_helper_v2, Blob1024, Blob32; + // btreemap_remove_blob_1024_64, remove_helper_v1, Blob1024, Blob64; + // btreemap_remove_blob_1024_64_v2, remove_helper_v2, Blob1024, Blob64; + // btreemap_remove_blob_1024_128, remove_helper_v1, Blob1024, Blob128; + // btreemap_remove_blob_1024_128_v2, remove_helper_v2, Blob1024, Blob128; + // btreemap_remove_blob_1024_256, remove_helper_v1, Blob1024, Blob256; + // btreemap_remove_blob_1024_256_v2, remove_helper_v2, Blob1024, Blob256; + // btreemap_remove_blob_1024_512, remove_helper_v1, Blob1024, Blob512; + // btreemap_remove_blob_1024_512_v2, remove_helper_v2, Blob1024, Blob512; + + // btreemap_remove_blob_1024_1024, remove_helper_v1, Blob1024, Blob1024; + // btreemap_remove_blob_1024_1024_v2, remove_helper_v2, Blob1024, 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. @@ -124,16 +436,181 @@ bench_tests! { 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_blob_512_1024_v2_mem_manager, get_helper_v2_mem_manager, Blob512, Blob1024; + + // 4 x V + btreemap_get_blob_4_4, get_helper_v1, Blob4, Blob4; + btreemap_get_blob_4_4_v2, get_helper_v2, Blob4, Blob4; + btreemap_get_blob_4_8, get_helper_v1, Blob4, Blob8; + btreemap_get_blob_4_8_v2, get_helper_v2, Blob4, Blob8; + btreemap_get_blob_4_16, get_helper_v1, Blob4, Blob16; + btreemap_get_blob_4_16_v2, get_helper_v2, Blob4, Blob16; + btreemap_get_blob_4_32, get_helper_v1, Blob4, Blob32; + btreemap_get_blob_4_32_v2, get_helper_v2, Blob4, Blob32; + btreemap_get_blob_4_64, get_helper_v1, Blob4, Blob64; + btreemap_get_blob_4_64_v2, get_helper_v2, Blob4, Blob64; + btreemap_get_blob_4_128, get_helper_v1, Blob4, Blob128; + btreemap_get_blob_4_128_v2, get_helper_v2, Blob4, Blob128; + btreemap_get_blob_4_256, get_helper_v1, Blob4, Blob256; + btreemap_get_blob_4_256_v2, get_helper_v2, Blob4, Blob256; + btreemap_get_blob_4_512, get_helper_v1, Blob4, Blob512; + btreemap_get_blob_4_512_v2, get_helper_v2, Blob4, Blob512; + + // 8 x V + btreemap_get_blob_8_4, get_helper_v1, Blob8, Blob4; + btreemap_get_blob_8_4_v2, get_helper_v2, Blob8, Blob4; + btreemap_get_blob_8_8, get_helper_v1, Blob8, Blob8; + btreemap_get_blob_8_8_v2, get_helper_v2, Blob8, Blob8; + btreemap_get_blob_8_16, get_helper_v1, Blob8, Blob16; + btreemap_get_blob_8_16_v2, get_helper_v2, Blob8, Blob16; + btreemap_get_blob_8_32, get_helper_v1, Blob8, Blob32; + btreemap_get_blob_8_32_v2, get_helper_v2, Blob8, Blob32; + btreemap_get_blob_8_64, get_helper_v1, Blob8, Blob64; + btreemap_get_blob_8_64_v2, get_helper_v2, Blob8, Blob64; + btreemap_get_blob_8_128, get_helper_v1, Blob8, Blob128; + btreemap_get_blob_8_128_v2, get_helper_v2, Blob8, Blob128; + btreemap_get_blob_8_256, get_helper_v1, Blob8, Blob256; + btreemap_get_blob_8_256_v2, get_helper_v2, Blob8, Blob256; + btreemap_get_blob_8_512, get_helper_v1, Blob8, Blob512; + btreemap_get_blob_8_512_v2, get_helper_v2, Blob8, Blob512; + + // 16 x V + btreemap_get_blob_16_4, get_helper_v1, Blob16, Blob4; + btreemap_get_blob_16_4_v2, get_helper_v2, Blob16, Blob4; + btreemap_get_blob_16_8, get_helper_v1, Blob16, Blob8; + btreemap_get_blob_16_8_v2, get_helper_v2, Blob16, Blob8; + btreemap_get_blob_16_16, get_helper_v1, Blob16, Blob16; + btreemap_get_blob_16_16_v2, get_helper_v2, Blob16, Blob16; + btreemap_get_blob_16_32, get_helper_v1, Blob16, Blob32; + btreemap_get_blob_16_32_v2, get_helper_v2, Blob16, Blob32; + btreemap_get_blob_16_64, get_helper_v1, Blob16, Blob64; + btreemap_get_blob_16_64_v2, get_helper_v2, Blob16, Blob64; + btreemap_get_blob_16_128, get_helper_v1, Blob16, Blob128; + btreemap_get_blob_16_128_v2, get_helper_v2, Blob16, Blob128; + btreemap_get_blob_16_256, get_helper_v1, Blob16, Blob256; + btreemap_get_blob_16_256_v2, get_helper_v2, Blob16, Blob256; + btreemap_get_blob_16_512, get_helper_v1, Blob16, Blob512; + btreemap_get_blob_16_512_v2, get_helper_v2, Blob16, Blob512; + + // 32 x V + btreemap_get_blob_32_4, get_helper_v1, Blob32, Blob4; + btreemap_get_blob_32_4_v2, get_helper_v2, Blob32, Blob4; + btreemap_get_blob_32_8, get_helper_v1, Blob32, Blob8; + btreemap_get_blob_32_8_v2, get_helper_v2, Blob32, Blob8; + btreemap_get_blob_32_16, get_helper_v1, Blob32, Blob16; + btreemap_get_blob_32_16_v2, get_helper_v2, Blob32, Blob16; + btreemap_get_blob_32_32, get_helper_v1, Blob32, Blob32; + btreemap_get_blob_32_32_v2, get_helper_v2, Blob32, Blob32; + btreemap_get_blob_32_64, get_helper_v1, Blob32, Blob64; + btreemap_get_blob_32_64_v2, get_helper_v2, Blob32, Blob64; + btreemap_get_blob_32_128, get_helper_v1, Blob32, Blob128; + btreemap_get_blob_32_128_v2, get_helper_v2, Blob32, Blob128; + btreemap_get_blob_32_256, get_helper_v1, Blob32, Blob256; + btreemap_get_blob_32_256_v2, get_helper_v2, Blob32, Blob256; + btreemap_get_blob_32_512, get_helper_v1, Blob32, Blob512; + btreemap_get_blob_32_512_v2, get_helper_v2, Blob32, Blob512; + + // 64 x V + btreemap_get_blob_64_4, get_helper_v1, Blob64, Blob4; + btreemap_get_blob_64_4_v2, get_helper_v2, Blob64, Blob4; + btreemap_get_blob_64_8, get_helper_v1, Blob64, Blob8; + btreemap_get_blob_64_8_v2, get_helper_v2, Blob64, Blob8; + btreemap_get_blob_64_16, get_helper_v1, Blob64, Blob16; + btreemap_get_blob_64_16_v2, get_helper_v2, Blob64, Blob16; + btreemap_get_blob_64_32, get_helper_v1, Blob64, Blob32; + btreemap_get_blob_64_32_v2, get_helper_v2, Blob64, Blob32; + btreemap_get_blob_64_64, get_helper_v1, Blob64, Blob64; + btreemap_get_blob_64_64_v2, get_helper_v2, Blob64, Blob64; + btreemap_get_blob_64_128, get_helper_v1, Blob64, Blob128; + btreemap_get_blob_64_128_v2, get_helper_v2, Blob64, Blob128; + btreemap_get_blob_64_256, get_helper_v1, Blob64, Blob256; + btreemap_get_blob_64_256_v2, get_helper_v2, Blob64, Blob256; + btreemap_get_blob_64_512, get_helper_v1, Blob64, Blob512; + btreemap_get_blob_64_512_v2, get_helper_v2, Blob64, Blob512; + + // 128 x V + btreemap_get_blob_128_4, get_helper_v1, Blob128, Blob4; + btreemap_get_blob_128_4_v2, get_helper_v2, Blob128, Blob4; + btreemap_get_blob_128_8, get_helper_v1, Blob128, Blob8; + btreemap_get_blob_128_8_v2, get_helper_v2, Blob128, Blob8; + btreemap_get_blob_128_16, get_helper_v1, Blob128, Blob16; + btreemap_get_blob_128_16_v2, get_helper_v2, Blob128, Blob16; + btreemap_get_blob_128_32, get_helper_v1, Blob128, Blob32; + btreemap_get_blob_128_32_v2, get_helper_v2, Blob128, Blob32; + btreemap_get_blob_128_64, get_helper_v1, Blob128, Blob64; + btreemap_get_blob_128_64_v2, get_helper_v2, Blob128, Blob64; + btreemap_get_blob_128_128, get_helper_v1, Blob128, Blob128; + btreemap_get_blob_128_128_v2, get_helper_v2, Blob128, Blob128; + btreemap_get_blob_128_256, get_helper_v1, Blob128, Blob256; + btreemap_get_blob_128_256_v2, get_helper_v2, Blob128, Blob256; + btreemap_get_blob_128_512, get_helper_v1, Blob128, Blob512; + btreemap_get_blob_128_512_v2, get_helper_v2, Blob128, Blob512; + + // 256 x V + btreemap_get_blob_256_4, get_helper_v1, Blob256, Blob4; + btreemap_get_blob_256_4_v2, get_helper_v2, Blob256, Blob4; + btreemap_get_blob_256_8, get_helper_v1, Blob256, Blob8; + btreemap_get_blob_256_8_v2, get_helper_v2, Blob256, Blob8; + btreemap_get_blob_256_16, get_helper_v1, Blob256, Blob16; + btreemap_get_blob_256_16_v2, get_helper_v2, Blob256, Blob16; + btreemap_get_blob_256_32, get_helper_v1, Blob256, Blob32; + btreemap_get_blob_256_32_v2, get_helper_v2, Blob256, Blob32; + btreemap_get_blob_256_64, get_helper_v1, Blob256, Blob64; + btreemap_get_blob_256_64_v2, get_helper_v2, Blob256, Blob64; + btreemap_get_blob_256_128, get_helper_v1, Blob256, Blob128; + btreemap_get_blob_256_128_v2, get_helper_v2, Blob256, Blob128; + btreemap_get_blob_256_256, get_helper_v1, Blob256, Blob256; + btreemap_get_blob_256_256_v2, get_helper_v2, Blob256, Blob256; + btreemap_get_blob_256_512, get_helper_v1, Blob256, Blob512; + btreemap_get_blob_256_512_v2, get_helper_v2, Blob256, Blob512; + + // 512 x V + btreemap_get_blob_512_4, get_helper_v1, Blob512, Blob4; + btreemap_get_blob_512_4_v2, get_helper_v2, Blob512, Blob4; + btreemap_get_blob_512_8, get_helper_v1, Blob512, Blob8; + btreemap_get_blob_512_8_v2, get_helper_v2, Blob512, Blob8; + btreemap_get_blob_512_16, get_helper_v1, Blob512, Blob16; + btreemap_get_blob_512_16_v2, get_helper_v2, Blob512, Blob16; + btreemap_get_blob_512_32, get_helper_v1, Blob512, Blob32; + btreemap_get_blob_512_32_v2, get_helper_v2, Blob512, Blob32; + btreemap_get_blob_512_64, get_helper_v1, Blob512, Blob64; + btreemap_get_blob_512_64_v2, get_helper_v2, Blob512, Blob64; + btreemap_get_blob_512_128, get_helper_v1, Blob512, Blob128; + btreemap_get_blob_512_128_v2, get_helper_v2, Blob512, Blob128; + btreemap_get_blob_512_256, get_helper_v1, Blob512, Blob256; + btreemap_get_blob_512_256_v2, get_helper_v2, Blob512, Blob256; + btreemap_get_blob_512_512, get_helper_v1, Blob512, Blob512; + btreemap_get_blob_512_512_v2, get_helper_v2, Blob512, Blob512; - 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; + // 1024 x V + btreemap_get_blob_1024_4, get_helper_v1, Blob1024, Blob4; + btreemap_get_blob_1024_4_v2, get_helper_v2, Blob1024, Blob4; + btreemap_get_blob_1024_8, get_helper_v1, Blob1024, Blob8; + btreemap_get_blob_1024_8_v2, get_helper_v2, Blob1024, Blob8; + btreemap_get_blob_1024_16, get_helper_v1, Blob1024, Blob16; + btreemap_get_blob_1024_16_v2, get_helper_v2, Blob1024, Blob16; + btreemap_get_blob_1024_32, get_helper_v1, Blob1024, Blob32; + btreemap_get_blob_1024_32_v2, get_helper_v2, Blob1024, Blob32; + btreemap_get_blob_1024_64, get_helper_v1, Blob1024, Blob64; + btreemap_get_blob_1024_64_v2, get_helper_v2, Blob1024, Blob64; + btreemap_get_blob_1024_128, get_helper_v1, Blob1024, Blob128; + btreemap_get_blob_1024_128_v2, get_helper_v2, Blob1024, Blob128; + btreemap_get_blob_1024_256, get_helper_v1, Blob1024, Blob256; + btreemap_get_blob_1024_256_v2, get_helper_v2, Blob1024, Blob256; + btreemap_get_blob_1024_512, get_helper_v1, Blob1024, Blob512; + btreemap_get_blob_1024_512_v2, get_helper_v2, Blob1024, Blob512; + + btreemap_get_blob_1024_1024, get_helper_v1, Blob1024, Blob1024; + btreemap_get_blob_1024_1024_v2, get_helper_v2, Blob1024, 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. From c081d58bd6ccf2db18f11288925c12ad4c9a14c6 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 08:37:41 +0200 Subject: [PATCH 02/68] revert --- benchmarks/src/btreemap.rs | 520 ++++--------------------------------- 1 file changed, 44 insertions(+), 476 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index 5f7edc0b..cfe85c10 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -47,150 +47,6 @@ bench_tests! { btreemap_insert_blob_512_1024, insert_helper_v1, Blob512, Blob1024; btreemap_insert_blob_512_1024_v2, insert_helper_v2, Blob512, Blob1024; - // 4 x V - btreemap_insert_blob_4_4, insert_helper_v1, Blob4, Blob4; - btreemap_insert_blob_4_4_v2, insert_helper_v2, Blob4, Blob4; - btreemap_insert_blob_4_8, insert_helper_v1, Blob4, Blob8; - btreemap_insert_blob_4_8_v2, insert_helper_v2, Blob4, Blob8; - btreemap_insert_blob_4_16, insert_helper_v1, Blob4, Blob16; - btreemap_insert_blob_4_16_v2, insert_helper_v2, Blob4, Blob16; - btreemap_insert_blob_4_32, insert_helper_v1, Blob4, Blob32; - btreemap_insert_blob_4_32_v2, insert_helper_v2, Blob4, Blob32; - btreemap_insert_blob_4_64, insert_helper_v1, Blob4, Blob64; - btreemap_insert_blob_4_64_v2, insert_helper_v2, Blob4, Blob64; - btreemap_insert_blob_4_128, insert_helper_v1, Blob4, Blob128; - btreemap_insert_blob_4_128_v2, insert_helper_v2, Blob4, Blob128; - btreemap_insert_blob_4_256, insert_helper_v1, Blob4, Blob256; - btreemap_insert_blob_4_256_v2, insert_helper_v2, Blob4, Blob256; - btreemap_insert_blob_4_512, insert_helper_v1, Blob4, Blob512; - btreemap_insert_blob_4_512_v2, insert_helper_v2, Blob4, Blob512; - - // 8 x V - btreemap_insert_blob_8_4, insert_helper_v1, Blob8, Blob4; - btreemap_insert_blob_8_4_v2, insert_helper_v2, Blob8, Blob4; - btreemap_insert_blob_8_8, insert_helper_v1, Blob8, Blob8; - btreemap_insert_blob_8_8_v2, insert_helper_v2, Blob8, Blob8; - btreemap_insert_blob_8_16, insert_helper_v1, Blob8, Blob16; - btreemap_insert_blob_8_16_v2, insert_helper_v2, Blob8, Blob16; - btreemap_insert_blob_8_32, insert_helper_v1, Blob8, Blob32; - btreemap_insert_blob_8_32_v2, insert_helper_v2, Blob8, Blob32; - btreemap_insert_blob_8_64, insert_helper_v1, Blob8, Blob64; - btreemap_insert_blob_8_64_v2, insert_helper_v2, Blob8, Blob64; - btreemap_insert_blob_8_128, insert_helper_v1, Blob8, Blob128; - btreemap_insert_blob_8_128_v2, insert_helper_v2, Blob8, Blob128; - btreemap_insert_blob_8_256, insert_helper_v1, Blob8, Blob256; - btreemap_insert_blob_8_256_v2, insert_helper_v2, Blob8, Blob256; - btreemap_insert_blob_8_512, insert_helper_v1, Blob8, Blob512; - btreemap_insert_blob_8_512_v2, insert_helper_v2, Blob8, Blob512; - - // 16 x V - btreemap_insert_blob_16_4, insert_helper_v1, Blob16, Blob4; - btreemap_insert_blob_16_4_v2, insert_helper_v2, Blob16, Blob4; - btreemap_insert_blob_16_8, insert_helper_v1, Blob16, Blob8; - btreemap_insert_blob_16_8_v2, insert_helper_v2, Blob16, Blob8; - btreemap_insert_blob_16_16, insert_helper_v1, Blob16, Blob16; - btreemap_insert_blob_16_16_v2, insert_helper_v2, Blob16, Blob16; - btreemap_insert_blob_16_32, insert_helper_v1, Blob16, Blob32; - btreemap_insert_blob_16_32_v2, insert_helper_v2, Blob16, Blob32; - btreemap_insert_blob_16_64, insert_helper_v1, Blob16, Blob64; - btreemap_insert_blob_16_64_v2, insert_helper_v2, Blob16, Blob64; - btreemap_insert_blob_16_128, insert_helper_v1, Blob16, Blob128; - btreemap_insert_blob_16_128_v2, insert_helper_v2, Blob16, Blob128; - btreemap_insert_blob_16_256, insert_helper_v1, Blob16, Blob256; - btreemap_insert_blob_16_256_v2, insert_helper_v2, Blob16, Blob256; - btreemap_insert_blob_16_512, insert_helper_v1, Blob16, Blob512; - btreemap_insert_blob_16_512_v2, insert_helper_v2, Blob16, Blob512; - - // 32 x V - btreemap_insert_blob_32_4, insert_helper_v1, Blob32, Blob4; - btreemap_insert_blob_32_4_v2, insert_helper_v2, Blob32, Blob4; - btreemap_insert_blob_32_8, insert_helper_v1, Blob32, Blob8; - btreemap_insert_blob_32_8_v2, insert_helper_v2, Blob32, Blob8; - btreemap_insert_blob_32_16, insert_helper_v1, Blob32, Blob16; - btreemap_insert_blob_32_16_v2, insert_helper_v2, Blob32, Blob16; - btreemap_insert_blob_32_32, insert_helper_v1, Blob32, Blob32; - btreemap_insert_blob_32_32_v2, insert_helper_v2, Blob32, Blob32; - btreemap_insert_blob_32_64, insert_helper_v1, Blob32, Blob64; - btreemap_insert_blob_32_64_v2, insert_helper_v2, Blob32, Blob64; - btreemap_insert_blob_32_128, insert_helper_v1, Blob32, Blob128; - btreemap_insert_blob_32_128_v2, insert_helper_v2, Blob32, Blob128; - btreemap_insert_blob_32_256, insert_helper_v1, Blob32, Blob256; - btreemap_insert_blob_32_256_v2, insert_helper_v2, Blob32, Blob256; - btreemap_insert_blob_32_512, insert_helper_v1, Blob32, Blob512; - btreemap_insert_blob_32_512_v2, insert_helper_v2, Blob32, Blob512; - - // 64 x V - btreemap_insert_blob_64_4, insert_helper_v1, Blob64, Blob4; - btreemap_insert_blob_64_4_v2, insert_helper_v2, Blob64, Blob4; - btreemap_insert_blob_64_8, insert_helper_v1, Blob64, Blob8; - btreemap_insert_blob_64_8_v2, insert_helper_v2, Blob64, Blob8; - btreemap_insert_blob_64_16, insert_helper_v1, Blob64, Blob16; - btreemap_insert_blob_64_16_v2, insert_helper_v2, Blob64, Blob16; - btreemap_insert_blob_64_32, insert_helper_v1, Blob64, Blob32; - btreemap_insert_blob_64_32_v2, insert_helper_v2, Blob64, Blob32; - btreemap_insert_blob_64_64, insert_helper_v1, Blob64, Blob64; - btreemap_insert_blob_64_64_v2, insert_helper_v2, Blob64, Blob64; - btreemap_insert_blob_64_128, insert_helper_v1, Blob64, Blob128; - btreemap_insert_blob_64_128_v2, insert_helper_v2, Blob64, Blob128; - btreemap_insert_blob_64_256, insert_helper_v1, Blob64, Blob256; - btreemap_insert_blob_64_256_v2, insert_helper_v2, Blob64, Blob256; - btreemap_insert_blob_64_512, insert_helper_v1, Blob64, Blob512; - btreemap_insert_blob_64_512_v2, insert_helper_v2, Blob64, Blob512; - - // 128 x V - btreemap_insert_blob_128_4, insert_helper_v1, Blob128, Blob4; - btreemap_insert_blob_128_4_v2, insert_helper_v2, Blob128, Blob4; - btreemap_insert_blob_128_8, insert_helper_v1, Blob128, Blob8; - btreemap_insert_blob_128_8_v2, insert_helper_v2, Blob128, Blob8; - btreemap_insert_blob_128_16, insert_helper_v1, Blob128, Blob16; - btreemap_insert_blob_128_16_v2, insert_helper_v2, Blob128, Blob16; - btreemap_insert_blob_128_32, insert_helper_v1, Blob128, Blob32; - btreemap_insert_blob_128_32_v2, insert_helper_v2, Blob128, Blob32; - btreemap_insert_blob_128_64, insert_helper_v1, Blob128, Blob64; - btreemap_insert_blob_128_64_v2, insert_helper_v2, Blob128, Blob64; - btreemap_insert_blob_128_128, insert_helper_v1, Blob128, Blob128; - btreemap_insert_blob_128_128_v2, insert_helper_v2, Blob128, Blob128; - btreemap_insert_blob_128_256, insert_helper_v1, Blob128, Blob256; - btreemap_insert_blob_128_256_v2, insert_helper_v2, Blob128, Blob256; - btreemap_insert_blob_128_512, insert_helper_v1, Blob128, Blob512; - btreemap_insert_blob_128_512_v2, insert_helper_v2, Blob128, Blob512; - - // 256 x V - btreemap_insert_blob_256_4, insert_helper_v1, Blob256, Blob4; - btreemap_insert_blob_256_4_v2, insert_helper_v2, Blob256, Blob4; - btreemap_insert_blob_256_8, insert_helper_v1, Blob256, Blob8; - btreemap_insert_blob_256_8_v2, insert_helper_v2, Blob256, Blob8; - btreemap_insert_blob_256_16, insert_helper_v1, Blob256, Blob16; - btreemap_insert_blob_256_16_v2, insert_helper_v2, Blob256, Blob16; - btreemap_insert_blob_256_32, insert_helper_v1, Blob256, Blob32; - btreemap_insert_blob_256_32_v2, insert_helper_v2, Blob256, Blob32; - btreemap_insert_blob_256_64, insert_helper_v1, Blob256, Blob64; - btreemap_insert_blob_256_64_v2, insert_helper_v2, Blob256, Blob64; - btreemap_insert_blob_256_128, insert_helper_v1, Blob256, Blob128; - btreemap_insert_blob_256_128_v2, insert_helper_v2, Blob256, Blob128; - btreemap_insert_blob_256_256, insert_helper_v1, Blob256, Blob256; - btreemap_insert_blob_256_256_v2, insert_helper_v2, Blob256, Blob256; - btreemap_insert_blob_256_512, insert_helper_v1, Blob256, Blob512; - btreemap_insert_blob_256_512_v2, insert_helper_v2, Blob256, Blob512; - - // 512 x V - btreemap_insert_blob_512_4, insert_helper_v1, Blob512, Blob4; - btreemap_insert_blob_512_4_v2, insert_helper_v2, Blob512, Blob4; - btreemap_insert_blob_512_8, insert_helper_v1, Blob512, Blob8; - btreemap_insert_blob_512_8_v2, insert_helper_v2, Blob512, Blob8; - btreemap_insert_blob_512_16, insert_helper_v1, Blob512, Blob16; - btreemap_insert_blob_512_16_v2, insert_helper_v2, Blob512, Blob16; - btreemap_insert_blob_512_32, insert_helper_v1, Blob512, Blob32; - btreemap_insert_blob_512_32_v2, insert_helper_v2, Blob512, Blob32; - btreemap_insert_blob_512_64, insert_helper_v1, Blob512, Blob64; - btreemap_insert_blob_512_64_v2, insert_helper_v2, Blob512, Blob64; - btreemap_insert_blob_512_128, insert_helper_v1, Blob512, Blob128; - btreemap_insert_blob_512_128_v2, insert_helper_v2, Blob512, Blob128; - btreemap_insert_blob_512_256, insert_helper_v1, Blob512, Blob256; - btreemap_insert_blob_512_256_v2, insert_helper_v2, Blob512, Blob256; - btreemap_insert_blob_512_512, insert_helper_v1, Blob512, Blob512; - btreemap_insert_blob_512_512_v2, insert_helper_v2, Blob512, Blob512; - // 1024 x V btreemap_insert_blob_1024_4, insert_helper_v1, Blob1024, Blob4; btreemap_insert_blob_1024_4_v2, insert_helper_v2, Blob1024, Blob4; @@ -208,19 +64,19 @@ bench_tests! { 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_blob_1024_512_v2_mem_manager, insert_helper_v2_mem_manager, Blob1024, Blob512; btreemap_insert_blob_1024_1024, insert_helper_v1, Blob1024, Blob1024; btreemap_insert_blob_1024_1024_v2, insert_helper_v2, Blob1024, Blob1024; - // 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_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; + 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. @@ -243,178 +99,34 @@ bench_tests! { btreemap_remove_blob_512_1024, remove_helper_v1, Blob512, Blob1024; btreemap_remove_blob_512_1024_v2, remove_helper_v2, Blob512, Blob1024; - // // 4 x V - // btreemap_remove_blob_4_4, remove_helper_v1, Blob4, Blob4; - // btreemap_remove_blob_4_4_v2, remove_helper_v2, Blob4, Blob4; - // btreemap_remove_blob_4_8, remove_helper_v1, Blob4, Blob8; - // btreemap_remove_blob_4_8_v2, remove_helper_v2, Blob4, Blob8; - // btreemap_remove_blob_4_16, remove_helper_v1, Blob4, Blob16; - // btreemap_remove_blob_4_16_v2, remove_helper_v2, Blob4, Blob16; - // btreemap_remove_blob_4_32, remove_helper_v1, Blob4, Blob32; - // btreemap_remove_blob_4_32_v2, remove_helper_v2, Blob4, Blob32; - // btreemap_remove_blob_4_64, remove_helper_v1, Blob4, Blob64; - // btreemap_remove_blob_4_64_v2, remove_helper_v2, Blob4, Blob64; - // btreemap_remove_blob_4_128, remove_helper_v1, Blob4, Blob128; - // btreemap_remove_blob_4_128_v2, remove_helper_v2, Blob4, Blob128; - // btreemap_remove_blob_4_256, remove_helper_v1, Blob4, Blob256; - // btreemap_remove_blob_4_256_v2, remove_helper_v2, Blob4, Blob256; - // btreemap_remove_blob_4_512, remove_helper_v1, Blob4, Blob512; - // btreemap_remove_blob_4_512_v2, remove_helper_v2, Blob4, Blob512; - - // // 8 x V - // btreemap_remove_blob_8_4, remove_helper_v1, Blob8, Blob4; - // btreemap_remove_blob_8_4_v2, remove_helper_v2, Blob8, Blob4; - // btreemap_remove_blob_8_8, remove_helper_v1, Blob8, Blob8; - // btreemap_remove_blob_8_8_v2, remove_helper_v2, Blob8, Blob8; - // btreemap_remove_blob_8_16, remove_helper_v1, Blob8, Blob16; - // btreemap_remove_blob_8_16_v2, remove_helper_v2, Blob8, Blob16; - // btreemap_remove_blob_8_32, remove_helper_v1, Blob8, Blob32; - // btreemap_remove_blob_8_32_v2, remove_helper_v2, Blob8, Blob32; - // btreemap_remove_blob_8_64, remove_helper_v1, Blob8, Blob64; - // btreemap_remove_blob_8_64_v2, remove_helper_v2, Blob8, Blob64; - // btreemap_remove_blob_8_128, remove_helper_v1, Blob8, Blob128; - // btreemap_remove_blob_8_128_v2, remove_helper_v2, Blob8, Blob128; - // btreemap_remove_blob_8_256, remove_helper_v1, Blob8, Blob256; - // btreemap_remove_blob_8_256_v2, remove_helper_v2, Blob8, Blob256; - // btreemap_remove_blob_8_512, remove_helper_v1, Blob8, Blob512; - // btreemap_remove_blob_8_512_v2, remove_helper_v2, Blob8, Blob512; - - // // 16 x V - // btreemap_remove_blob_16_4, remove_helper_v1, Blob16, Blob4; - // btreemap_remove_blob_16_4_v2, remove_helper_v2, Blob16, Blob4; - // btreemap_remove_blob_16_8, remove_helper_v1, Blob16, Blob8; - // btreemap_remove_blob_16_8_v2, remove_helper_v2, Blob16, Blob8; - // btreemap_remove_blob_16_16, remove_helper_v1, Blob16, Blob16; - // btreemap_remove_blob_16_16_v2, remove_helper_v2, Blob16, Blob16; - // btreemap_remove_blob_16_32, remove_helper_v1, Blob16, Blob32; - // btreemap_remove_blob_16_32_v2, remove_helper_v2, Blob16, Blob32; - // btreemap_remove_blob_16_64, remove_helper_v1, Blob16, Blob64; - // btreemap_remove_blob_16_64_v2, remove_helper_v2, Blob16, Blob64; - // btreemap_remove_blob_16_128, remove_helper_v1, Blob16, Blob128; - // btreemap_remove_blob_16_128_v2, remove_helper_v2, Blob16, Blob128; - // btreemap_remove_blob_16_256, remove_helper_v1, Blob16, Blob256; - // btreemap_remove_blob_16_256_v2, remove_helper_v2, Blob16, Blob256; - // btreemap_remove_blob_16_512, remove_helper_v1, Blob16, Blob512; - // btreemap_remove_blob_16_512_v2, remove_helper_v2, Blob16, Blob512; - - // // 32 x V - // btreemap_remove_blob_32_4, remove_helper_v1, Blob32, Blob4; - // btreemap_remove_blob_32_4_v2, remove_helper_v2, Blob32, Blob4; - // btreemap_remove_blob_32_8, remove_helper_v1, Blob32, Blob8; - // btreemap_remove_blob_32_8_v2, remove_helper_v2, Blob32, Blob8; - // btreemap_remove_blob_32_16, remove_helper_v1, Blob32, Blob16; - // btreemap_remove_blob_32_16_v2, remove_helper_v2, Blob32, Blob16; - // btreemap_remove_blob_32_32, remove_helper_v1, Blob32, Blob32; - // btreemap_remove_blob_32_32_v2, remove_helper_v2, Blob32, Blob32; - // btreemap_remove_blob_32_64, remove_helper_v1, Blob32, Blob64; - // btreemap_remove_blob_32_64_v2, remove_helper_v2, Blob32, Blob64; - // btreemap_remove_blob_32_128, remove_helper_v1, Blob32, Blob128; - // btreemap_remove_blob_32_128_v2, remove_helper_v2, Blob32, Blob128; - // btreemap_remove_blob_32_256, remove_helper_v1, Blob32, Blob256; - // btreemap_remove_blob_32_256_v2, remove_helper_v2, Blob32, Blob256; - // btreemap_remove_blob_32_512, remove_helper_v1, Blob32, Blob512; - // btreemap_remove_blob_32_512_v2, remove_helper_v2, Blob32, Blob512; - - // // 64 x V - // btreemap_remove_blob_64_4, remove_helper_v1, Blob64, Blob4; - // btreemap_remove_blob_64_4_v2, remove_helper_v2, Blob64, Blob4; - // btreemap_remove_blob_64_8, remove_helper_v1, Blob64, Blob8; - // btreemap_remove_blob_64_8_v2, remove_helper_v2, Blob64, Blob8; - // btreemap_remove_blob_64_16, remove_helper_v1, Blob64, Blob16; - // btreemap_remove_blob_64_16_v2, remove_helper_v2, Blob64, Blob16; - // btreemap_remove_blob_64_32, remove_helper_v1, Blob64, Blob32; - // btreemap_remove_blob_64_32_v2, remove_helper_v2, Blob64, Blob32; - // btreemap_remove_blob_64_64, remove_helper_v1, Blob64, Blob64; - // btreemap_remove_blob_64_64_v2, remove_helper_v2, Blob64, Blob64; - // btreemap_remove_blob_64_128, remove_helper_v1, Blob64, Blob128; - // btreemap_remove_blob_64_128_v2, remove_helper_v2, Blob64, Blob128; - // btreemap_remove_blob_64_256, remove_helper_v1, Blob64, Blob256; - // btreemap_remove_blob_64_256_v2, remove_helper_v2, Blob64, Blob256; - // btreemap_remove_blob_64_512, remove_helper_v1, Blob64, Blob512; - // btreemap_remove_blob_64_512_v2, remove_helper_v2, Blob64, Blob512; - - // // 128 x V - // btreemap_remove_blob_128_4, remove_helper_v1, Blob128, Blob4; - // btreemap_remove_blob_128_4_v2, remove_helper_v2, Blob128, Blob4; - // btreemap_remove_blob_128_8, remove_helper_v1, Blob128, Blob8; - // btreemap_remove_blob_128_8_v2, remove_helper_v2, Blob128, Blob8; - // btreemap_remove_blob_128_16, remove_helper_v1, Blob128, Blob16; - // btreemap_remove_blob_128_16_v2, remove_helper_v2, Blob128, Blob16; - // btreemap_remove_blob_128_32, remove_helper_v1, Blob128, Blob32; - // btreemap_remove_blob_128_32_v2, remove_helper_v2, Blob128, Blob32; - // btreemap_remove_blob_128_64, remove_helper_v1, Blob128, Blob64; - // btreemap_remove_blob_128_64_v2, remove_helper_v2, Blob128, Blob64; - // btreemap_remove_blob_128_128, remove_helper_v1, Blob128, Blob128; - // btreemap_remove_blob_128_128_v2, remove_helper_v2, Blob128, Blob128; - // btreemap_remove_blob_128_256, remove_helper_v1, Blob128, Blob256; - // btreemap_remove_blob_128_256_v2, remove_helper_v2, Blob128, Blob256; - // btreemap_remove_blob_128_512, remove_helper_v1, Blob128, Blob512; - // btreemap_remove_blob_128_512_v2, remove_helper_v2, Blob128, Blob512; - - // // 256 x V - // btreemap_remove_blob_256_4, remove_helper_v1, Blob256, Blob4; - // btreemap_remove_blob_256_4_v2, remove_helper_v2, Blob256, Blob4; - // btreemap_remove_blob_256_8, remove_helper_v1, Blob256, Blob8; - // btreemap_remove_blob_256_8_v2, remove_helper_v2, Blob256, Blob8; - // btreemap_remove_blob_256_16, remove_helper_v1, Blob256, Blob16; - // btreemap_remove_blob_256_16_v2, remove_helper_v2, Blob256, Blob16; - // btreemap_remove_blob_256_32, remove_helper_v1, Blob256, Blob32; - // btreemap_remove_blob_256_32_v2, remove_helper_v2, Blob256, Blob32; - // btreemap_remove_blob_256_64, remove_helper_v1, Blob256, Blob64; - // btreemap_remove_blob_256_64_v2, remove_helper_v2, Blob256, Blob64; - // btreemap_remove_blob_256_128, remove_helper_v1, Blob256, Blob128; - // btreemap_remove_blob_256_128_v2, remove_helper_v2, Blob256, Blob128; - // btreemap_remove_blob_256_256, remove_helper_v1, Blob256, Blob256; - // btreemap_remove_blob_256_256_v2, remove_helper_v2, Blob256, Blob256; - // btreemap_remove_blob_256_512, remove_helper_v1, Blob256, Blob512; - // btreemap_remove_blob_256_512_v2, remove_helper_v2, Blob256, Blob512; - - // // 512 x V - // btreemap_remove_blob_512_4, remove_helper_v1, Blob512, Blob4; - // btreemap_remove_blob_512_4_v2, remove_helper_v2, Blob512, Blob4; - // btreemap_remove_blob_512_8, remove_helper_v1, Blob512, Blob8; - // btreemap_remove_blob_512_8_v2, remove_helper_v2, Blob512, Blob8; - // btreemap_remove_blob_512_16, remove_helper_v1, Blob512, Blob16; - // btreemap_remove_blob_512_16_v2, remove_helper_v2, Blob512, Blob16; - // btreemap_remove_blob_512_32, remove_helper_v1, Blob512, Blob32; - // btreemap_remove_blob_512_32_v2, remove_helper_v2, Blob512, Blob32; - // btreemap_remove_blob_512_64, remove_helper_v1, Blob512, Blob64; - // btreemap_remove_blob_512_64_v2, remove_helper_v2, Blob512, Blob64; - // btreemap_remove_blob_512_128, remove_helper_v1, Blob512, Blob128; - // btreemap_remove_blob_512_128_v2, remove_helper_v2, Blob512, Blob128; - // btreemap_remove_blob_512_256, remove_helper_v1, Blob512, Blob256; - // btreemap_remove_blob_512_256_v2, remove_helper_v2, Blob512, Blob256; - // btreemap_remove_blob_512_512, remove_helper_v1, Blob512, Blob512; - // btreemap_remove_blob_512_512_v2, remove_helper_v2, Blob512, Blob512; - - // // 1024 x V - // btreemap_remove_blob_1024_4, remove_helper_v1, Blob1024, Blob4; - // btreemap_remove_blob_1024_4_v2, remove_helper_v2, Blob1024, Blob4; - // btreemap_remove_blob_1024_8, remove_helper_v1, Blob1024, Blob8; - // btreemap_remove_blob_1024_8_v2, remove_helper_v2, Blob1024, Blob8; - // btreemap_remove_blob_1024_16, remove_helper_v1, Blob1024, Blob16; - // btreemap_remove_blob_1024_16_v2, remove_helper_v2, Blob1024, Blob16; - // btreemap_remove_blob_1024_32, remove_helper_v1, Blob1024, Blob32; - // btreemap_remove_blob_1024_32_v2, remove_helper_v2, Blob1024, Blob32; - // btreemap_remove_blob_1024_64, remove_helper_v1, Blob1024, Blob64; - // btreemap_remove_blob_1024_64_v2, remove_helper_v2, Blob1024, Blob64; - // btreemap_remove_blob_1024_128, remove_helper_v1, Blob1024, Blob128; - // btreemap_remove_blob_1024_128_v2, remove_helper_v2, Blob1024, Blob128; - // btreemap_remove_blob_1024_256, remove_helper_v1, Blob1024, Blob256; - // btreemap_remove_blob_1024_256_v2, remove_helper_v2, Blob1024, Blob256; - // btreemap_remove_blob_1024_512, remove_helper_v1, Blob1024, Blob512; - // btreemap_remove_blob_1024_512_v2, remove_helper_v2, Blob1024, Blob512; - - // btreemap_remove_blob_1024_1024, remove_helper_v1, Blob1024, Blob1024; - // btreemap_remove_blob_1024_1024_v2, remove_helper_v2, Blob1024, 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; + // 1024 x V + btreemap_remove_blob_1024_4, remove_helper_v1, Blob1024, Blob4; + btreemap_remove_blob_1024_4_v2, remove_helper_v2, Blob1024, Blob4; + btreemap_remove_blob_1024_8, remove_helper_v1, Blob1024, Blob8; + btreemap_remove_blob_1024_8_v2, remove_helper_v2, Blob1024, Blob8; + btreemap_remove_blob_1024_16, remove_helper_v1, Blob1024, Blob16; + btreemap_remove_blob_1024_16_v2, remove_helper_v2, Blob1024, Blob16; + btreemap_remove_blob_1024_32, remove_helper_v1, Blob1024, Blob32; + btreemap_remove_blob_1024_32_v2, remove_helper_v2, Blob1024, Blob32; + btreemap_remove_blob_1024_64, remove_helper_v1, Blob1024, Blob64; + btreemap_remove_blob_1024_64_v2, remove_helper_v2, Blob1024, Blob64; + btreemap_remove_blob_1024_128, remove_helper_v1, Blob1024, Blob128; + btreemap_remove_blob_1024_128_v2, remove_helper_v2, Blob1024, Blob128; + btreemap_remove_blob_1024_256, remove_helper_v1, Blob1024, Blob256; + btreemap_remove_blob_1024_256_v2, remove_helper_v2, Blob1024, Blob256; + btreemap_remove_blob_1024_512, remove_helper_v1, Blob1024, Blob512; + btreemap_remove_blob_1024_512_v2, remove_helper_v2, Blob1024, Blob512; + + btreemap_remove_blob_1024_1024, remove_helper_v1, Blob1024, Blob1024; + btreemap_remove_blob_1024_1024_v2, remove_helper_v2, Blob1024, 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. @@ -436,151 +148,7 @@ bench_tests! { 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; - - // 4 x V - btreemap_get_blob_4_4, get_helper_v1, Blob4, Blob4; - btreemap_get_blob_4_4_v2, get_helper_v2, Blob4, Blob4; - btreemap_get_blob_4_8, get_helper_v1, Blob4, Blob8; - btreemap_get_blob_4_8_v2, get_helper_v2, Blob4, Blob8; - btreemap_get_blob_4_16, get_helper_v1, Blob4, Blob16; - btreemap_get_blob_4_16_v2, get_helper_v2, Blob4, Blob16; - btreemap_get_blob_4_32, get_helper_v1, Blob4, Blob32; - btreemap_get_blob_4_32_v2, get_helper_v2, Blob4, Blob32; - btreemap_get_blob_4_64, get_helper_v1, Blob4, Blob64; - btreemap_get_blob_4_64_v2, get_helper_v2, Blob4, Blob64; - btreemap_get_blob_4_128, get_helper_v1, Blob4, Blob128; - btreemap_get_blob_4_128_v2, get_helper_v2, Blob4, Blob128; - btreemap_get_blob_4_256, get_helper_v1, Blob4, Blob256; - btreemap_get_blob_4_256_v2, get_helper_v2, Blob4, Blob256; - btreemap_get_blob_4_512, get_helper_v1, Blob4, Blob512; - btreemap_get_blob_4_512_v2, get_helper_v2, Blob4, Blob512; - - // 8 x V - btreemap_get_blob_8_4, get_helper_v1, Blob8, Blob4; - btreemap_get_blob_8_4_v2, get_helper_v2, Blob8, Blob4; - btreemap_get_blob_8_8, get_helper_v1, Blob8, Blob8; - btreemap_get_blob_8_8_v2, get_helper_v2, Blob8, Blob8; - btreemap_get_blob_8_16, get_helper_v1, Blob8, Blob16; - btreemap_get_blob_8_16_v2, get_helper_v2, Blob8, Blob16; - btreemap_get_blob_8_32, get_helper_v1, Blob8, Blob32; - btreemap_get_blob_8_32_v2, get_helper_v2, Blob8, Blob32; - btreemap_get_blob_8_64, get_helper_v1, Blob8, Blob64; - btreemap_get_blob_8_64_v2, get_helper_v2, Blob8, Blob64; - btreemap_get_blob_8_128, get_helper_v1, Blob8, Blob128; - btreemap_get_blob_8_128_v2, get_helper_v2, Blob8, Blob128; - btreemap_get_blob_8_256, get_helper_v1, Blob8, Blob256; - btreemap_get_blob_8_256_v2, get_helper_v2, Blob8, Blob256; - btreemap_get_blob_8_512, get_helper_v1, Blob8, Blob512; - btreemap_get_blob_8_512_v2, get_helper_v2, Blob8, Blob512; - - // 16 x V - btreemap_get_blob_16_4, get_helper_v1, Blob16, Blob4; - btreemap_get_blob_16_4_v2, get_helper_v2, Blob16, Blob4; - btreemap_get_blob_16_8, get_helper_v1, Blob16, Blob8; - btreemap_get_blob_16_8_v2, get_helper_v2, Blob16, Blob8; - btreemap_get_blob_16_16, get_helper_v1, Blob16, Blob16; - btreemap_get_blob_16_16_v2, get_helper_v2, Blob16, Blob16; - btreemap_get_blob_16_32, get_helper_v1, Blob16, Blob32; - btreemap_get_blob_16_32_v2, get_helper_v2, Blob16, Blob32; - btreemap_get_blob_16_64, get_helper_v1, Blob16, Blob64; - btreemap_get_blob_16_64_v2, get_helper_v2, Blob16, Blob64; - btreemap_get_blob_16_128, get_helper_v1, Blob16, Blob128; - btreemap_get_blob_16_128_v2, get_helper_v2, Blob16, Blob128; - btreemap_get_blob_16_256, get_helper_v1, Blob16, Blob256; - btreemap_get_blob_16_256_v2, get_helper_v2, Blob16, Blob256; - btreemap_get_blob_16_512, get_helper_v1, Blob16, Blob512; - btreemap_get_blob_16_512_v2, get_helper_v2, Blob16, Blob512; - - // 32 x V - btreemap_get_blob_32_4, get_helper_v1, Blob32, Blob4; - btreemap_get_blob_32_4_v2, get_helper_v2, Blob32, Blob4; - btreemap_get_blob_32_8, get_helper_v1, Blob32, Blob8; - btreemap_get_blob_32_8_v2, get_helper_v2, Blob32, Blob8; - btreemap_get_blob_32_16, get_helper_v1, Blob32, Blob16; - btreemap_get_blob_32_16_v2, get_helper_v2, Blob32, Blob16; - btreemap_get_blob_32_32, get_helper_v1, Blob32, Blob32; - btreemap_get_blob_32_32_v2, get_helper_v2, Blob32, Blob32; - btreemap_get_blob_32_64, get_helper_v1, Blob32, Blob64; - btreemap_get_blob_32_64_v2, get_helper_v2, Blob32, Blob64; - btreemap_get_blob_32_128, get_helper_v1, Blob32, Blob128; - btreemap_get_blob_32_128_v2, get_helper_v2, Blob32, Blob128; - btreemap_get_blob_32_256, get_helper_v1, Blob32, Blob256; - btreemap_get_blob_32_256_v2, get_helper_v2, Blob32, Blob256; - btreemap_get_blob_32_512, get_helper_v1, Blob32, Blob512; - btreemap_get_blob_32_512_v2, get_helper_v2, Blob32, Blob512; - - // 64 x V - btreemap_get_blob_64_4, get_helper_v1, Blob64, Blob4; - btreemap_get_blob_64_4_v2, get_helper_v2, Blob64, Blob4; - btreemap_get_blob_64_8, get_helper_v1, Blob64, Blob8; - btreemap_get_blob_64_8_v2, get_helper_v2, Blob64, Blob8; - btreemap_get_blob_64_16, get_helper_v1, Blob64, Blob16; - btreemap_get_blob_64_16_v2, get_helper_v2, Blob64, Blob16; - btreemap_get_blob_64_32, get_helper_v1, Blob64, Blob32; - btreemap_get_blob_64_32_v2, get_helper_v2, Blob64, Blob32; - btreemap_get_blob_64_64, get_helper_v1, Blob64, Blob64; - btreemap_get_blob_64_64_v2, get_helper_v2, Blob64, Blob64; - btreemap_get_blob_64_128, get_helper_v1, Blob64, Blob128; - btreemap_get_blob_64_128_v2, get_helper_v2, Blob64, Blob128; - btreemap_get_blob_64_256, get_helper_v1, Blob64, Blob256; - btreemap_get_blob_64_256_v2, get_helper_v2, Blob64, Blob256; - btreemap_get_blob_64_512, get_helper_v1, Blob64, Blob512; - btreemap_get_blob_64_512_v2, get_helper_v2, Blob64, Blob512; - - // 128 x V - btreemap_get_blob_128_4, get_helper_v1, Blob128, Blob4; - btreemap_get_blob_128_4_v2, get_helper_v2, Blob128, Blob4; - btreemap_get_blob_128_8, get_helper_v1, Blob128, Blob8; - btreemap_get_blob_128_8_v2, get_helper_v2, Blob128, Blob8; - btreemap_get_blob_128_16, get_helper_v1, Blob128, Blob16; - btreemap_get_blob_128_16_v2, get_helper_v2, Blob128, Blob16; - btreemap_get_blob_128_32, get_helper_v1, Blob128, Blob32; - btreemap_get_blob_128_32_v2, get_helper_v2, Blob128, Blob32; - btreemap_get_blob_128_64, get_helper_v1, Blob128, Blob64; - btreemap_get_blob_128_64_v2, get_helper_v2, Blob128, Blob64; - btreemap_get_blob_128_128, get_helper_v1, Blob128, Blob128; - btreemap_get_blob_128_128_v2, get_helper_v2, Blob128, Blob128; - btreemap_get_blob_128_256, get_helper_v1, Blob128, Blob256; - btreemap_get_blob_128_256_v2, get_helper_v2, Blob128, Blob256; - btreemap_get_blob_128_512, get_helper_v1, Blob128, Blob512; - btreemap_get_blob_128_512_v2, get_helper_v2, Blob128, Blob512; - - // 256 x V - btreemap_get_blob_256_4, get_helper_v1, Blob256, Blob4; - btreemap_get_blob_256_4_v2, get_helper_v2, Blob256, Blob4; - btreemap_get_blob_256_8, get_helper_v1, Blob256, Blob8; - btreemap_get_blob_256_8_v2, get_helper_v2, Blob256, Blob8; - btreemap_get_blob_256_16, get_helper_v1, Blob256, Blob16; - btreemap_get_blob_256_16_v2, get_helper_v2, Blob256, Blob16; - btreemap_get_blob_256_32, get_helper_v1, Blob256, Blob32; - btreemap_get_blob_256_32_v2, get_helper_v2, Blob256, Blob32; - btreemap_get_blob_256_64, get_helper_v1, Blob256, Blob64; - btreemap_get_blob_256_64_v2, get_helper_v2, Blob256, Blob64; - btreemap_get_blob_256_128, get_helper_v1, Blob256, Blob128; - btreemap_get_blob_256_128_v2, get_helper_v2, Blob256, Blob128; - btreemap_get_blob_256_256, get_helper_v1, Blob256, Blob256; - btreemap_get_blob_256_256_v2, get_helper_v2, Blob256, Blob256; - btreemap_get_blob_256_512, get_helper_v1, Blob256, Blob512; - btreemap_get_blob_256_512_v2, get_helper_v2, Blob256, Blob512; - - // 512 x V - btreemap_get_blob_512_4, get_helper_v1, Blob512, Blob4; - btreemap_get_blob_512_4_v2, get_helper_v2, Blob512, Blob4; - btreemap_get_blob_512_8, get_helper_v1, Blob512, Blob8; - btreemap_get_blob_512_8_v2, get_helper_v2, Blob512, Blob8; - btreemap_get_blob_512_16, get_helper_v1, Blob512, Blob16; - btreemap_get_blob_512_16_v2, get_helper_v2, Blob512, Blob16; - btreemap_get_blob_512_32, get_helper_v1, Blob512, Blob32; - btreemap_get_blob_512_32_v2, get_helper_v2, Blob512, Blob32; - btreemap_get_blob_512_64, get_helper_v1, Blob512, Blob64; - btreemap_get_blob_512_64_v2, get_helper_v2, Blob512, Blob64; - btreemap_get_blob_512_128, get_helper_v1, Blob512, Blob128; - btreemap_get_blob_512_128_v2, get_helper_v2, Blob512, Blob128; - btreemap_get_blob_512_256, get_helper_v1, Blob512, Blob256; - btreemap_get_blob_512_256_v2, get_helper_v2, Blob512, Blob256; - btreemap_get_blob_512_512, get_helper_v1, Blob512, Blob512; - btreemap_get_blob_512_512_v2, get_helper_v2, Blob512, Blob512; + btreemap_get_blob_512_1024_v2_mem_manager, get_helper_v2_mem_manager, Blob512, Blob1024; // 1024 x V btreemap_get_blob_1024_4, get_helper_v1, Blob1024, Blob4; @@ -603,14 +171,14 @@ bench_tests! { btreemap_get_blob_1024_1024, get_helper_v1, Blob1024, Blob1024; btreemap_get_blob_1024_1024_v2, get_helper_v2, Blob1024, 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_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; + 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. From d7c8439fb1fed6121f6393e34104c3e6874dec33 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 08:39:33 +0200 Subject: [PATCH 03/68] . --- benchmarks/src/btreemap.rs | 45 -------------------------------------- 1 file changed, 45 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index cfe85c10..a186d3ee 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -66,9 +66,6 @@ bench_tests! { 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_blob_1024_1024, insert_helper_v1, Blob1024, Blob1024; - btreemap_insert_blob_1024_1024_v2, insert_helper_v2, Blob1024, Blob1024; - 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; @@ -99,27 +96,6 @@ bench_tests! { btreemap_remove_blob_512_1024, remove_helper_v1, Blob512, Blob1024; btreemap_remove_blob_512_1024_v2, remove_helper_v2, Blob512, Blob1024; - // 1024 x V - btreemap_remove_blob_1024_4, remove_helper_v1, Blob1024, Blob4; - btreemap_remove_blob_1024_4_v2, remove_helper_v2, Blob1024, Blob4; - btreemap_remove_blob_1024_8, remove_helper_v1, Blob1024, Blob8; - btreemap_remove_blob_1024_8_v2, remove_helper_v2, Blob1024, Blob8; - btreemap_remove_blob_1024_16, remove_helper_v1, Blob1024, Blob16; - btreemap_remove_blob_1024_16_v2, remove_helper_v2, Blob1024, Blob16; - btreemap_remove_blob_1024_32, remove_helper_v1, Blob1024, Blob32; - btreemap_remove_blob_1024_32_v2, remove_helper_v2, Blob1024, Blob32; - btreemap_remove_blob_1024_64, remove_helper_v1, Blob1024, Blob64; - btreemap_remove_blob_1024_64_v2, remove_helper_v2, Blob1024, Blob64; - btreemap_remove_blob_1024_128, remove_helper_v1, Blob1024, Blob128; - btreemap_remove_blob_1024_128_v2, remove_helper_v2, Blob1024, Blob128; - btreemap_remove_blob_1024_256, remove_helper_v1, Blob1024, Blob256; - btreemap_remove_blob_1024_256_v2, remove_helper_v2, Blob1024, Blob256; - btreemap_remove_blob_1024_512, remove_helper_v1, Blob1024, Blob512; - btreemap_remove_blob_1024_512_v2, remove_helper_v2, Blob1024, Blob512; - - btreemap_remove_blob_1024_1024, remove_helper_v1, Blob1024, Blob1024; - btreemap_remove_blob_1024_1024_v2, remove_helper_v2, Blob1024, Blob1024; - btreemap_remove_u64_u64, remove_helper_v1, u64, u64; btreemap_remove_u64_u64_v2, remove_helper_v2, u64, u64; @@ -150,27 +126,6 @@ bench_tests! { 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; - // 1024 x V - btreemap_get_blob_1024_4, get_helper_v1, Blob1024, Blob4; - btreemap_get_blob_1024_4_v2, get_helper_v2, Blob1024, Blob4; - btreemap_get_blob_1024_8, get_helper_v1, Blob1024, Blob8; - btreemap_get_blob_1024_8_v2, get_helper_v2, Blob1024, Blob8; - btreemap_get_blob_1024_16, get_helper_v1, Blob1024, Blob16; - btreemap_get_blob_1024_16_v2, get_helper_v2, Blob1024, Blob16; - btreemap_get_blob_1024_32, get_helper_v1, Blob1024, Blob32; - btreemap_get_blob_1024_32_v2, get_helper_v2, Blob1024, Blob32; - btreemap_get_blob_1024_64, get_helper_v1, Blob1024, Blob64; - btreemap_get_blob_1024_64_v2, get_helper_v2, Blob1024, Blob64; - btreemap_get_blob_1024_128, get_helper_v1, Blob1024, Blob128; - btreemap_get_blob_1024_128_v2, get_helper_v2, Blob1024, Blob128; - btreemap_get_blob_1024_256, get_helper_v1, Blob1024, Blob256; - btreemap_get_blob_1024_256_v2, get_helper_v2, Blob1024, Blob256; - btreemap_get_blob_1024_512, get_helper_v1, Blob1024, Blob512; - btreemap_get_blob_1024_512_v2, get_helper_v2, Blob1024, Blob512; - - btreemap_get_blob_1024_1024, get_helper_v1, Blob1024, Blob1024; - btreemap_get_blob_1024_1024_v2, get_helper_v2, Blob1024, 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; From 70a4e859e084a0d87e52ba531109fd4512f53de5 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 08:48:02 +0200 Subject: [PATCH 04/68] traversal_helper --- benchmarks/src/btreemap.rs | 44 +++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index a186d3ee..c66afe1e 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -201,62 +201,62 @@ pub fn btreemap_read_every_third_value_from_range() -> BenchResult { #[bench(raw)] pub fn btreemap_iter_small_values() -> BenchResult { - iter_helper(10_000, 0, IterType::Iter) + traversal_helper(10_000, 0, TraversalMode::Iter) } #[bench(raw)] pub fn btreemap_iter_rev_small_values() -> BenchResult { - iter_helper(10_000, 0, IterType::IterRev) + traversal_helper(10_000, 0, TraversalMode::IterRev) } #[bench(raw)] pub fn btreemap_iter_10mib_values() -> BenchResult { - iter_helper(200, 10 * 1024, IterType::Iter) + traversal_helper(200, 10 * 1024, TraversalMode::Iter) } #[bench(raw)] pub fn btreemap_iter_rev_10mib_values() -> BenchResult { - iter_helper(200, 10 * 1024, IterType::IterRev) + traversal_helper(200, 10 * 1024, TraversalMode::IterRev) } #[bench(raw)] pub fn btreemap_keys_small_values() -> BenchResult { - iter_helper(10_000, 0, IterType::Keys) + traversal_helper(10_000, 0, TraversalMode::Keys) } #[bench(raw)] pub fn btreemap_keys_rev_small_values() -> BenchResult { - iter_helper(10_000, 0, IterType::KeysRev) + traversal_helper(10_000, 0, TraversalMode::KeysRev) } #[bench(raw)] pub fn btreemap_keys_10mib_values() -> BenchResult { - iter_helper(200, 10 * 1024, IterType::Keys) + traversal_helper(200, 10 * 1024, TraversalMode::Keys) } #[bench(raw)] pub fn btreemap_keys_rev_10mib_values() -> BenchResult { - iter_helper(200, 10 * 1024, IterType::KeysRev) + traversal_helper(200, 10 * 1024, TraversalMode::KeysRev) } #[bench(raw)] pub fn btreemap_values_small_values() -> BenchResult { - iter_helper(10_000, 0, IterType::Values) + traversal_helper(10_000, 0, TraversalMode::Values) } #[bench(raw)] pub fn btreemap_values_rev_small_values() -> BenchResult { - iter_helper(10_000, 0, IterType::ValuesRev) + traversal_helper(10_000, 0, TraversalMode::ValuesRev) } #[bench(raw)] pub fn btreemap_values_10mib_values() -> BenchResult { - iter_helper(200, 10 * 1024, IterType::Values) + traversal_helper(200, 10 * 1024, TraversalMode::Values) } #[bench(raw)] pub fn btreemap_values_rev_10mib_values() -> BenchResult { - iter_helper(200, 10 * 1024, IterType::ValuesRev) + traversal_helper(200, 10 * 1024, TraversalMode::ValuesRev) } #[bench(raw)] @@ -332,20 +332,20 @@ fn insert_helper( }) } -// Profiles iterating over a btreemap. -fn iter_helper(size: u32, value_size: u32, iter_type: IterType) -> BenchResult { +/// Benchmarks BTreeMap traversal for the given traversal mode. +fn traversal_helper(size: u32, value_size: u32, traversal_mode: TraversalMode) -> BenchResult { let mut btree = BTreeMap::new(DefaultMemoryImpl::default()); for i in 0..size { btree.insert(i, vec![0u8; value_size as usize]); } - 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() {}), + 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() {}), } } @@ -469,7 +469,7 @@ fn remove_helper( }) } -enum IterType { +enum TraversalMode { Iter, IterRev, Keys, From bdcf46b5768997c6055a18bfbe7a9b92f5375dad Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 08:49:33 +0200 Subject: [PATCH 05/68] btreemap_traverse --- benchmarks/src/btreemap.rs | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index c66afe1e..a85b39a8 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -200,62 +200,62 @@ pub fn btreemap_read_every_third_value_from_range() -> BenchResult { } #[bench(raw)] -pub fn btreemap_iter_small_values() -> BenchResult { +pub fn btreemap_traverse_iter_small_values() -> BenchResult { traversal_helper(10_000, 0, TraversalMode::Iter) } #[bench(raw)] -pub fn btreemap_iter_rev_small_values() -> BenchResult { +pub fn btreemap_traverse_iter_rev_small_values() -> BenchResult { traversal_helper(10_000, 0, TraversalMode::IterRev) } #[bench(raw)] -pub fn btreemap_iter_10mib_values() -> BenchResult { +pub fn btreemap_traverse_iter_10mib_values() -> BenchResult { traversal_helper(200, 10 * 1024, TraversalMode::Iter) } #[bench(raw)] -pub fn btreemap_iter_rev_10mib_values() -> BenchResult { +pub fn btreemap_traverse_iter_rev_10mib_values() -> BenchResult { traversal_helper(200, 10 * 1024, TraversalMode::IterRev) } #[bench(raw)] -pub fn btreemap_keys_small_values() -> BenchResult { +pub fn btreemap_traverse_keys_small_values() -> BenchResult { traversal_helper(10_000, 0, TraversalMode::Keys) } #[bench(raw)] -pub fn btreemap_keys_rev_small_values() -> BenchResult { +pub fn btreemap_traverse_keys_rev_small_values() -> BenchResult { traversal_helper(10_000, 0, TraversalMode::KeysRev) } #[bench(raw)] -pub fn btreemap_keys_10mib_values() -> BenchResult { +pub fn btreemap_traverse_keys_10mib_values() -> BenchResult { traversal_helper(200, 10 * 1024, TraversalMode::Keys) } #[bench(raw)] -pub fn btreemap_keys_rev_10mib_values() -> BenchResult { +pub fn btreemap_traverse_keys_rev_10mib_values() -> BenchResult { traversal_helper(200, 10 * 1024, TraversalMode::KeysRev) } #[bench(raw)] -pub fn btreemap_values_small_values() -> BenchResult { +pub fn btreemap_traverse_values_small_values() -> BenchResult { traversal_helper(10_000, 0, TraversalMode::Values) } #[bench(raw)] -pub fn btreemap_values_rev_small_values() -> BenchResult { +pub fn btreemap_traverse_values_rev_small_values() -> BenchResult { traversal_helper(10_000, 0, TraversalMode::ValuesRev) } #[bench(raw)] -pub fn btreemap_values_10mib_values() -> BenchResult { +pub fn btreemap_traverse_values_10mib_values() -> BenchResult { traversal_helper(200, 10 * 1024, TraversalMode::Values) } #[bench(raw)] -pub fn btreemap_values_rev_10mib_values() -> BenchResult { +pub fn btreemap_traverse_values_rev_10mib_values() -> BenchResult { traversal_helper(200, 10 * 1024, TraversalMode::ValuesRev) } From 63e839f4a063cf7c63efa0c100f214093d43d768 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 08:53:25 +0200 Subject: [PATCH 06/68] TestKey / TestValue --- benchmarks/src/btreemap.rs | 42 ++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index a85b39a8..311d11a8 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -17,6 +17,12 @@ macro_rules! bench_tests { }; } +trait TestKey: Clone + Ord + Storable + Random {} +impl TestKey for T where T: Clone + Ord + Storable + Random {} + +trait TestValue: Storable + Random {} +impl TestValue for T where T: Storable + Random {} + type Blob4 = Blob<4>; type Blob8 = Blob<8>; type Blob16 = Blob<16>; @@ -293,27 +299,24 @@ pub fn btreemap_iter_count_10mib_values() -> BenchResult { } // Profiles inserting a large number of random blobs into a btreemap. -fn insert_helper_v1() -> BenchResult { +fn insert_helper_v1() -> BenchResult { let btree = BTreeMap::new_v1(DefaultMemoryImpl::default()); insert_helper::(btree) } -fn insert_helper_v2() -> BenchResult { +fn insert_helper_v2() -> BenchResult { let btree = BTreeMap::new(DefaultMemoryImpl::default()); insert_helper::(btree) } -fn insert_helper_v2_mem_manager( -) -> BenchResult { +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) } // Profiles inserting a large number of random blobs into a btreemap. -fn insert_helper( - mut btree: BTreeMap, -) -> BenchResult { +fn insert_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); @@ -350,26 +353,23 @@ fn traversal_helper(size: u32, value_size: u32, traversal_mode: TraversalMode) - } // Profiles getting a large number of random blobs from a btreemap. -fn get_helper_v1() -> BenchResult { +fn get_helper_v1() -> BenchResult { let btree = BTreeMap::new_v1(DefaultMemoryImpl::default()); get_helper::(btree) } -fn get_helper_v2() -> BenchResult { +fn get_helper_v2() -> BenchResult { let btree = BTreeMap::new(DefaultMemoryImpl::default()); get_helper::(btree) } -fn get_helper_v2_mem_manager( -) -> BenchResult { +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) } -fn get_helper( - mut btree: BTreeMap, -) -> BenchResult { +fn get_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); @@ -394,19 +394,17 @@ fn get_helper( } // Profiles `contains_key` on a large number of random blobs from a btreemap. -fn contains_key_helper_v1() -> BenchResult -{ +fn contains_key_helper_v1() -> BenchResult { let btree = BTreeMap::new_v1(DefaultMemoryImpl::default()); contains_key_helper::(btree) } -fn contains_key_helper_v2() -> BenchResult -{ +fn contains_key_helper_v2() -> BenchResult { let btree = BTreeMap::new(DefaultMemoryImpl::default()); contains_key_helper::(btree) } -fn contains_key_helper( +fn contains_key_helper( mut btree: BTreeMap, ) -> BenchResult { let num_keys = 10_000; @@ -433,17 +431,17 @@ fn contains_key_helper } // Inserts a large number of random blobs into a btreemap, then profiles removing them. -fn remove_helper_v1() -> BenchResult { +fn remove_helper_v1() -> BenchResult { let btree = BTreeMap::new_v1(DefaultMemoryImpl::default()); remove_helper::(btree) } -fn remove_helper_v2() -> BenchResult { +fn remove_helper_v2() -> BenchResult { let btree = BTreeMap::new(DefaultMemoryImpl::default()); remove_helper::(btree) } -fn remove_helper( +fn remove_helper( mut btree: BTreeMap, ) -> BenchResult { let num_keys = 10_000; From fa320ad9002c0127ba11c714df68c28cd8cc6ddb Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 10:45:10 +0200 Subject: [PATCH 07/68] insert, remove, get, contains_key --- benchmarks/src/btreemap.rs | 883 ++++++++++++++++++++++--------------- benchmarks/src/main.rs | 13 +- src/storable.rs | 67 +++ 3 files changed, 601 insertions(+), 362 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index 311d11a8..8054b4ce 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -1,10 +1,39 @@ 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}; +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>; + +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>; + +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,285 +46,86 @@ macro_rules! bench_tests { }; } -trait TestKey: Clone + Ord + Storable + Random {} -impl TestKey for T where T: Clone + Ord + Storable + Random {} - -trait TestValue: Storable + Random {} -impl TestValue for T where T: Storable + Random {} - -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. +// Benchmarks inserting data into a BTreeMap. bench_tests! { - // K x 1024 - btreemap_insert_blob_4_1024, insert_helper_v1, Blob4, Blob1024; + // V1 blob K x 1024 + btreemap_insert_blob_4_1024_v1, insert_helper_v1, Blob4, Blob1024; + btreemap_insert_blob_8_1024_v1, insert_helper_v1, Blob8, Blob1024; + btreemap_insert_blob_16_1024_v1, insert_helper_v1, Blob16, Blob1024; + btreemap_insert_blob_32_1024_v1, insert_helper_v1, Blob32, Blob1024; + btreemap_insert_blob_64_1024_v1, insert_helper_v1, Blob64, Blob1024; + btreemap_insert_blob_128_1024_v1, insert_helper_v1, Blob128, Blob1024; + btreemap_insert_blob_256_1024_v1, insert_helper_v1, Blob256, Blob1024; + btreemap_insert_blob_512_1024_v1, insert_helper_v1, Blob512, Blob1024; + + // V1 blob 1024 x V + btreemap_insert_blob_1024_4_v1, insert_helper_v1, Blob1024, Blob4; + btreemap_insert_blob_1024_8_v1, insert_helper_v1, Blob1024, Blob8; + btreemap_insert_blob_1024_16_v1, insert_helper_v1, Blob1024, Blob16; + btreemap_insert_blob_1024_32_v1, insert_helper_v1, Blob1024, Blob32; + btreemap_insert_blob_1024_64_v1, insert_helper_v1, Blob1024, Blob64; + btreemap_insert_blob_1024_128_v1, insert_helper_v1, Blob1024, Blob128; + btreemap_insert_blob_1024_256_v1, insert_helper_v1, Blob1024, Blob256; + btreemap_insert_blob_1024_512_v1, insert_helper_v1, Blob1024, Blob512; + + // V2 blob K x 1024 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; + // V2 blob 1024 x V 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. -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; -} - -#[bench(raw)] -pub fn btreemap_insert_10mib_values() -> BenchResult { - let mut btree = BTreeMap::new(DefaultMemoryImpl::default()); - - // Insert 20 10MiB values. - 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::>(), - ); - } - - bench_fn(|| { - for (i, value) in values.into_iter().enumerate() { - btree.insert(i as u32, value); - } - }) -} - -// Read a range of entries but only process the key of each entry. -#[bench(raw)] -pub fn btreemap_read_keys_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]); - } - - 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]); - } - - bench_fn(|| { - btree - .range((Bound::Included(0), Bound::Included(size))) - .filter(|entry| entry.0 % 3 == 0) - .map(|entry| entry.1.len()) - .sum::() - }) -} - -#[bench(raw)] -pub fn btreemap_traverse_iter_small_values() -> BenchResult { - traversal_helper(10_000, 0, TraversalMode::Iter) -} - -#[bench(raw)] -pub fn btreemap_traverse_iter_rev_small_values() -> BenchResult { - traversal_helper(10_000, 0, TraversalMode::IterRev) -} - -#[bench(raw)] -pub fn btreemap_traverse_iter_10mib_values() -> BenchResult { - traversal_helper(200, 10 * 1024, TraversalMode::Iter) -} - -#[bench(raw)] -pub fn btreemap_traverse_iter_rev_10mib_values() -> BenchResult { - traversal_helper(200, 10 * 1024, TraversalMode::IterRev) -} - -#[bench(raw)] -pub fn btreemap_traverse_keys_small_values() -> BenchResult { - traversal_helper(10_000, 0, TraversalMode::Keys) -} - -#[bench(raw)] -pub fn btreemap_traverse_keys_rev_small_values() -> BenchResult { - traversal_helper(10_000, 0, TraversalMode::KeysRev) -} - -#[bench(raw)] -pub fn btreemap_traverse_keys_10mib_values() -> BenchResult { - traversal_helper(200, 10 * 1024, TraversalMode::Keys) -} - -#[bench(raw)] -pub fn btreemap_traverse_keys_rev_10mib_values() -> BenchResult { - traversal_helper(200, 10 * 1024, TraversalMode::KeysRev) -} - -#[bench(raw)] -pub fn btreemap_traverse_values_small_values() -> BenchResult { - traversal_helper(10_000, 0, TraversalMode::Values) -} - -#[bench(raw)] -pub fn btreemap_traverse_values_rev_small_values() -> BenchResult { - traversal_helper(10_000, 0, TraversalMode::ValuesRev) -} -#[bench(raw)] -pub fn btreemap_traverse_values_10mib_values() -> BenchResult { - traversal_helper(200, 10 * 1024, TraversalMode::Values) -} - -#[bench(raw)] -pub fn btreemap_traverse_values_rev_10mib_values() -> BenchResult { - traversal_helper(200, 10 * 1024, TraversalMode::ValuesRev) -} - -#[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![]); - } - - bench_fn(|| { - btree - .range((Bound::Included(0), Bound::Included(size))) - .count(); - }) -} - -#[bench(raw)] -pub fn btreemap_iter_count_10mib_values() -> BenchResult { - 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]); - } - - bench_fn(|| { - btree - .range((Bound::Included(0), Bound::Included(size))) - .count(); - }) + // V2 vec K x 1024 + btreemap_insert_vec_4_1024_v2, insert_helper_v2, FixedVec4, FixedVec1024; + btreemap_insert_vec_8_1024_v2, insert_helper_v2, FixedVec8, FixedVec1024; + btreemap_insert_vec_16_1024_v2, insert_helper_v2, FixedVec16, FixedVec1024; + btreemap_insert_vec_32_1024_v2, insert_helper_v2, FixedVec32, FixedVec1024; + btreemap_insert_vec_64_1024_v2, insert_helper_v2, FixedVec64, FixedVec1024; + btreemap_insert_vec_128_1024_v2, insert_helper_v2, FixedVec128, FixedVec1024; + btreemap_insert_vec_256_1024_v2, insert_helper_v2, FixedVec256, FixedVec1024; + btreemap_insert_vec_512_1024_v2, insert_helper_v2, FixedVec512, FixedVec1024; + + // V2 vec 1024 x V + btreemap_insert_vec_1024_4_v2, insert_helper_v2, FixedVec1024, FixedVec4; + btreemap_insert_vec_1024_8_v2, insert_helper_v2, FixedVec1024, FixedVec8; + btreemap_insert_vec_1024_16_v2, insert_helper_v2, FixedVec1024, FixedVec16; + btreemap_insert_vec_1024_32_v2, insert_helper_v2, FixedVec1024, FixedVec32; + btreemap_insert_vec_1024_64_v2, insert_helper_v2, FixedVec1024, FixedVec64; + btreemap_insert_vec_1024_128_v2, insert_helper_v2, FixedVec1024, FixedVec128; + btreemap_insert_vec_1024_256_v2, insert_helper_v2, FixedVec1024, FixedVec256; + btreemap_insert_vec_1024_512_v2, insert_helper_v2, FixedVec1024, FixedVec512; + + // 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; } // Profiles inserting a large number of random blobs into a btreemap. @@ -317,39 +147,191 @@ fn insert_helper_v2_mem_manager() -> BenchResult { // Profiles inserting a large number of random blobs into a btreemap. fn insert_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); bench_fn(|| { - // Insert the keys into the btree. - for (k, v) in random_keys.into_iter().zip(random_values.into_iter()) { + // Insert the items into the btree. + for (k, v) in items { btree.insert(k, v); } }) } -/// Benchmarks BTreeMap traversal for the given traversal mode. -fn traversal_helper(size: u32, value_size: u32, traversal_mode: TraversalMode) -> BenchResult { - let mut btree = BTreeMap::new(DefaultMemoryImpl::default()); - for i in 0..size { - btree.insert(i, vec![0u8; value_size as usize]); - } +// Benchmarks removing keys from a BTreeMap. +bench_tests! { + // V1 blob K x 1024 + btreemap_remove_blob_4_1024_v1, remove_helper_v1, Blob4, Blob1024; + btreemap_remove_blob_8_1024_v1, remove_helper_v1, Blob8, Blob1024; + btreemap_remove_blob_16_1024_v1, remove_helper_v1, Blob16, Blob1024; + btreemap_remove_blob_32_1024_v1, remove_helper_v1, Blob32, Blob1024; + btreemap_remove_blob_64_1024_v1, remove_helper_v1, Blob64, Blob1024; + btreemap_remove_blob_128_1024_v1, remove_helper_v1, Blob128, Blob1024; + btreemap_remove_blob_256_1024_v1, remove_helper_v1, Blob256, Blob1024; + btreemap_remove_blob_512_1024_v1, remove_helper_v1, Blob512, Blob1024; + + // V1 blob 1024 x V + btreemap_remove_blob_1024_4_v1, remove_helper_v1, Blob1024, Blob4; + btreemap_remove_blob_1024_8_v1, remove_helper_v1, Blob1024, Blob8; + btreemap_remove_blob_1024_16_v1, remove_helper_v1, Blob1024, Blob16; + btreemap_remove_blob_1024_32_v1, remove_helper_v1, Blob1024, Blob32; + btreemap_remove_blob_1024_64_v1, remove_helper_v1, Blob1024, Blob64; + btreemap_remove_blob_1024_128_v1, remove_helper_v1, Blob1024, Blob128; + btreemap_remove_blob_1024_256_v1, remove_helper_v1, Blob1024, Blob256; + btreemap_remove_blob_1024_512_v1, remove_helper_v1, Blob1024, Blob512; + + // V2 blob K x 1024 + btreemap_remove_blob_4_1024_v2, remove_helper_v2, Blob4, Blob1024; + btreemap_remove_blob_8_1024_v2, remove_helper_v2, Blob8, Blob1024; + btreemap_remove_blob_16_1024_v2, remove_helper_v2, Blob16, Blob1024; + btreemap_remove_blob_32_1024_v2, remove_helper_v2, Blob32, Blob1024; + btreemap_remove_blob_64_1024_v2, remove_helper_v2, Blob64, Blob1024; + btreemap_remove_blob_128_1024_v2, remove_helper_v2, Blob128, Blob1024; + btreemap_remove_blob_256_1024_v2, remove_helper_v2, Blob256, Blob1024; + btreemap_remove_blob_512_1024_v2, remove_helper_v2, Blob512, Blob1024; + + // V2 blob 1024 x V + btreemap_remove_blob_1024_4_v2, remove_helper_v2, Blob1024, Blob4; + btreemap_remove_blob_1024_8_v2, remove_helper_v2, Blob1024, Blob8; + btreemap_remove_blob_1024_16_v2, remove_helper_v2, Blob1024, Blob16; + btreemap_remove_blob_1024_32_v2, remove_helper_v2, Blob1024, Blob32; + btreemap_remove_blob_1024_64_v2, remove_helper_v2, Blob1024, Blob64; + btreemap_remove_blob_1024_128_v2, remove_helper_v2, Blob1024, Blob128; + btreemap_remove_blob_1024_256_v2, remove_helper_v2, Blob1024, Blob256; + btreemap_remove_blob_1024_512_v2, remove_helper_v2, Blob1024, Blob512; + + // V2 vec K x 1024 + btreemap_remove_vec_4_1024_v2, remove_helper_v2, FixedVec4, FixedVec1024; + btreemap_remove_vec_8_1024_v2, remove_helper_v2, FixedVec8, FixedVec1024; + btreemap_remove_vec_16_1024_v2, remove_helper_v2, FixedVec16, FixedVec1024; + btreemap_remove_vec_32_1024_v2, remove_helper_v2, FixedVec32, FixedVec1024; + btreemap_remove_vec_64_1024_v2, remove_helper_v2, FixedVec64, FixedVec1024; + btreemap_remove_vec_128_1024_v2, remove_helper_v2, FixedVec128, FixedVec1024; + btreemap_remove_vec_256_1024_v2, remove_helper_v2, FixedVec256, FixedVec1024; + btreemap_remove_vec_512_1024_v2, remove_helper_v2, FixedVec512, FixedVec1024; + + // V2 vec 1024 x V + btreemap_remove_vec_1024_4_v2, remove_helper_v2, FixedVec1024, FixedVec4; + btreemap_remove_vec_1024_8_v2, remove_helper_v2, FixedVec1024, FixedVec8; + btreemap_remove_vec_1024_16_v2, remove_helper_v2, FixedVec1024, FixedVec16; + btreemap_remove_vec_1024_32_v2, remove_helper_v2, FixedVec1024, FixedVec32; + btreemap_remove_vec_1024_64_v2, remove_helper_v2, FixedVec1024, FixedVec64; + btreemap_remove_vec_1024_128_v2, remove_helper_v2, FixedVec1024, FixedVec128; + btreemap_remove_vec_1024_256_v2, remove_helper_v2, FixedVec1024, FixedVec256; + btreemap_remove_vec_1024_512_v2, remove_helper_v2, FixedVec1024, FixedVec512; + + // 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; +} - 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() {}), +// 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) +} + +fn remove_helper_v2() -> BenchResult { + let btree = BTreeMap::new(DefaultMemoryImpl::default()); + remove_helper::(btree) +} + +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); } + + let keys: Vec = items.into_iter().map(|(k, _)| k).collect(); + bench_fn(|| { + // Remove the keys from the btree. + for k in keys { + btree.remove(&k); + } + }) +} + +// Benchmarks getting keys from a BTreeMap. +bench_tests! { + // V1 blob K x 1024 + btreemap_get_blob_4_1024_v1, get_helper_v1, Blob4, Blob1024; + btreemap_get_blob_8_1024_v1, get_helper_v1, Blob8, Blob1024; + btreemap_get_blob_16_1024_v1, get_helper_v1, Blob16, Blob1024; + btreemap_get_blob_32_1024_v1, get_helper_v1, Blob32, Blob1024; + btreemap_get_blob_64_1024_v1, get_helper_v1, Blob64, Blob1024; + btreemap_get_blob_128_1024_v1, get_helper_v1, Blob128, Blob1024; + btreemap_get_blob_256_1024_v1, get_helper_v1, Blob256, Blob1024; + btreemap_get_blob_512_1024_v1, get_helper_v1, Blob512, Blob1024; + + // V1 blob 1024 x V + btreemap_get_blob_1024_4_v1, get_helper_v1, Blob1024, Blob4; + btreemap_get_blob_1024_8_v1, get_helper_v1, Blob1024, Blob8; + btreemap_get_blob_1024_16_v1, get_helper_v1, Blob1024, Blob16; + btreemap_get_blob_1024_32_v1, get_helper_v1, Blob1024, Blob32; + btreemap_get_blob_1024_64_v1, get_helper_v1, Blob1024, Blob64; + btreemap_get_blob_1024_128_v1, get_helper_v1, Blob1024, Blob128; + btreemap_get_blob_1024_256_v1, get_helper_v1, Blob1024, Blob256; + btreemap_get_blob_1024_512_v1, get_helper_v1, Blob1024, Blob512; + + // V2 blob K x 1024 + btreemap_get_blob_4_1024_v2, get_helper_v2, Blob4, Blob1024; + btreemap_get_blob_8_1024_v2, get_helper_v2, Blob8, Blob1024; + btreemap_get_blob_16_1024_v2, get_helper_v2, Blob16, Blob1024; + btreemap_get_blob_32_1024_v2, get_helper_v2, Blob32, Blob1024; + btreemap_get_blob_64_1024_v2, get_helper_v2, Blob64, Blob1024; + btreemap_get_blob_128_1024_v2, get_helper_v2, Blob128, Blob1024; + btreemap_get_blob_256_1024_v2, get_helper_v2, Blob256, Blob1024; + btreemap_get_blob_512_1024_v2, get_helper_v2, Blob512, Blob1024; + + // V2 blob 1024 x V + btreemap_get_blob_1024_4_v2, get_helper_v2, Blob1024, Blob4; + btreemap_get_blob_1024_8_v2, get_helper_v2, Blob1024, Blob8; + btreemap_get_blob_1024_16_v2, get_helper_v2, Blob1024, Blob16; + btreemap_get_blob_1024_32_v2, get_helper_v2, Blob1024, Blob32; + btreemap_get_blob_1024_64_v2, get_helper_v2, Blob1024, Blob64; + btreemap_get_blob_1024_128_v2, get_helper_v2, Blob1024, Blob128; + btreemap_get_blob_1024_256_v2, get_helper_v2, Blob1024, Blob256; + btreemap_get_blob_1024_512_v2, get_helper_v2, Blob1024, Blob512; + + // V2 vec K x 1024 + btreemap_get_vec_4_1024_v2, get_helper_v2, FixedVec4, FixedVec1024; + btreemap_get_vec_8_1024_v2, get_helper_v2, FixedVec8, FixedVec1024; + btreemap_get_vec_16_1024_v2, get_helper_v2, FixedVec16, FixedVec1024; + btreemap_get_vec_32_1024_v2, get_helper_v2, FixedVec32, FixedVec1024; + btreemap_get_vec_64_1024_v2, get_helper_v2, FixedVec64, FixedVec1024; + btreemap_get_vec_128_1024_v2, get_helper_v2, FixedVec128, FixedVec1024; + btreemap_get_vec_256_1024_v2, get_helper_v2, FixedVec256, FixedVec1024; + btreemap_get_vec_512_1024_v2, get_helper_v2, FixedVec512, FixedVec1024; + + // V2 vec 1024 x V + btreemap_get_vec_1024_4_v2, get_helper_v2, FixedVec1024, FixedVec4; + btreemap_get_vec_1024_8_v2, get_helper_v2, FixedVec1024, FixedVec8; + btreemap_get_vec_1024_16_v2, get_helper_v2, FixedVec1024, FixedVec16; + btreemap_get_vec_1024_32_v2, get_helper_v2, FixedVec1024, FixedVec32; + btreemap_get_vec_1024_64_v2, get_helper_v2, FixedVec1024, FixedVec64; + btreemap_get_vec_1024_128_v2, get_helper_v2, FixedVec1024, FixedVec128; + btreemap_get_vec_1024_256_v2, get_helper_v2, FixedVec1024, FixedVec256; + btreemap_get_vec_1024_512_v2, get_helper_v2, FixedVec1024, FixedVec512; + + // 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; } // Profiles getting a large number of random blobs from a btreemap. @@ -370,108 +352,287 @@ fn get_helper_v2_mem_manager() -> BenchResult { } fn get_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); } - // Insert the keys into the btree. - for (k, v) in random_keys.iter().zip(random_values.into_iter()) { - btree.insert(k.clone(), v); - } - - // Get all the keys from the map. + let keys: Vec = items.into_iter().map(|(k, _)| k).collect(); bench_fn(|| { - for k in random_keys.into_iter() { + // Get all the keys from the map. + for k in keys { btree.get(&k).unwrap(); } }) } +// Benchmarks `contains_key` of a BTreeMap. +bench_tests! { + // V1 blob K x 1024 + btreemap_contains_blob_4_1024_v1, contains_helper_v1, Blob4, Blob1024; + btreemap_contains_blob_8_1024_v1, contains_helper_v1, Blob8, Blob1024; + btreemap_contains_blob_16_1024_v1, contains_helper_v1, Blob16, Blob1024; + btreemap_contains_blob_32_1024_v1, contains_helper_v1, Blob32, Blob1024; + btreemap_contains_blob_64_1024_v1, contains_helper_v1, Blob64, Blob1024; + btreemap_contains_blob_128_1024_v1, contains_helper_v1, Blob128, Blob1024; + btreemap_contains_blob_256_1024_v1, contains_helper_v1, Blob256, Blob1024; + btreemap_contains_blob_512_1024_v1, contains_helper_v1, Blob512, Blob1024; + + // V1 blob 1024 x V + btreemap_contains_blob_1024_4_v1, contains_helper_v1, Blob1024, Blob4; + btreemap_contains_blob_1024_8_v1, contains_helper_v1, Blob1024, Blob8; + btreemap_contains_blob_1024_16_v1, contains_helper_v1, Blob1024, Blob16; + btreemap_contains_blob_1024_32_v1, contains_helper_v1, Blob1024, Blob32; + btreemap_contains_blob_1024_64_v1, contains_helper_v1, Blob1024, Blob64; + btreemap_contains_blob_1024_128_v1, contains_helper_v1, Blob1024, Blob128; + btreemap_contains_blob_1024_256_v1, contains_helper_v1, Blob1024, Blob256; + btreemap_contains_blob_1024_512_v1, contains_helper_v1, Blob1024, Blob512; + + // V2 blob K x 1024 + btreemap_contains_blob_4_1024_v2, contains_helper_v2, Blob4, Blob1024; + btreemap_contains_blob_8_1024_v2, contains_helper_v2, Blob8, Blob1024; + btreemap_contains_blob_16_1024_v2, contains_helper_v2, Blob16, Blob1024; + btreemap_contains_blob_32_1024_v2, contains_helper_v2, Blob32, Blob1024; + btreemap_contains_blob_64_1024_v2, contains_helper_v2, Blob64, Blob1024; + btreemap_contains_blob_128_1024_v2, contains_helper_v2, Blob128, Blob1024; + btreemap_contains_blob_256_1024_v2, contains_helper_v2, Blob256, Blob1024; + btreemap_contains_blob_512_1024_v2, contains_helper_v2, Blob512, Blob1024; + + // V2 blob 1024 x V + btreemap_contains_blob_1024_4_v2, contains_helper_v2, Blob1024, Blob4; + btreemap_contains_blob_1024_8_v2, contains_helper_v2, Blob1024, Blob8; + btreemap_contains_blob_1024_16_v2, contains_helper_v2, Blob1024, Blob16; + btreemap_contains_blob_1024_32_v2, contains_helper_v2, Blob1024, Blob32; + btreemap_contains_blob_1024_64_v2, contains_helper_v2, Blob1024, Blob64; + btreemap_contains_blob_1024_128_v2, contains_helper_v2, Blob1024, Blob128; + btreemap_contains_blob_1024_256_v2, contains_helper_v2, Blob1024, Blob256; + btreemap_contains_blob_1024_512_v2, contains_helper_v2, Blob1024, Blob512; + + // V2 vec K x 1024 + btreemap_contains_vec_4_1024_v2, contains_helper_v2, FixedVec4, FixedVec1024; + btreemap_contains_vec_8_1024_v2, contains_helper_v2, FixedVec8, FixedVec1024; + btreemap_contains_vec_16_1024_v2, contains_helper_v2, FixedVec16, FixedVec1024; + btreemap_contains_vec_32_1024_v2, contains_helper_v2, FixedVec32, FixedVec1024; + btreemap_contains_vec_64_1024_v2, contains_helper_v2, FixedVec64, FixedVec1024; + btreemap_contains_vec_128_1024_v2, contains_helper_v2, FixedVec128, FixedVec1024; + btreemap_contains_vec_256_1024_v2, contains_helper_v2, FixedVec256, FixedVec1024; + btreemap_contains_vec_512_1024_v2, contains_helper_v2, FixedVec512, FixedVec1024; + + // V2 vec 1024 x V + btreemap_contains_vec_1024_4_v2, contains_helper_v2, FixedVec1024, FixedVec4; + btreemap_contains_vec_1024_8_v2, contains_helper_v2, FixedVec1024, FixedVec8; + btreemap_contains_vec_1024_16_v2, contains_helper_v2, FixedVec1024, FixedVec16; + btreemap_contains_vec_1024_32_v2, contains_helper_v2, FixedVec1024, FixedVec32; + btreemap_contains_vec_1024_64_v2, contains_helper_v2, FixedVec1024, FixedVec64; + btreemap_contains_vec_1024_128_v2, contains_helper_v2, FixedVec1024, FixedVec128; + btreemap_contains_vec_1024_256_v2, contains_helper_v2, FixedVec1024, FixedVec256; + btreemap_contains_vec_1024_512_v2, contains_helper_v2, FixedVec1024, FixedVec512; +} + // Profiles `contains_key` on a large number of random blobs from a btreemap. -fn contains_key_helper_v1() -> BenchResult { +fn contains_helper_v1() -> BenchResult { let btree = BTreeMap::new_v1(DefaultMemoryImpl::default()); - contains_key_helper::(btree) + contains_helper::(btree) } -fn contains_key_helper_v2() -> BenchResult { +fn contains_helper_v2() -> BenchResult { let btree = BTreeMap::new(DefaultMemoryImpl::default()); - contains_key_helper::(btree) + contains_helper::(btree) } -fn contains_key_helper( +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)); - } - - // 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.clone() { + btree.insert(k, v); } - // Checks if the keys are in the map. + let keys: Vec = items.into_iter().map(|(k, _)| k).collect(); bench_fn(|| { - for k in random_keys.into_iter() { + // Checks if the keys are in the map. + for k in keys { 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) -} - -fn remove_helper_v2() -> BenchResult { - let btree = BTreeMap::new(DefaultMemoryImpl::default()); - remove_helper::(btree) -} - -fn remove_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)); - } - - // Insert the keys into the btree. - for (k, v) in random_keys.iter().zip(random_values.into_iter()) { - btree.insert(k.clone(), v); - } - - bench_fn(|| { - // Remove the keys from the btree. - for k in random_keys.into_iter() { - btree.remove(&k); - } - }) -} - -enum TraversalMode { - Iter, - IterRev, - Keys, - KeysRev, - Values, - ValuesRev, -} +// #[bench(raw)] +// pub fn btreemap_insert_10mib_values() -> BenchResult { +// let mut btree = BTreeMap::new(DefaultMemoryImpl::default()); + +// // Insert 20 10MiB values. +// 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::>(), +// ); +// } + +// bench_fn(|| { +// for (i, value) in values.into_iter().enumerate() { +// btree.insert(i as u32, value); +// } +// }) +// } + +// // Read a range of entries but only process the key of each entry. +// #[bench(raw)] +// pub fn btreemap_read_keys_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]); +// } + +// 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]); +// } + +// bench_fn(|| { +// btree +// .range((Bound::Included(0), Bound::Included(size))) +// .filter(|entry| entry.0 % 3 == 0) +// .map(|entry| entry.1.len()) +// .sum::() +// }) +// } + +// #[bench(raw)] +// pub fn btreemap_traverse_iter_small_values() -> BenchResult { +// traversal_helper(10_000, 0, TraversalMode::Iter) +// } + +// #[bench(raw)] +// pub fn btreemap_traverse_iter_rev_small_values() -> BenchResult { +// traversal_helper(10_000, 0, TraversalMode::IterRev) +// } + +// #[bench(raw)] +// pub fn btreemap_traverse_iter_10mib_values() -> BenchResult { +// traversal_helper(200, 10 * 1024, TraversalMode::Iter) +// } + +// #[bench(raw)] +// pub fn btreemap_traverse_iter_rev_10mib_values() -> BenchResult { +// traversal_helper(200, 10 * 1024, TraversalMode::IterRev) +// } + +// #[bench(raw)] +// pub fn btreemap_traverse_keys_small_values() -> BenchResult { +// traversal_helper(10_000, 0, TraversalMode::Keys) +// } + +// #[bench(raw)] +// pub fn btreemap_traverse_keys_rev_small_values() -> BenchResult { +// traversal_helper(10_000, 0, TraversalMode::KeysRev) +// } + +// #[bench(raw)] +// pub fn btreemap_traverse_keys_10mib_values() -> BenchResult { +// traversal_helper(200, 10 * 1024, TraversalMode::Keys) +// } + +// #[bench(raw)] +// pub fn btreemap_traverse_keys_rev_10mib_values() -> BenchResult { +// traversal_helper(200, 10 * 1024, TraversalMode::KeysRev) +// } + +// #[bench(raw)] +// pub fn btreemap_traverse_values_small_values() -> BenchResult { +// traversal_helper(10_000, 0, TraversalMode::Values) +// } + +// #[bench(raw)] +// pub fn btreemap_traverse_values_rev_small_values() -> BenchResult { +// traversal_helper(10_000, 0, TraversalMode::ValuesRev) +// } + +// #[bench(raw)] +// pub fn btreemap_traverse_values_10mib_values() -> BenchResult { +// traversal_helper(200, 10 * 1024, TraversalMode::Values) +// } + +// #[bench(raw)] +// pub fn btreemap_traverse_values_rev_10mib_values() -> BenchResult { +// traversal_helper(200, 10 * 1024, TraversalMode::ValuesRev) +// } + +// #[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![]); +// } + +// bench_fn(|| { +// btree +// .range((Bound::Included(0), Bound::Included(size))) +// .count(); +// }) +// } + +// #[bench(raw)] +// pub fn btreemap_iter_count_10mib_values() -> BenchResult { +// 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]); +// } + +// bench_fn(|| { +// btree +// .range((Bound::Included(0), Bound::Included(size))) +// .count(); +// }) +// } + +// /// Benchmarks BTreeMap traversal for the given traversal mode. +// fn traversal_helper(size: u32, value_size: u32, traversal_mode: TraversalMode) -> BenchResult { +// let mut btree = BTreeMap::new(DefaultMemoryImpl::default()); +// for i in 0..size { +// btree.insert(i, vec![0u8; value_size as usize]); +// } + +// 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() {}), +// } +// } + +// enum TraversalMode { +// Iter, +// IterRev, +// Keys, +// KeysRev, +// Values, +// ValuesRev, +// } 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/src/storable.rs b/src/storable.rs index 8ae6ddec..fe351e33 100644 --- a/src/storable.rs +++ b/src/storable.rs @@ -189,6 +189,73 @@ impl Storable for Blob { }; } +/// Byte‑vector for testing size N; otherwise just a Vec. +#[derive(Clone, Default, 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); + let mut vec = Vec::with_capacity(N); + vec.extend_from_slice(slice); + vec.resize(N, 0); + FixedVec(vec) + } +} + +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; +} + +// impl FixedVec { +// /// Always produces exactly N random bytes. +// pub fn random_fill(rng: &mut Rng) -> Self { +// let mut buf = Vec::with_capacity(N); +// for _ in 0..N { +// buf.push(rng.rand_u8()); +// } +// FixedVec(buf) +// } +// } + +// impl Deref for FixedVec { +// type Target = Vec; +// fn deref(&self) -> &Vec { +// &self.0 +// } +// } + +// impl DerefMut for FixedVec { +// fn deref_mut(&mut self) -> &mut Vec { +// &mut self.0 +// } +// } + +// impl Random for FixedVec { +// fn random(rng: &mut Rng) -> Self { +// Self::random_fill(rng) +// } +// } + +// impl TryFrom<&[u8]> for FixedVec { +// type Error = std::convert::Infallible; +// fn try_from(slice: &[u8]) -> Result { +// Ok(FixedVec(slice.to_vec())) +// } +// } + // 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 From 111b96a43f7626a0e8abef7978b557dd17361e7b Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 11:01:39 +0200 Subject: [PATCH 08/68] mem_manager --- benchmarks/src/btreemap.rs | 133 +++++++++++++++++++++++++++++-------- 1 file changed, 104 insertions(+), 29 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index 8054b4ce..cb93cc3c 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -8,6 +8,7 @@ use ic_stable_structures::{ use std::ops::Bound; use tiny_rng::{Rand, Rng}; +// Bounded types. type Blob4 = Blob<4>; type Blob8 = Blob<8>; type Blob16 = Blob<16>; @@ -18,6 +19,7 @@ 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>; @@ -56,6 +58,8 @@ fn generate_random_kv(n: usize, rng: &mut Rng) -> Vec< // Benchmarks inserting data into a BTreeMap. bench_tests! { + // === V1 === + // V1 blob K x 1024 btreemap_insert_blob_4_1024_v1, insert_helper_v1, Blob4, Blob1024; btreemap_insert_blob_8_1024_v1, insert_helper_v1, Blob8, Blob1024; @@ -76,6 +80,13 @@ bench_tests! { btreemap_insert_blob_1024_256_v1, insert_helper_v1, Blob1024, Blob256; btreemap_insert_blob_1024_512_v1, insert_helper_v1, Blob1024, Blob512; + // V1 u64 / blob8 + btreemap_insert_u64_u64_v1, insert_helper_v1, u64, u64; + btreemap_insert_u64_blob_8_v1, insert_helper_v1, u64, Blob8; + btreemap_insert_blob_8_u64_v1, insert_helper_v1, Blob8, u64; + + // === V2 === + // V2 blob K x 1024 btreemap_insert_blob_4_1024_v2, insert_helper_v2, Blob4, Blob1024; btreemap_insert_blob_8_1024_v2, insert_helper_v2, Blob8, Blob1024; @@ -116,16 +127,19 @@ bench_tests! { btreemap_insert_vec_1024_256_v2, insert_helper_v2, FixedVec1024, FixedVec256; btreemap_insert_vec_1024_512_v2, insert_helper_v2, FixedVec1024, FixedVec512; - // 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; + // V2 u64 / blob8 / vec8 + btreemap_insert_u64_u64_v2, insert_helper_v2, u64, u64; + btreemap_insert_u64_blob_8_v2, insert_helper_v2, u64, Blob8; + btreemap_insert_blob_8_u64_v2, insert_helper_v2, Blob8, u64; + btreemap_insert_u64_vec_8_v2, insert_helper_v2, u64, FixedVec8; + btreemap_insert_vec_8_u64_v2, insert_helper_v2, FixedVec8, u64; + + // V2 memory manager u64 / blob512 / vec512 + btreemap_insert_u64_u64_v2_mem_manager, insert_helper_v2_mem_manager, u64, u64; + btreemap_insert_u64_blob_512_v2_mem_manager, insert_helper_v2_mem_manager, u64, Blob512; + btreemap_insert_blob_512_u64_v2_mem_manager, insert_helper_v2_mem_manager, Blob512, u64; + btreemap_insert_u64_vec_512_v2_mem_manager, insert_helper_v2_mem_manager, u64, FixedVec512; + btreemap_insert_vec_512_u64_v2_mem_manager, insert_helper_v2_mem_manager, FixedVec512, u64; } // Profiles inserting a large number of random blobs into a btreemap. @@ -161,6 +175,8 @@ fn insert_helper(mut btree: BTreeMap() -> BenchResult { remove_helper::(btree) } -fn remove_helper( - mut btree: BTreeMap, -) -> BenchResult { +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) +} + +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); @@ -262,6 +296,8 @@ fn remove_helper( // Benchmarks getting keys from a BTreeMap. bench_tests! { + // === V1 === + // V1 blob K x 1024 btreemap_get_blob_4_1024_v1, get_helper_v1, Blob4, Blob1024; btreemap_get_blob_8_1024_v1, get_helper_v1, Blob8, Blob1024; @@ -282,6 +318,13 @@ bench_tests! { btreemap_get_blob_1024_256_v1, get_helper_v1, Blob1024, Blob256; btreemap_get_blob_1024_512_v1, get_helper_v1, Blob1024, Blob512; + // V1 u64 / blob8 + btreemap_get_u64_u64_v1, get_helper_v1, u64, u64; + btreemap_get_u64_blob_8_v1, get_helper_v1, u64, Blob8; + btreemap_get_blob_8_u64_v1, get_helper_v1, Blob8, u64; + + // === V2 === + // V2 blob K x 1024 btreemap_get_blob_4_1024_v2, get_helper_v2, Blob4, Blob1024; btreemap_get_blob_8_1024_v2, get_helper_v2, Blob8, Blob1024; @@ -322,16 +365,19 @@ bench_tests! { btreemap_get_vec_1024_256_v2, get_helper_v2, FixedVec1024, FixedVec256; btreemap_get_vec_1024_512_v2, get_helper_v2, FixedVec1024, FixedVec512; - // 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; + // V2 u64 / blob8 / vec8 + btreemap_get_u64_u64_v2, get_helper_v2, u64, u64; + btreemap_get_u64_blob_8_v2, get_helper_v2, u64, Blob8; + btreemap_get_blob_8_u64_v2, get_helper_v2, Blob8, u64; + btreemap_get_u64_vec_8_v2, get_helper_v2, u64, FixedVec8; + btreemap_get_vec_8_u64_v2, get_helper_v2, FixedVec8, u64; + + // V2 memory manager u64 / blob512 / vec512 + btreemap_get_u64_u64_v2_mem_manager, get_helper_v2_mem_manager, u64, u64; + btreemap_get_u64_blob_512_v2_mem_manager, get_helper_v2_mem_manager, u64, Blob512; + btreemap_get_blob_512_u64_v2_mem_manager, get_helper_v2_mem_manager, Blob512, u64; + btreemap_get_u64_vec_512_v2_mem_manager, get_helper_v2_mem_manager, u64, FixedVec512; + btreemap_get_vec_512_u64_v2_mem_manager, get_helper_v2_mem_manager, FixedVec512, u64; } // Profiles getting a large number of random blobs from a btreemap. @@ -370,6 +416,8 @@ fn get_helper(mut btree: BTreeMap) // Benchmarks `contains_key` of a BTreeMap. bench_tests! { + // === V1 === + // V1 blob K x 1024 btreemap_contains_blob_4_1024_v1, contains_helper_v1, Blob4, Blob1024; btreemap_contains_blob_8_1024_v1, contains_helper_v1, Blob8, Blob1024; @@ -390,6 +438,13 @@ bench_tests! { btreemap_contains_blob_1024_256_v1, contains_helper_v1, Blob1024, Blob256; btreemap_contains_blob_1024_512_v1, contains_helper_v1, Blob1024, Blob512; + // V1 u64 / blob8 + btreemap_contains_u64_u64_v1, contains_helper_v1, u64, u64; + btreemap_contains_u64_blob_8_v1, contains_helper_v1, u64, Blob8; + btreemap_contains_blob_8_u64_v1, contains_helper_v1, Blob8, u64; + + // === V2 === + // V2 blob K x 1024 btreemap_contains_blob_4_1024_v2, contains_helper_v2, Blob4, Blob1024; btreemap_contains_blob_8_1024_v2, contains_helper_v2, Blob8, Blob1024; @@ -429,6 +484,20 @@ bench_tests! { btreemap_contains_vec_1024_128_v2, contains_helper_v2, FixedVec1024, FixedVec128; btreemap_contains_vec_1024_256_v2, contains_helper_v2, FixedVec1024, FixedVec256; btreemap_contains_vec_1024_512_v2, contains_helper_v2, FixedVec1024, FixedVec512; + + // V2 u64 / blob8 / vec8 + btreemap_contains_u64_u64_v2, contains_helper_v2, u64, u64; + btreemap_contains_u64_blob_8_v2, contains_helper_v2, u64, Blob8; + btreemap_contains_blob_8_u64_v2, contains_helper_v2, Blob8, u64; + btreemap_contains_u64_vec_8_v2, contains_helper_v2, u64, FixedVec8; + btreemap_contains_vec_8_u64_v2, contains_helper_v2, FixedVec8, u64; + + // V2 memory manager u64 / blob512 / vec512 + btreemap_contains_u64_u64_v2_mem_manager, contains_helper_v2_mem_manager, u64, u64; + btreemap_contains_u64_blob_512_v2_mem_manager, contains_helper_v2_mem_manager, u64, Blob512; + btreemap_contains_blob_512_u64_v2_mem_manager, contains_helper_v2_mem_manager, Blob512, u64; + btreemap_contains_u64_vec_512_v2_mem_manager, contains_helper_v2_mem_manager, u64, FixedVec512; + btreemap_contains_vec_512_u64_v2_mem_manager, contains_helper_v2_mem_manager, FixedVec512, u64; } // Profiles `contains_key` on a large number of random blobs from a btreemap. @@ -442,6 +511,12 @@ fn contains_helper_v2() -> BenchResult { contains_helper::(btree) } +fn contains_helper_v2_mem_manager() -> BenchResult { + let memory_manager = MemoryManager::init(DefaultMemoryImpl::default()); + let btree = BTreeMap::new(memory_manager.get(MemoryId::new(42))); + contains_helper::(btree) +} + fn contains_helper( mut btree: BTreeMap, ) -> BenchResult { From 62824221c3768b1c4d317d7f07ef8eec0549aab7 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 11:13:55 +0200 Subject: [PATCH 09/68] . --- benchmarks/src/btreemap.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index cb93cc3c..3711b85e 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -56,7 +56,7 @@ fn generate_random_kv(n: usize, rng: &mut Rng) -> Vec< pairs } -// Benchmarks inserting data into a BTreeMap. +// Benchmarks for `BTreeMap::insert`. bench_tests! { // === V1 === @@ -173,7 +173,7 @@ fn insert_helper(mut btree: BTreeMap(mut btree: BTreeMap(mut btree: BTreeMap) }) } -// Benchmarks `contains_key` of a BTreeMap. +// Benchmarks for `BTreeMap::contains_key`. bench_tests! { // === V1 === From 0655396cf60fcfa66dc3cf80d2d81d5c4717f05e Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 11:36:13 +0200 Subject: [PATCH 10/68] bench_traversal_tests --- benchmarks/src/btreemap.rs | 164 +++++++++++++++++-------------------- 1 file changed, 77 insertions(+), 87 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index 3711b85e..e300d574 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -30,6 +30,11 @@ 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 {} @@ -257,7 +262,6 @@ bench_tests! { btreemap_remove_blob_512_u64_v2_mem_manager, remove_helper_v2_mem_manager, Blob512, u64; btreemap_remove_u64_vec_512_v2_mem_manager, remove_helper_v2_mem_manager, u64, FixedVec512; btreemap_remove_vec_512_u64_v2_mem_manager, remove_helper_v2_mem_manager, FixedVec512, u64; - } // Inserts a large number of random blobs into a btreemap, then profiles removing them. @@ -536,6 +540,78 @@ fn contains_helper( }) } +/// 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) + } + )+ + }; +} + +bench_traversal_tests! { + // Small values + btreemap_traverse_iter_small_values, traverse_helper, 1_000, 0, TraversalMode::Iter; + btreemap_traverse_iter_rev_small_values, traverse_helper, 1_000, 0, TraversalMode::IterRev; + btreemap_traverse_keys_small_values, traverse_helper, 1_000, 0, TraversalMode::Keys; + btreemap_traverse_keys_rev_small_values, traverse_helper, 1_000, 0, TraversalMode::KeysRev; + btreemap_traverse_values_small_values, traverse_helper, 1_000, 0, TraversalMode::Values; + btreemap_traverse_values_rev_small_values, traverse_helper, 1_000, 0, TraversalMode::ValuesRev; + + // Middle values + btreemap_traverse_iter_mid_values, traverse_helper, 1_000, 10 * KiB, TraversalMode::Iter; + btreemap_traverse_iter_rev_mid_values, traverse_helper, 1_000, 10 * KiB, TraversalMode::IterRev; + btreemap_traverse_keys_mid_values, traverse_helper, 1_000, 10 * KiB, TraversalMode::Keys; + btreemap_traverse_keys_rev_mid_values, traverse_helper, 1_000, 10 * KiB, TraversalMode::KeysRev; + btreemap_traverse_values_mid_values, traverse_helper, 1_000, 10 * KiB, TraversalMode::Values; + btreemap_traverse_values_rev_mid_values, traverse_helper, 1_000, 10 * KiB, TraversalMode::ValuesRev; + + // Large values + btreemap_traverse_iter_large_values, traverse_helper, 1_000, 10 * MiB, TraversalMode::Iter; + btreemap_traverse_iter_rev_large_values, traverse_helper, 1_000, 10 * MiB, TraversalMode::IterRev; + btreemap_traverse_keys_large_values, traverse_helper, 1_000, 10 * MiB, TraversalMode::Keys; + btreemap_traverse_keys_rev_large_values, traverse_helper, 1_000, 10 * MiB, TraversalMode::KeysRev; + btreemap_traverse_values_large_values, traverse_helper, 1_000, 10 * MiB, TraversalMode::Values; + btreemap_traverse_values_rev_large_values, traverse_helper, 1_000, 10 * MiB, TraversalMode::ValuesRev; +} + +enum TraversalMode { + Iter, + IterRev, + Keys, + KeysRev, + Values, + ValuesRev, +} + +/// Benchmarks BTreeMap traversal for the given traversal mode. +fn traverse_helper(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]); + } + + 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() {}), + } +} + // #[bench(raw)] // pub fn btreemap_insert_10mib_values() -> BenchResult { // let mut btree = BTreeMap::new(DefaultMemoryImpl::default()); @@ -593,66 +669,6 @@ fn contains_helper( // }) // } -// #[bench(raw)] -// pub fn btreemap_traverse_iter_small_values() -> BenchResult { -// traversal_helper(10_000, 0, TraversalMode::Iter) -// } - -// #[bench(raw)] -// pub fn btreemap_traverse_iter_rev_small_values() -> BenchResult { -// traversal_helper(10_000, 0, TraversalMode::IterRev) -// } - -// #[bench(raw)] -// pub fn btreemap_traverse_iter_10mib_values() -> BenchResult { -// traversal_helper(200, 10 * 1024, TraversalMode::Iter) -// } - -// #[bench(raw)] -// pub fn btreemap_traverse_iter_rev_10mib_values() -> BenchResult { -// traversal_helper(200, 10 * 1024, TraversalMode::IterRev) -// } - -// #[bench(raw)] -// pub fn btreemap_traverse_keys_small_values() -> BenchResult { -// traversal_helper(10_000, 0, TraversalMode::Keys) -// } - -// #[bench(raw)] -// pub fn btreemap_traverse_keys_rev_small_values() -> BenchResult { -// traversal_helper(10_000, 0, TraversalMode::KeysRev) -// } - -// #[bench(raw)] -// pub fn btreemap_traverse_keys_10mib_values() -> BenchResult { -// traversal_helper(200, 10 * 1024, TraversalMode::Keys) -// } - -// #[bench(raw)] -// pub fn btreemap_traverse_keys_rev_10mib_values() -> BenchResult { -// traversal_helper(200, 10 * 1024, TraversalMode::KeysRev) -// } - -// #[bench(raw)] -// pub fn btreemap_traverse_values_small_values() -> BenchResult { -// traversal_helper(10_000, 0, TraversalMode::Values) -// } - -// #[bench(raw)] -// pub fn btreemap_traverse_values_rev_small_values() -> BenchResult { -// traversal_helper(10_000, 0, TraversalMode::ValuesRev) -// } - -// #[bench(raw)] -// pub fn btreemap_traverse_values_10mib_values() -> BenchResult { -// traversal_helper(200, 10 * 1024, TraversalMode::Values) -// } - -// #[bench(raw)] -// pub fn btreemap_traverse_values_rev_10mib_values() -> BenchResult { -// traversal_helper(200, 10 * 1024, TraversalMode::ValuesRev) -// } - // #[bench(raw)] // pub fn btreemap_iter_count_small_values() -> BenchResult { // let mut btree = BTreeMap::new(DefaultMemoryImpl::default()); @@ -685,29 +701,3 @@ fn contains_helper( // .count(); // }) // } - -// /// Benchmarks BTreeMap traversal for the given traversal mode. -// fn traversal_helper(size: u32, value_size: u32, traversal_mode: TraversalMode) -> BenchResult { -// let mut btree = BTreeMap::new(DefaultMemoryImpl::default()); -// for i in 0..size { -// btree.insert(i, vec![0u8; value_size as usize]); -// } - -// 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() {}), -// } -// } - -// enum TraversalMode { -// Iter, -// IterRev, -// Keys, -// KeysRev, -// Values, -// ValuesRev, -// } From dd6f3934640ea1324d6ef16966b2ae8340f239d4 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 11:38:09 +0200 Subject: [PATCH 11/68] cleanup --- src/storable.rs | 37 ------------------------------------- 1 file changed, 37 deletions(-) diff --git a/src/storable.rs b/src/storable.rs index fe351e33..bf01fa9d 100644 --- a/src/storable.rs +++ b/src/storable.rs @@ -219,43 +219,6 @@ impl Storable for FixedVec { const BOUND: Bound = Bound::Unbounded; } -// impl FixedVec { -// /// Always produces exactly N random bytes. -// pub fn random_fill(rng: &mut Rng) -> Self { -// let mut buf = Vec::with_capacity(N); -// for _ in 0..N { -// buf.push(rng.rand_u8()); -// } -// FixedVec(buf) -// } -// } - -// impl Deref for FixedVec { -// type Target = Vec; -// fn deref(&self) -> &Vec { -// &self.0 -// } -// } - -// impl DerefMut for FixedVec { -// fn deref_mut(&mut self) -> &mut Vec { -// &mut self.0 -// } -// } - -// impl Random for FixedVec { -// fn random(rng: &mut Rng) -> Self { -// Self::random_fill(rng) -// } -// } - -// impl TryFrom<&[u8]> for FixedVec { -// type Error = std::convert::Infallible; -// fn try_from(slice: &[u8]) -> Result { -// Ok(FixedVec(slice.to_vec())) -// } -// } - // 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 From 458b16ba26e9be227c160cfad29668a594167a03 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 11:41:00 +0200 Subject: [PATCH 12/68] . --- benchmarks/src/btreemap.rs | 40 +++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index e300d574..caa26cc6 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -562,28 +562,28 @@ macro_rules! bench_traversal_tests { bench_traversal_tests! { // Small values - btreemap_traverse_iter_small_values, traverse_helper, 1_000, 0, TraversalMode::Iter; - btreemap_traverse_iter_rev_small_values, traverse_helper, 1_000, 0, TraversalMode::IterRev; - btreemap_traverse_keys_small_values, traverse_helper, 1_000, 0, TraversalMode::Keys; - btreemap_traverse_keys_rev_small_values, traverse_helper, 1_000, 0, TraversalMode::KeysRev; - btreemap_traverse_values_small_values, traverse_helper, 1_000, 0, TraversalMode::Values; - btreemap_traverse_values_rev_small_values, traverse_helper, 1_000, 0, TraversalMode::ValuesRev; - - // Middle values - btreemap_traverse_iter_mid_values, traverse_helper, 1_000, 10 * KiB, TraversalMode::Iter; - btreemap_traverse_iter_rev_mid_values, traverse_helper, 1_000, 10 * KiB, TraversalMode::IterRev; - btreemap_traverse_keys_mid_values, traverse_helper, 1_000, 10 * KiB, TraversalMode::Keys; - btreemap_traverse_keys_rev_mid_values, traverse_helper, 1_000, 10 * KiB, TraversalMode::KeysRev; - btreemap_traverse_values_mid_values, traverse_helper, 1_000, 10 * KiB, TraversalMode::Values; - btreemap_traverse_values_rev_mid_values, traverse_helper, 1_000, 10 * KiB, TraversalMode::ValuesRev; + btreemap_scan_iter_small, traverse_helper, 1_000, 0, TraversalMode::Iter; + btreemap_scan_iter_rev_small, traverse_helper, 1_000, 0, TraversalMode::IterRev; + btreemap_scan_keys_small, traverse_helper, 1_000, 0, TraversalMode::Keys; + btreemap_scan_keys_rev_small, traverse_helper, 1_000, 0, TraversalMode::KeysRev; + btreemap_scan_small, traverse_helper, 1_000, 0, TraversalMode::Values; + btreemap_scan_rev_small, traverse_helper, 1_000, 0, TraversalMode::ValuesRev; + + // Medium values + btreemap_scan_iter_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::Iter; + btreemap_scan_iter_rev_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::IterRev; + btreemap_scan_keys_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::Keys; + btreemap_scan_keys_rev_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::KeysRev; + btreemap_scan_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::Values; + btreemap_scan_rev_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::ValuesRev; // Large values - btreemap_traverse_iter_large_values, traverse_helper, 1_000, 10 * MiB, TraversalMode::Iter; - btreemap_traverse_iter_rev_large_values, traverse_helper, 1_000, 10 * MiB, TraversalMode::IterRev; - btreemap_traverse_keys_large_values, traverse_helper, 1_000, 10 * MiB, TraversalMode::Keys; - btreemap_traverse_keys_rev_large_values, traverse_helper, 1_000, 10 * MiB, TraversalMode::KeysRev; - btreemap_traverse_values_large_values, traverse_helper, 1_000, 10 * MiB, TraversalMode::Values; - btreemap_traverse_values_rev_large_values, traverse_helper, 1_000, 10 * MiB, TraversalMode::ValuesRev; + btreemap_scan_iter_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::Iter; + btreemap_scan_iter_rev_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::IterRev; + btreemap_scan_keys_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::Keys; + btreemap_scan_keys_rev_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::KeysRev; + btreemap_scan_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::Values; + btreemap_scan_rev_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::ValuesRev; } enum TraversalMode { From cd5ad814e433896582e4d8904e2f89a942c89ea1 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 11:42:03 +0200 Subject: [PATCH 13/68] . --- benchmarks/src/btreemap.rs | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index caa26cc6..5eaead75 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -562,28 +562,28 @@ macro_rules! bench_traversal_tests { bench_traversal_tests! { // Small values - btreemap_scan_iter_small, traverse_helper, 1_000, 0, TraversalMode::Iter; - btreemap_scan_iter_rev_small, traverse_helper, 1_000, 0, TraversalMode::IterRev; - btreemap_scan_keys_small, traverse_helper, 1_000, 0, TraversalMode::Keys; - btreemap_scan_keys_rev_small, traverse_helper, 1_000, 0, TraversalMode::KeysRev; - btreemap_scan_small, traverse_helper, 1_000, 0, TraversalMode::Values; - btreemap_scan_rev_small, traverse_helper, 1_000, 0, TraversalMode::ValuesRev; + btreemap_scan_iter_small, traverse_helper, 1_000, 0, TraversalMode::Iter; + btreemap_scan_iter_rev_small, traverse_helper, 1_000, 0, TraversalMode::IterRev; + btreemap_scan_keys_small, traverse_helper, 1_000, 0, TraversalMode::Keys; + btreemap_scan_keys_rev_small, traverse_helper, 1_000, 0, TraversalMode::KeysRev; + btreemap_scan_small, traverse_helper, 1_000, 0, TraversalMode::Values; + btreemap_scan_rev_small, traverse_helper, 1_000, 0, TraversalMode::ValuesRev; // Medium values - btreemap_scan_iter_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::Iter; + btreemap_scan_iter_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::Iter; btreemap_scan_iter_rev_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::IterRev; - btreemap_scan_keys_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::Keys; + btreemap_scan_keys_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::Keys; btreemap_scan_keys_rev_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::KeysRev; - btreemap_scan_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::Values; - btreemap_scan_rev_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::ValuesRev; + btreemap_scan_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::Values; + btreemap_scan_rev_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::ValuesRev; // Large values - btreemap_scan_iter_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::Iter; - btreemap_scan_iter_rev_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::IterRev; - btreemap_scan_keys_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::Keys; - btreemap_scan_keys_rev_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::KeysRev; - btreemap_scan_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::Values; - btreemap_scan_rev_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::ValuesRev; + btreemap_scan_iter_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::Iter; + btreemap_scan_iter_rev_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::IterRev; + btreemap_scan_keys_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::Keys; + btreemap_scan_keys_rev_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::KeysRev; + btreemap_scan_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::Values; + btreemap_scan_rev_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::ValuesRev; } enum TraversalMode { From 097537cba075bc735d0b4b8916e4cabb4dfa127c Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 11:43:40 +0200 Subject: [PATCH 14/68] . --- benchmarks/src/btreemap.rs | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index 5eaead75..83b9f451 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -562,28 +562,28 @@ macro_rules! bench_traversal_tests { bench_traversal_tests! { // Small values - btreemap_scan_iter_small, traverse_helper, 1_000, 0, TraversalMode::Iter; - btreemap_scan_iter_rev_small, traverse_helper, 1_000, 0, TraversalMode::IterRev; - btreemap_scan_keys_small, traverse_helper, 1_000, 0, TraversalMode::Keys; - btreemap_scan_keys_rev_small, traverse_helper, 1_000, 0, TraversalMode::KeysRev; - btreemap_scan_small, traverse_helper, 1_000, 0, TraversalMode::Values; - btreemap_scan_rev_small, traverse_helper, 1_000, 0, TraversalMode::ValuesRev; + btreemap_scan_iter_small, traverse_helper, 1_000, 0, TraversalMode::Iter; + btreemap_scan_iter_rev_small, traverse_helper, 1_000, 0, TraversalMode::IterRev; + btreemap_scan_keys_small, traverse_helper, 1_000, 0, TraversalMode::Keys; + btreemap_scan_keys_rev_small, traverse_helper, 1_000, 0, TraversalMode::KeysRev; + btreemap_scan_values_small, traverse_helper, 1_000, 0, TraversalMode::Values; + btreemap_scan_values_rev_small, traverse_helper, 1_000, 0, TraversalMode::ValuesRev; // Medium values - btreemap_scan_iter_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::Iter; - btreemap_scan_iter_rev_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::IterRev; - btreemap_scan_keys_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::Keys; - btreemap_scan_keys_rev_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::KeysRev; - btreemap_scan_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::Values; - btreemap_scan_rev_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::ValuesRev; + btreemap_scan_iter_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::Iter; + btreemap_scan_iter_rev_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::IterRev; + btreemap_scan_keys_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::Keys; + btreemap_scan_keys_rev_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::KeysRev; + btreemap_scan_values_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::Values; + btreemap_scan_values_rev_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::ValuesRev; // Large values - btreemap_scan_iter_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::Iter; - btreemap_scan_iter_rev_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::IterRev; - btreemap_scan_keys_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::Keys; - btreemap_scan_keys_rev_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::KeysRev; - btreemap_scan_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::Values; - btreemap_scan_rev_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::ValuesRev; + btreemap_scan_iter_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::Iter; + btreemap_scan_iter_rev_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::IterRev; + btreemap_scan_keys_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::Keys; + btreemap_scan_keys_rev_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::KeysRev; + btreemap_scan_values_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::Values; + btreemap_scan_values_rev_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::ValuesRev; } enum TraversalMode { From 75a74267a2eee4ea7d9beff0c5cdb490f42bd6e3 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 12:05:00 +0200 Subject: [PATCH 15/68] . --- benchmarks/src/btreemap.rs | 99 ++++++++++++++++++++++++++++---------- 1 file changed, 74 insertions(+), 25 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index 83b9f451..31e6e0b1 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -61,6 +61,12 @@ fn generate_random_kv(n: usize, rng: &mut Rng) -> Vec< pairs } +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! { // === V1 === @@ -578,12 +584,12 @@ bench_traversal_tests! { btreemap_scan_values_rev_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::ValuesRev; // Large values - btreemap_scan_iter_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::Iter; - btreemap_scan_iter_rev_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::IterRev; - btreemap_scan_keys_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::Keys; - btreemap_scan_keys_rev_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::KeysRev; - btreemap_scan_values_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::Values; - btreemap_scan_values_rev_large, traverse_helper, 1_000, 10 * MiB, TraversalMode::ValuesRev; + btreemap_scan_iter_large, traverse_helper, 20, 10 * MiB, TraversalMode::Iter; + btreemap_scan_iter_rev_large, traverse_helper, 20, 10 * MiB, TraversalMode::IterRev; + btreemap_scan_keys_large, traverse_helper, 20, 10 * MiB, TraversalMode::Keys; + btreemap_scan_keys_rev_large, traverse_helper, 20, 10 * MiB, TraversalMode::KeysRev; + btreemap_scan_values_large, traverse_helper, 20, 10 * MiB, TraversalMode::Values; + btreemap_scan_values_rev_large, traverse_helper, 20, 10 * MiB, TraversalMode::ValuesRev; } enum TraversalMode { @@ -612,27 +618,70 @@ fn traverse_helper(count: u32, value_size: usize, traversal_mode: TraversalMode) } } -// #[bench(raw)] -// pub fn btreemap_insert_10mib_values() -> BenchResult { -// let mut btree = BTreeMap::new(DefaultMemoryImpl::default()); +#[bench(raw)] +pub fn btreemap_10mib_values_insert_v2() -> 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); -// // Insert 20 10MiB values. -// 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::>(), -// ); -// } + bench_fn(|| { + for (i, value) in values.into_iter().enumerate() { + btree.insert(i as u32, value); + } + }) +} -// bench_fn(|| { -// for (i, value) in values.into_iter().enumerate() { -// btree.insert(i as u32, value); -// } -// }) -// } +#[bench(raw)] +pub fn btreemap_10mib_values_remove_v2() -> 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_fn(|| { + for i in 0..count { + btree.remove(&(i as u32)); + } + }) +} + +#[bench(raw)] +pub fn btreemap_10mib_values_get_v2() -> 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_fn(|| { + for i in 0..count { + btree.get(&(i as u32)); + } + }) +} + +#[bench(raw)] +pub fn btreemap_10mib_values_contains_key_v2() -> 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_fn(|| { + for i in 0..count { + btree.contains_key(&(i as u32)); + } + }) +} // // Read a range of entries but only process the key of each entry. // #[bench(raw)] From 722e0217bf37e6c4ba5996dbd89f2f64311cb85d Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 13:59:12 +0200 Subject: [PATCH 16/68] bench_range_tests --- benchmarks/src/btreemap.rs | 144 ++++++++++++++++++++++++++++--------- 1 file changed, 112 insertions(+), 32 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index 31e6e0b1..6c2b76d3 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -618,71 +618,151 @@ fn traverse_helper(count: u32, value_size: usize, traversal_mode: TraversalMode) } } -#[bench(raw)] -pub fn btreemap_10mib_values_insert_v2() -> 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); +/// 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) + } + )+ + }; +} - bench_fn(|| { - for (i, value) in values.into_iter().enumerate() { - btree.insert(i as u32, value); - } - }) +bench_range_tests! { + // === V1 === + // V1 does not support unbounded types, eg. Vec<_>. + + // === V2 === + btreemap_range_key_sum_small_v2, range_key_sum_helper_v2, 1_000, 0; + btreemap_range_key_sum_medium_v2, range_key_sum_helper_v2, 1_000, 10 * KiB; + btreemap_range_key_sum_large_v2, range_key_sum_helper_v2, 20, 10 * MiB; + + btreemap_range_value_sum_small_v2, range_value_sum_helper_v2, 1_000, 0; + btreemap_range_value_sum_medium_v2, range_value_sum_helper_v2, 1_000, 10 * KiB; + btreemap_range_value_sum_large_v2, range_value_sum_helper_v2, 20, 10 * MiB; + + btreemap_range_count_small_v2, range_count_helper_v2, 1_000, 0; + btreemap_range_count_medium_v2, range_count_helper_v2, 1_000, 10 * KiB; + btreemap_range_count_large_v2, range_count_helper_v2, 20, 10 * MiB; } -#[bench(raw)] -pub fn btreemap_10mib_values_remove_v2() -> BenchResult { - let count = 20; +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 values = generate_random_blocks(count, 10 * MiB, &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); } + // Read a range of entries but only process the key of each entry. bench_fn(|| { - for i in 0..count { - btree.remove(&(i as u32)); - } + btree + .range((Bound::Included(0), Bound::Included(size as u32))) + .map(|(k, _)| k) + .sum::() }) } -#[bench(raw)] -pub fn btreemap_10mib_values_get_v2() -> BenchResult { - let count = 20; +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, 10 * MiB, &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); } + // Read a range of entries but only process the value from every third entry. bench_fn(|| { - for i in 0..count { - btree.get(&(i as u32)); - } + btree + .range((Bound::Included(0), Bound::Included(size as u32))) + .filter(|(k, _)| k % 3 == 0) + .map(|(_, v)| v.len()) + .sum::() }) } -#[bench(raw)] -pub fn btreemap_10mib_values_contains_key_v2() -> BenchResult { - let count = 20; +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, 10 * MiB, &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); } bench_fn(|| { - for i in 0..count { - btree.contains_key(&(i as u32)); - } + btree + .range((Bound::Included(0), Bound::Included(size as u32))) + .count() }) } +// #[bench(raw)] +// pub fn btreemap_10mib_values_insert_v2() -> 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); + +// bench_fn(|| { +// for (i, value) in values.into_iter().enumerate() { +// btree.insert(i as u32, value); +// } +// }) +// } + +// #[bench(raw)] +// pub fn btreemap_10mib_values_remove_v2() -> 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_fn(|| { +// for i in 0..count { +// btree.remove(&(i as u32)); +// } +// }) +// } + +// #[bench(raw)] +// pub fn btreemap_10mib_values_get_v2() -> 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_fn(|| { +// for i in 0..count { +// btree.get(&(i as u32)); +// } +// }) +// } + +// #[bench(raw)] +// pub fn btreemap_10mib_values_contains_key_v2() -> 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_fn(|| { +// for i in 0..count { +// btree.contains_key(&(i as u32)); +// } +// }) +// } + // // Read a range of entries but only process the key of each entry. // #[bench(raw)] // pub fn btreemap_read_keys_from_range() -> BenchResult { From a2015a28306cd1746e4154d094373cdfafb9bf27 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 14:09:01 +0200 Subject: [PATCH 17/68] . --- benchmarks/src/btreemap.rs | 198 ++++++++++++------------------------- 1 file changed, 65 insertions(+), 133 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index 6c2b76d3..79c58955 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -184,6 +184,20 @@ fn insert_helper(mut btree: BTreeMap 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); + + bench_fn(|| { + for (i, value) in values.into_iter().enumerate() { + btree.insert(i as u32, value); + } + }) +} + // Benchmarks for `BTreeMap::remove`. bench_tests! { // === V1 === @@ -304,6 +318,23 @@ fn remove_helper(mut btree: BTreeMap 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_fn(|| { + for i in 0..count { + btree.remove(&(i as u32)); + } + }) +} + // Benchmarks for `BTreeMap::get`. bench_tests! { // === V1 === @@ -424,6 +455,23 @@ fn get_helper(mut btree: BTreeMap) }) } +#[bench(raw)] +pub fn btreemap_get_10mib_values_v2() -> 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_fn(|| { + for i in 0..count { + btree.get(&(i as u32)); + } + }) +} + // Benchmarks for `BTreeMap::contains_key`. bench_tests! { // === V1 === @@ -546,6 +594,23 @@ fn contains_helper( }) } +#[bench(raw)] +pub fn btreemap_contains_10mib_values_v2() -> 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_fn(|| { + for i in 0..count { + btree.contains_key(&(i as u32)); + } + }) +} + /// Helper macro to generate traversal benchmarks. macro_rules! bench_traversal_tests { ( @@ -697,136 +762,3 @@ fn range_count_helper_v2(count: usize, size: usize) -> BenchResult { .count() }) } - -// #[bench(raw)] -// pub fn btreemap_10mib_values_insert_v2() -> 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); - -// bench_fn(|| { -// for (i, value) in values.into_iter().enumerate() { -// btree.insert(i as u32, value); -// } -// }) -// } - -// #[bench(raw)] -// pub fn btreemap_10mib_values_remove_v2() -> 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_fn(|| { -// for i in 0..count { -// btree.remove(&(i as u32)); -// } -// }) -// } - -// #[bench(raw)] -// pub fn btreemap_10mib_values_get_v2() -> 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_fn(|| { -// for i in 0..count { -// btree.get(&(i as u32)); -// } -// }) -// } - -// #[bench(raw)] -// pub fn btreemap_10mib_values_contains_key_v2() -> 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_fn(|| { -// for i in 0..count { -// btree.contains_key(&(i as u32)); -// } -// }) -// } - -// // Read a range of entries but only process the key of each entry. -// #[bench(raw)] -// pub fn btreemap_read_keys_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]); -// } - -// 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]); -// } - -// bench_fn(|| { -// btree -// .range((Bound::Included(0), Bound::Included(size))) -// .filter(|entry| entry.0 % 3 == 0) -// .map(|entry| entry.1.len()) -// .sum::() -// }) -// } - -// #[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![]); -// } - -// bench_fn(|| { -// btree -// .range((Bound::Included(0), Bound::Included(size))) -// .count(); -// }) -// } - -// #[bench(raw)] -// pub fn btreemap_iter_count_10mib_values() -> BenchResult { -// 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]); -// } - -// bench_fn(|| { -// btree -// .range((Bound::Included(0), Bound::Included(size))) -// .count(); -// }) -// } From 7e57fe432529c1da30264bd05955e635c9756caf Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 14:26:53 +0200 Subject: [PATCH 18/68] read_and_pop --- benchmarks/src/btreemap.rs | 223 ++++++++++++++++++++++++++++++++++++- 1 file changed, 219 insertions(+), 4 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index 79c58955..424c3a50 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -153,7 +153,6 @@ bench_tests! { btreemap_insert_vec_512_u64_v2_mem_manager, insert_helper_v2_mem_manager, FixedVec512, u64; } -// 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) @@ -284,7 +283,6 @@ bench_tests! { btreemap_remove_vec_512_u64_v2_mem_manager, remove_helper_v2_mem_manager, FixedVec512, u64; } -// 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) @@ -301,6 +299,7 @@ fn remove_helper_v2_mem_manager() -> BenchResult { remove_helper::(btree) } +// 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); @@ -421,7 +420,6 @@ bench_tests! { btreemap_get_vec_512_u64_v2_mem_manager, get_helper_v2_mem_manager, FixedVec512, u64; } -// 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) @@ -438,6 +436,7 @@ fn get_helper_v2_mem_manager() -> BenchResult { get_helper::(btree) } +// 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); @@ -558,7 +557,6 @@ bench_tests! { btreemap_contains_vec_512_u64_v2_mem_manager, contains_helper_v2_mem_manager, FixedVec512, u64; } -// Profiles `contains_key` on a large number of random blobs from a btreemap. fn contains_helper_v1() -> BenchResult { let btree = BTreeMap::new_v1(DefaultMemoryImpl::default()); contains_helper::(btree) @@ -575,6 +573,7 @@ fn contains_helper_v2_mem_manager() -> BenchResult { contains_helper::(btree) } +// Profiles `contains_key` on a large number of random blobs from a btreemap. fn contains_helper( mut btree: BTreeMap, ) -> BenchResult { @@ -762,3 +761,219 @@ fn range_count_helper_v2(count: usize, size: usize) -> BenchResult { .count() }) } + +// First +bench_tests! { + // === V1 === + + // V1 blob K x 1024 + btreemap_read_and_pop_first_blob_4_1024_v1, read_and_pop_first_helper_v1, Blob4, Blob1024; + btreemap_read_and_pop_first_blob_8_1024_v1, read_and_pop_first_helper_v1, Blob8, Blob1024; + btreemap_read_and_pop_first_blob_16_1024_v1, read_and_pop_first_helper_v1, Blob16, Blob1024; + btreemap_read_and_pop_first_blob_32_1024_v1, read_and_pop_first_helper_v1, Blob32, Blob1024; + btreemap_read_and_pop_first_blob_64_1024_v1, read_and_pop_first_helper_v1, Blob64, Blob1024; + btreemap_read_and_pop_first_blob_128_1024_v1, read_and_pop_first_helper_v1, Blob128, Blob1024; + btreemap_read_and_pop_first_blob_256_1024_v1, read_and_pop_first_helper_v1, Blob256, Blob1024; + btreemap_read_and_pop_first_blob_512_1024_v1, read_and_pop_first_helper_v1, Blob512, Blob1024; + + // V1 blob 1024 x V + btreemap_read_and_pop_first_blob_1024_4_v1, read_and_pop_first_helper_v1, Blob1024, Blob4; + btreemap_read_and_pop_first_blob_1024_8_v1, read_and_pop_first_helper_v1, Blob1024, Blob8; + btreemap_read_and_pop_first_blob_1024_16_v1, read_and_pop_first_helper_v1, Blob1024, Blob16; + btreemap_read_and_pop_first_blob_1024_32_v1, read_and_pop_first_helper_v1, Blob1024, Blob32; + btreemap_read_and_pop_first_blob_1024_64_v1, read_and_pop_first_helper_v1, Blob1024, Blob64; + btreemap_read_and_pop_first_blob_1024_128_v1, read_and_pop_first_helper_v1, Blob1024, Blob128; + btreemap_read_and_pop_first_blob_1024_256_v1, read_and_pop_first_helper_v1, Blob1024, Blob256; + btreemap_read_and_pop_first_blob_1024_512_v1, read_and_pop_first_helper_v1, Blob1024, Blob512; + + // V1 u64 / blob8 + btreemap_read_and_pop_first_u64_u64_v1, read_and_pop_first_helper_v1, u64, u64; + btreemap_read_and_pop_first_u64_blob_8_v1, read_and_pop_first_helper_v1, u64, Blob8; + btreemap_read_and_pop_first_blob_8_u64_v1, read_and_pop_first_helper_v1, Blob8, u64; + + // === V2 === + + // V2 blob K x 1024 + btreemap_read_and_pop_first_blob_4_1024_v2, read_and_pop_first_helper_v2, Blob4, Blob1024; + btreemap_read_and_pop_first_blob_8_1024_v2, read_and_pop_first_helper_v2, Blob8, Blob1024; + btreemap_read_and_pop_first_blob_16_1024_v2, read_and_pop_first_helper_v2, Blob16, Blob1024; + btreemap_read_and_pop_first_blob_32_1024_v2, read_and_pop_first_helper_v2, Blob32, Blob1024; + btreemap_read_and_pop_first_blob_64_1024_v2, read_and_pop_first_helper_v2, Blob64, Blob1024; + btreemap_read_and_pop_first_blob_128_1024_v2, read_and_pop_first_helper_v2, Blob128, Blob1024; + btreemap_read_and_pop_first_blob_256_1024_v2, read_and_pop_first_helper_v2, Blob256, Blob1024; + btreemap_read_and_pop_first_blob_512_1024_v2, read_and_pop_first_helper_v2, Blob512, Blob1024; + + // V2 blob 1024 x V + btreemap_read_and_pop_first_blob_1024_4_v2, read_and_pop_first_helper_v2, Blob1024, Blob4; + btreemap_read_and_pop_first_blob_1024_8_v2, read_and_pop_first_helper_v2, Blob1024, Blob8; + btreemap_read_and_pop_first_blob_1024_16_v2, read_and_pop_first_helper_v2, Blob1024, Blob16; + btreemap_read_and_pop_first_blob_1024_32_v2, read_and_pop_first_helper_v2, Blob1024, Blob32; + btreemap_read_and_pop_first_blob_1024_64_v2, read_and_pop_first_helper_v2, Blob1024, Blob64; + btreemap_read_and_pop_first_blob_1024_128_v2, read_and_pop_first_helper_v2, Blob1024, Blob128; + btreemap_read_and_pop_first_blob_1024_256_v2, read_and_pop_first_helper_v2, Blob1024, Blob256; + btreemap_read_and_pop_first_blob_1024_512_v2, read_and_pop_first_helper_v2, Blob1024, Blob512; + + // V2 vec K x 1024 + btreemap_read_and_pop_first_vec_4_1024_v2, read_and_pop_first_helper_v2, FixedVec4, FixedVec1024; + btreemap_read_and_pop_first_vec_8_1024_v2, read_and_pop_first_helper_v2, FixedVec8, FixedVec1024; + btreemap_read_and_pop_first_vec_16_1024_v2, read_and_pop_first_helper_v2, FixedVec16, FixedVec1024; + btreemap_read_and_pop_first_vec_32_1024_v2, read_and_pop_first_helper_v2, FixedVec32, FixedVec1024; + btreemap_read_and_pop_first_vec_64_1024_v2, read_and_pop_first_helper_v2, FixedVec64, FixedVec1024; + btreemap_read_and_pop_first_vec_128_1024_v2, read_and_pop_first_helper_v2, FixedVec128, FixedVec1024; + btreemap_read_and_pop_first_vec_256_1024_v2, read_and_pop_first_helper_v2, FixedVec256, FixedVec1024; + btreemap_read_and_pop_first_vec_512_1024_v2, read_and_pop_first_helper_v2, FixedVec512, FixedVec1024; + + // V2 vec 1024 x V + btreemap_read_and_pop_first_vec_1024_4_v2, read_and_pop_first_helper_v2, FixedVec1024, FixedVec4; + btreemap_read_and_pop_first_vec_1024_8_v2, read_and_pop_first_helper_v2, FixedVec1024, FixedVec8; + btreemap_read_and_pop_first_vec_1024_16_v2, read_and_pop_first_helper_v2, FixedVec1024, FixedVec16; + btreemap_read_and_pop_first_vec_1024_32_v2, read_and_pop_first_helper_v2, FixedVec1024, FixedVec32; + btreemap_read_and_pop_first_vec_1024_64_v2, read_and_pop_first_helper_v2, FixedVec1024, FixedVec64; + btreemap_read_and_pop_first_vec_1024_128_v2, read_and_pop_first_helper_v2, FixedVec1024, FixedVec128; + btreemap_read_and_pop_first_vec_1024_256_v2, read_and_pop_first_helper_v2, FixedVec1024, FixedVec256; + btreemap_read_and_pop_first_vec_1024_512_v2, read_and_pop_first_helper_v2, FixedVec1024, FixedVec512; + + // V2 u64 / blob8 / vec8 + btreemap_read_and_pop_first_u64_u64_v2, read_and_pop_first_helper_v2, u64, u64; + btreemap_read_and_pop_first_u64_blob_8_v2, read_and_pop_first_helper_v2, u64, Blob8; + btreemap_read_and_pop_first_blob_8_u64_v2, read_and_pop_first_helper_v2, Blob8, u64; + btreemap_read_and_pop_first_u64_vec_8_v2, read_and_pop_first_helper_v2, u64, FixedVec8; + btreemap_read_and_pop_first_vec_8_u64_v2, read_and_pop_first_helper_v2, FixedVec8, u64; +} + +// Last +bench_tests! { + // === V1 === + + // V1 blob K x 1024 + btreemap_read_and_pop_last_blob_4_1024_v1, read_and_pop_last_helper_v1, Blob4, Blob1024; + btreemap_read_and_pop_last_blob_8_1024_v1, read_and_pop_last_helper_v1, Blob8, Blob1024; + btreemap_read_and_pop_last_blob_16_1024_v1, read_and_pop_last_helper_v1, Blob16, Blob1024; + btreemap_read_and_pop_last_blob_32_1024_v1, read_and_pop_last_helper_v1, Blob32, Blob1024; + btreemap_read_and_pop_last_blob_64_1024_v1, read_and_pop_last_helper_v1, Blob64, Blob1024; + btreemap_read_and_pop_last_blob_128_1024_v1, read_and_pop_last_helper_v1, Blob128, Blob1024; + btreemap_read_and_pop_last_blob_256_1024_v1, read_and_pop_last_helper_v1, Blob256, Blob1024; + btreemap_read_and_pop_last_blob_512_1024_v1, read_and_pop_last_helper_v1, Blob512, Blob1024; + + // V1 blob 1024 x V + btreemap_read_and_pop_last_blob_1024_4_v1, read_and_pop_last_helper_v1, Blob1024, Blob4; + btreemap_read_and_pop_last_blob_1024_8_v1, read_and_pop_last_helper_v1, Blob1024, Blob8; + btreemap_read_and_pop_last_blob_1024_16_v1, read_and_pop_last_helper_v1, Blob1024, Blob16; + btreemap_read_and_pop_last_blob_1024_32_v1, read_and_pop_last_helper_v1, Blob1024, Blob32; + btreemap_read_and_pop_last_blob_1024_64_v1, read_and_pop_last_helper_v1, Blob1024, Blob64; + btreemap_read_and_pop_last_blob_1024_128_v1, read_and_pop_last_helper_v1, Blob1024, Blob128; + btreemap_read_and_pop_last_blob_1024_256_v1, read_and_pop_last_helper_v1, Blob1024, Blob256; + btreemap_read_and_pop_last_blob_1024_512_v1, read_and_pop_last_helper_v1, Blob1024, Blob512; + + // V1 u64 / blob8 + btreemap_read_and_pop_last_u64_u64_v1, read_and_pop_last_helper_v1, u64, u64; + btreemap_read_and_pop_last_u64_blob_8_v1, read_and_pop_last_helper_v1, u64, Blob8; + btreemap_read_and_pop_last_blob_8_u64_v1, read_and_pop_last_helper_v1, Blob8, u64; + + // === V2 === + + // V2 blob K x 1024 + btreemap_read_and_pop_last_blob_4_1024_v2, read_and_pop_last_helper_v2, Blob4, Blob1024; + btreemap_read_and_pop_last_blob_8_1024_v2, read_and_pop_last_helper_v2, Blob8, Blob1024; + btreemap_read_and_pop_last_blob_16_1024_v2, read_and_pop_last_helper_v2, Blob16, Blob1024; + btreemap_read_and_pop_last_blob_32_1024_v2, read_and_pop_last_helper_v2, Blob32, Blob1024; + btreemap_read_and_pop_last_blob_64_1024_v2, read_and_pop_last_helper_v2, Blob64, Blob1024; + btreemap_read_and_pop_last_blob_128_1024_v2, read_and_pop_last_helper_v2, Blob128, Blob1024; + btreemap_read_and_pop_last_blob_256_1024_v2, read_and_pop_last_helper_v2, Blob256, Blob1024; + btreemap_read_and_pop_last_blob_512_1024_v2, read_and_pop_last_helper_v2, Blob512, Blob1024; + + // V2 blob 1024 x V + btreemap_read_and_pop_last_blob_1024_4_v2, read_and_pop_last_helper_v2, Blob1024, Blob4; + btreemap_read_and_pop_last_blob_1024_8_v2, read_and_pop_last_helper_v2, Blob1024, Blob8; + btreemap_read_and_pop_last_blob_1024_16_v2, read_and_pop_last_helper_v2, Blob1024, Blob16; + btreemap_read_and_pop_last_blob_1024_32_v2, read_and_pop_last_helper_v2, Blob1024, Blob32; + btreemap_read_and_pop_last_blob_1024_64_v2, read_and_pop_last_helper_v2, Blob1024, Blob64; + btreemap_read_and_pop_last_blob_1024_128_v2, read_and_pop_last_helper_v2, Blob1024, Blob128; + btreemap_read_and_pop_last_blob_1024_256_v2, read_and_pop_last_helper_v2, Blob1024, Blob256; + btreemap_read_and_pop_last_blob_1024_512_v2, read_and_pop_last_helper_v2, Blob1024, Blob512; + + // V2 vec K x 1024 + btreemap_read_and_pop_last_vec_4_1024_v2, read_and_pop_last_helper_v2, FixedVec4, FixedVec1024; + btreemap_read_and_pop_last_vec_8_1024_v2, read_and_pop_last_helper_v2, FixedVec8, FixedVec1024; + btreemap_read_and_pop_last_vec_16_1024_v2, read_and_pop_last_helper_v2, FixedVec16, FixedVec1024; + btreemap_read_and_pop_last_vec_32_1024_v2, read_and_pop_last_helper_v2, FixedVec32, FixedVec1024; + btreemap_read_and_pop_last_vec_64_1024_v2, read_and_pop_last_helper_v2, FixedVec64, FixedVec1024; + btreemap_read_and_pop_last_vec_128_1024_v2, read_and_pop_last_helper_v2, FixedVec128, FixedVec1024; + btreemap_read_and_pop_last_vec_256_1024_v2, read_and_pop_last_helper_v2, FixedVec256, FixedVec1024; + btreemap_read_and_pop_last_vec_512_1024_v2, read_and_pop_last_helper_v2, FixedVec512, FixedVec1024; + + // V2 vec 1024 x V + btreemap_read_and_pop_last_vec_1024_4_v2, read_and_pop_last_helper_v2, FixedVec1024, FixedVec4; + btreemap_read_and_pop_last_vec_1024_8_v2, read_and_pop_last_helper_v2, FixedVec1024, FixedVec8; + btreemap_read_and_pop_last_vec_1024_16_v2, read_and_pop_last_helper_v2, FixedVec1024, FixedVec16; + btreemap_read_and_pop_last_vec_1024_32_v2, read_and_pop_last_helper_v2, FixedVec1024, FixedVec32; + btreemap_read_and_pop_last_vec_1024_64_v2, read_and_pop_last_helper_v2, FixedVec1024, FixedVec64; + btreemap_read_and_pop_last_vec_1024_128_v2, read_and_pop_last_helper_v2, FixedVec1024, FixedVec128; + btreemap_read_and_pop_last_vec_1024_256_v2, read_and_pop_last_helper_v2, FixedVec1024, FixedVec256; + btreemap_read_and_pop_last_vec_1024_512_v2, read_and_pop_last_helper_v2, FixedVec1024, FixedVec512; + + // V2 u64 / blob8 / vec8 + btreemap_read_and_pop_last_u64_u64_v2, read_and_pop_last_helper_v2, u64, u64; + btreemap_read_and_pop_last_u64_blob_8_v2, read_and_pop_last_helper_v2, u64, Blob8; + btreemap_read_and_pop_last_blob_8_u64_v2, read_and_pop_last_helper_v2, Blob8, u64; + btreemap_read_and_pop_last_u64_vec_8_v2, read_and_pop_last_helper_v2, u64, FixedVec8; + btreemap_read_and_pop_last_vec_8_u64_v2, read_and_pop_last_helper_v2, FixedVec8, u64; +} + +fn read_and_pop_first_helper_v1() -> BenchResult { + read_and_pop_helper_v1::(Position::First) +} + +fn read_and_pop_last_helper_v1() -> BenchResult { + read_and_pop_helper_v1::(Position::Last) +} + +fn read_and_pop_first_helper_v2() -> BenchResult { + read_and_pop_helper_v2::(Position::First) +} + +fn read_and_pop_last_helper_v2() -> BenchResult { + read_and_pop_helper_v2::(Position::Last) +} + +fn read_and_pop_helper_v1(position: Position) -> BenchResult { + let btree = BTreeMap::new_v1(DefaultMemoryImpl::default()); + read_and_pop_helper::(btree, position) +} + +fn read_and_pop_helper_v2(position: Position) -> BenchResult { + let btree = BTreeMap::new(DefaultMemoryImpl::default()); + read_and_pop_helper::(btree, position) +} + +enum Position { + First, + Last, +} + +fn read_and_pop_helper( + mut btree: BTreeMap, + position: Position, +) -> 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_fn(|| { + for _ in 0..count { + match position { + Position::First => { + btree.first_key_value(); + btree.pop_first(); + } + Position::Last => { + btree.last_key_value(); + btree.pop_last(); + } + }; + } + }) +} From b6c779b1aa2111a0bf0b91d5460dbbc910c3ec09 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 14:30:10 +0200 Subject: [PATCH 19/68] . --- benchmarks/src/btreemap.rs | 42 +++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index 424c3a50..017e079c 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -631,29 +631,33 @@ macro_rules! bench_traversal_tests { } bench_traversal_tests! { + // === V1 === + // V1 does not support unbounded types, eg. Vec<_>. + + // === V2 === // Small values - btreemap_scan_iter_small, traverse_helper, 1_000, 0, TraversalMode::Iter; - btreemap_scan_iter_rev_small, traverse_helper, 1_000, 0, TraversalMode::IterRev; - btreemap_scan_keys_small, traverse_helper, 1_000, 0, TraversalMode::Keys; - btreemap_scan_keys_rev_small, traverse_helper, 1_000, 0, TraversalMode::KeysRev; - btreemap_scan_values_small, traverse_helper, 1_000, 0, TraversalMode::Values; - btreemap_scan_values_rev_small, traverse_helper, 1_000, 0, TraversalMode::ValuesRev; + btreemap_scan_iter_small_v2, traverse_helper_v2, 1_000, 0, TraversalMode::Iter; + btreemap_scan_iter_rev_small_v2, traverse_helper_v2, 1_000, 0, TraversalMode::IterRev; + btreemap_scan_keys_small_v2, traverse_helper_v2, 1_000, 0, TraversalMode::Keys; + btreemap_scan_keys_rev_small_v2, traverse_helper_v2, 1_000, 0, TraversalMode::KeysRev; + btreemap_scan_values_small_v2, traverse_helper_v2, 1_000, 0, TraversalMode::Values; + btreemap_scan_values_rev_small_v2, traverse_helper_v2, 1_000, 0, TraversalMode::ValuesRev; // Medium values - btreemap_scan_iter_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::Iter; - btreemap_scan_iter_rev_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::IterRev; - btreemap_scan_keys_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::Keys; - btreemap_scan_keys_rev_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::KeysRev; - btreemap_scan_values_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::Values; - btreemap_scan_values_rev_medium, traverse_helper, 1_000, 10 * KiB, TraversalMode::ValuesRev; + btreemap_scan_iter_medium_v2, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::Iter; + btreemap_scan_iter_rev_medium_v2, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::IterRev; + btreemap_scan_keys_medium_v2, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::Keys; + btreemap_scan_keys_rev_medium_v2, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::KeysRev; + btreemap_scan_values_medium_v2, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::Values; + btreemap_scan_values_rev_medium_v2, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::ValuesRev; // Large values - btreemap_scan_iter_large, traverse_helper, 20, 10 * MiB, TraversalMode::Iter; - btreemap_scan_iter_rev_large, traverse_helper, 20, 10 * MiB, TraversalMode::IterRev; - btreemap_scan_keys_large, traverse_helper, 20, 10 * MiB, TraversalMode::Keys; - btreemap_scan_keys_rev_large, traverse_helper, 20, 10 * MiB, TraversalMode::KeysRev; - btreemap_scan_values_large, traverse_helper, 20, 10 * MiB, TraversalMode::Values; - btreemap_scan_values_rev_large, traverse_helper, 20, 10 * MiB, TraversalMode::ValuesRev; + btreemap_scan_iter_large_v2, traverse_helper_v2, 20, 10 * MiB, TraversalMode::Iter; + btreemap_scan_iter_rev_large_v2, traverse_helper_v2, 20, 10 * MiB, TraversalMode::IterRev; + btreemap_scan_keys_large_v2, traverse_helper_v2, 20, 10 * MiB, TraversalMode::Keys; + btreemap_scan_keys_rev_large_v2, traverse_helper_v2, 20, 10 * MiB, TraversalMode::KeysRev; + btreemap_scan_values_large_v2, traverse_helper_v2, 20, 10 * MiB, TraversalMode::Values; + btreemap_scan_values_rev_large_v2, traverse_helper_v2, 20, 10 * MiB, TraversalMode::ValuesRev; } enum TraversalMode { @@ -666,7 +670,7 @@ enum TraversalMode { } /// Benchmarks BTreeMap traversal for the given traversal mode. -fn traverse_helper(count: u32, value_size: usize, traversal_mode: TraversalMode) -> BenchResult { +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]); From 26d4be2d3505efd1e77870b457811ca9ab8b60f7 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 14:42:41 +0200 Subject: [PATCH 20/68] only pop, no read+pop --- benchmarks/src/btreemap.rs | 324 ++++++++++++++++++------------------- 1 file changed, 159 insertions(+), 165 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index 017e079c..8383ad5e 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -635,29 +635,29 @@ bench_traversal_tests! { // V1 does not support unbounded types, eg. Vec<_>. // === V2 === - // Small values - btreemap_scan_iter_small_v2, traverse_helper_v2, 1_000, 0, TraversalMode::Iter; - btreemap_scan_iter_rev_small_v2, traverse_helper_v2, 1_000, 0, TraversalMode::IterRev; - btreemap_scan_keys_small_v2, traverse_helper_v2, 1_000, 0, TraversalMode::Keys; - btreemap_scan_keys_rev_small_v2, traverse_helper_v2, 1_000, 0, TraversalMode::KeysRev; - btreemap_scan_values_small_v2, traverse_helper_v2, 1_000, 0, TraversalMode::Values; - btreemap_scan_values_rev_small_v2, traverse_helper_v2, 1_000, 0, TraversalMode::ValuesRev; - - // Medium values - btreemap_scan_iter_medium_v2, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::Iter; - btreemap_scan_iter_rev_medium_v2, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::IterRev; - btreemap_scan_keys_medium_v2, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::Keys; - btreemap_scan_keys_rev_medium_v2, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::KeysRev; - btreemap_scan_values_medium_v2, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::Values; - btreemap_scan_values_rev_medium_v2, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::ValuesRev; - - // Large values - btreemap_scan_iter_large_v2, traverse_helper_v2, 20, 10 * MiB, TraversalMode::Iter; - btreemap_scan_iter_rev_large_v2, traverse_helper_v2, 20, 10 * MiB, TraversalMode::IterRev; - btreemap_scan_keys_large_v2, traverse_helper_v2, 20, 10 * MiB, TraversalMode::Keys; - btreemap_scan_keys_rev_large_v2, traverse_helper_v2, 20, 10 * MiB, TraversalMode::KeysRev; - btreemap_scan_values_large_v2, traverse_helper_v2, 20, 10 * MiB, TraversalMode::Values; - btreemap_scan_values_rev_large_v2, traverse_helper_v2, 20, 10 * MiB, TraversalMode::ValuesRev; + // 1k items of 0 bytes + btreemap_scan_iter_1k_0b_v2, traverse_helper_v2, 1_000, 0, TraversalMode::Iter; + btreemap_scan_iter_rev_1k_0b_v2, traverse_helper_v2, 1_000, 0, TraversalMode::IterRev; + btreemap_scan_keys_1k_0b_v2, traverse_helper_v2, 1_000, 0, TraversalMode::Keys; + btreemap_scan_keys_rev_1k_0b_v2, traverse_helper_v2, 1_000, 0, TraversalMode::KeysRev; + btreemap_scan_values_1k_0b_v2, traverse_helper_v2, 1_000, 0, TraversalMode::Values; + btreemap_scan_values_rev_1k_0b_v2, traverse_helper_v2, 1_000, 0, TraversalMode::ValuesRev; + + // 1k items of 10 KiB + btreemap_scan_iter_1k_10kib_v2, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::Iter; + btreemap_scan_iter_rev_1k_10kib_v2, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::IterRev; + btreemap_scan_keys_1k_10kib_v2, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::Keys; + btreemap_scan_keys_rev_1k_10kib_v2, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::KeysRev; + btreemap_scan_values_1k_10kib_v2, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::Values; + btreemap_scan_values_rev_1k_10kib_v2, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::ValuesRev; + + // 20 items of 10 MiB + btreemap_scan_iter_20_10mib_v2, traverse_helper_v2, 20, 10 * MiB, TraversalMode::Iter; + btreemap_scan_iter_rev_20_10mib_v2, traverse_helper_v2, 20, 10 * MiB, TraversalMode::IterRev; + btreemap_scan_keys_20_10mib_v2, traverse_helper_v2, 20, 10 * MiB, TraversalMode::Keys; + btreemap_scan_keys_rev_20_10mib_v2, traverse_helper_v2, 20, 10 * MiB, TraversalMode::KeysRev; + btreemap_scan_values_20_10mib_v2, traverse_helper_v2, 20, 10 * MiB, TraversalMode::Values; + btreemap_scan_values_rev_20_10mib_v2, traverse_helper_v2, 20, 10 * MiB, TraversalMode::ValuesRev; } enum TraversalMode { @@ -703,17 +703,17 @@ bench_range_tests! { // V1 does not support unbounded types, eg. Vec<_>. // === V2 === - btreemap_range_key_sum_small_v2, range_key_sum_helper_v2, 1_000, 0; - btreemap_range_key_sum_medium_v2, range_key_sum_helper_v2, 1_000, 10 * KiB; - btreemap_range_key_sum_large_v2, range_key_sum_helper_v2, 20, 10 * MiB; + btreemap_range_key_sum_1k_0b_v2, range_key_sum_helper_v2, 1_000, 0; + btreemap_range_key_sum_1k_10kib_v2, range_key_sum_helper_v2, 1_000, 10 * KiB; + btreemap_range_key_sum_20_10mib_v2, range_key_sum_helper_v2, 20, 10 * MiB; - btreemap_range_value_sum_small_v2, range_value_sum_helper_v2, 1_000, 0; - btreemap_range_value_sum_medium_v2, range_value_sum_helper_v2, 1_000, 10 * KiB; - btreemap_range_value_sum_large_v2, range_value_sum_helper_v2, 20, 10 * MiB; + btreemap_range_value_sum_1k_0b_v2, range_value_sum_helper_v2, 1_000, 0; + btreemap_range_value_sum_1k_10kib_v2, range_value_sum_helper_v2, 1_000, 10 * KiB; + btreemap_range_value_sum_20_10mib_v2, range_value_sum_helper_v2, 20, 10 * MiB; - btreemap_range_count_small_v2, range_count_helper_v2, 1_000, 0; - btreemap_range_count_medium_v2, range_count_helper_v2, 1_000, 10 * KiB; - btreemap_range_count_large_v2, range_count_helper_v2, 20, 10 * MiB; + btreemap_range_count_1k_0b_v2, range_count_helper_v2, 1_000, 0; + btreemap_range_count_1k_10kib_v2, range_count_helper_v2, 1_000, 10 * KiB; + btreemap_range_count_20_10mib_v2, range_count_helper_v2, 20, 10 * MiB; } fn range_key_sum_helper_v2(count: usize, size: usize) -> BenchResult { @@ -771,78 +771,78 @@ bench_tests! { // === V1 === // V1 blob K x 1024 - btreemap_read_and_pop_first_blob_4_1024_v1, read_and_pop_first_helper_v1, Blob4, Blob1024; - btreemap_read_and_pop_first_blob_8_1024_v1, read_and_pop_first_helper_v1, Blob8, Blob1024; - btreemap_read_and_pop_first_blob_16_1024_v1, read_and_pop_first_helper_v1, Blob16, Blob1024; - btreemap_read_and_pop_first_blob_32_1024_v1, read_and_pop_first_helper_v1, Blob32, Blob1024; - btreemap_read_and_pop_first_blob_64_1024_v1, read_and_pop_first_helper_v1, Blob64, Blob1024; - btreemap_read_and_pop_first_blob_128_1024_v1, read_and_pop_first_helper_v1, Blob128, Blob1024; - btreemap_read_and_pop_first_blob_256_1024_v1, read_and_pop_first_helper_v1, Blob256, Blob1024; - btreemap_read_and_pop_first_blob_512_1024_v1, read_and_pop_first_helper_v1, Blob512, Blob1024; + btreemap_pop_first_blob_4_1024_v1, pop_first_helper_v1, Blob4, Blob1024; + btreemap_pop_first_blob_8_1024_v1, pop_first_helper_v1, Blob8, Blob1024; + btreemap_pop_first_blob_16_1024_v1, pop_first_helper_v1, Blob16, Blob1024; + btreemap_pop_first_blob_32_1024_v1, pop_first_helper_v1, Blob32, Blob1024; + btreemap_pop_first_blob_64_1024_v1, pop_first_helper_v1, Blob64, Blob1024; + btreemap_pop_first_blob_128_1024_v1, pop_first_helper_v1, Blob128, Blob1024; + btreemap_pop_first_blob_256_1024_v1, pop_first_helper_v1, Blob256, Blob1024; + btreemap_pop_first_blob_512_1024_v1, pop_first_helper_v1, Blob512, Blob1024; // V1 blob 1024 x V - btreemap_read_and_pop_first_blob_1024_4_v1, read_and_pop_first_helper_v1, Blob1024, Blob4; - btreemap_read_and_pop_first_blob_1024_8_v1, read_and_pop_first_helper_v1, Blob1024, Blob8; - btreemap_read_and_pop_first_blob_1024_16_v1, read_and_pop_first_helper_v1, Blob1024, Blob16; - btreemap_read_and_pop_first_blob_1024_32_v1, read_and_pop_first_helper_v1, Blob1024, Blob32; - btreemap_read_and_pop_first_blob_1024_64_v1, read_and_pop_first_helper_v1, Blob1024, Blob64; - btreemap_read_and_pop_first_blob_1024_128_v1, read_and_pop_first_helper_v1, Blob1024, Blob128; - btreemap_read_and_pop_first_blob_1024_256_v1, read_and_pop_first_helper_v1, Blob1024, Blob256; - btreemap_read_and_pop_first_blob_1024_512_v1, read_and_pop_first_helper_v1, Blob1024, Blob512; + btreemap_pop_first_blob_1024_4_v1, pop_first_helper_v1, Blob1024, Blob4; + btreemap_pop_first_blob_1024_8_v1, pop_first_helper_v1, Blob1024, Blob8; + btreemap_pop_first_blob_1024_16_v1, pop_first_helper_v1, Blob1024, Blob16; + btreemap_pop_first_blob_1024_32_v1, pop_first_helper_v1, Blob1024, Blob32; + btreemap_pop_first_blob_1024_64_v1, pop_first_helper_v1, Blob1024, Blob64; + btreemap_pop_first_blob_1024_128_v1, pop_first_helper_v1, Blob1024, Blob128; + btreemap_pop_first_blob_1024_256_v1, pop_first_helper_v1, Blob1024, Blob256; + btreemap_pop_first_blob_1024_512_v1, pop_first_helper_v1, Blob1024, Blob512; // V1 u64 / blob8 - btreemap_read_and_pop_first_u64_u64_v1, read_and_pop_first_helper_v1, u64, u64; - btreemap_read_and_pop_first_u64_blob_8_v1, read_and_pop_first_helper_v1, u64, Blob8; - btreemap_read_and_pop_first_blob_8_u64_v1, read_and_pop_first_helper_v1, Blob8, u64; + btreemap_pop_first_u64_u64_v1, pop_first_helper_v1, u64, u64; + btreemap_pop_first_u64_blob_8_v1, pop_first_helper_v1, u64, Blob8; + btreemap_pop_first_blob_8_u64_v1, pop_first_helper_v1, Blob8, u64; // === V2 === // V2 blob K x 1024 - btreemap_read_and_pop_first_blob_4_1024_v2, read_and_pop_first_helper_v2, Blob4, Blob1024; - btreemap_read_and_pop_first_blob_8_1024_v2, read_and_pop_first_helper_v2, Blob8, Blob1024; - btreemap_read_and_pop_first_blob_16_1024_v2, read_and_pop_first_helper_v2, Blob16, Blob1024; - btreemap_read_and_pop_first_blob_32_1024_v2, read_and_pop_first_helper_v2, Blob32, Blob1024; - btreemap_read_and_pop_first_blob_64_1024_v2, read_and_pop_first_helper_v2, Blob64, Blob1024; - btreemap_read_and_pop_first_blob_128_1024_v2, read_and_pop_first_helper_v2, Blob128, Blob1024; - btreemap_read_and_pop_first_blob_256_1024_v2, read_and_pop_first_helper_v2, Blob256, Blob1024; - btreemap_read_and_pop_first_blob_512_1024_v2, read_and_pop_first_helper_v2, Blob512, Blob1024; + btreemap_pop_first_blob_4_1024_v2, pop_first_helper_v2, Blob4, Blob1024; + btreemap_pop_first_blob_8_1024_v2, pop_first_helper_v2, Blob8, Blob1024; + btreemap_pop_first_blob_16_1024_v2, pop_first_helper_v2, Blob16, Blob1024; + btreemap_pop_first_blob_32_1024_v2, pop_first_helper_v2, Blob32, Blob1024; + btreemap_pop_first_blob_64_1024_v2, pop_first_helper_v2, Blob64, Blob1024; + btreemap_pop_first_blob_128_1024_v2, pop_first_helper_v2, Blob128, Blob1024; + btreemap_pop_first_blob_256_1024_v2, pop_first_helper_v2, Blob256, Blob1024; + btreemap_pop_first_blob_512_1024_v2, pop_first_helper_v2, Blob512, Blob1024; // V2 blob 1024 x V - btreemap_read_and_pop_first_blob_1024_4_v2, read_and_pop_first_helper_v2, Blob1024, Blob4; - btreemap_read_and_pop_first_blob_1024_8_v2, read_and_pop_first_helper_v2, Blob1024, Blob8; - btreemap_read_and_pop_first_blob_1024_16_v2, read_and_pop_first_helper_v2, Blob1024, Blob16; - btreemap_read_and_pop_first_blob_1024_32_v2, read_and_pop_first_helper_v2, Blob1024, Blob32; - btreemap_read_and_pop_first_blob_1024_64_v2, read_and_pop_first_helper_v2, Blob1024, Blob64; - btreemap_read_and_pop_first_blob_1024_128_v2, read_and_pop_first_helper_v2, Blob1024, Blob128; - btreemap_read_and_pop_first_blob_1024_256_v2, read_and_pop_first_helper_v2, Blob1024, Blob256; - btreemap_read_and_pop_first_blob_1024_512_v2, read_and_pop_first_helper_v2, Blob1024, Blob512; + btreemap_pop_first_blob_1024_4_v2, pop_first_helper_v2, Blob1024, Blob4; + btreemap_pop_first_blob_1024_8_v2, pop_first_helper_v2, Blob1024, Blob8; + btreemap_pop_first_blob_1024_16_v2, pop_first_helper_v2, Blob1024, Blob16; + btreemap_pop_first_blob_1024_32_v2, pop_first_helper_v2, Blob1024, Blob32; + btreemap_pop_first_blob_1024_64_v2, pop_first_helper_v2, Blob1024, Blob64; + btreemap_pop_first_blob_1024_128_v2, pop_first_helper_v2, Blob1024, Blob128; + btreemap_pop_first_blob_1024_256_v2, pop_first_helper_v2, Blob1024, Blob256; + btreemap_pop_first_blob_1024_512_v2, pop_first_helper_v2, Blob1024, Blob512; // V2 vec K x 1024 - btreemap_read_and_pop_first_vec_4_1024_v2, read_and_pop_first_helper_v2, FixedVec4, FixedVec1024; - btreemap_read_and_pop_first_vec_8_1024_v2, read_and_pop_first_helper_v2, FixedVec8, FixedVec1024; - btreemap_read_and_pop_first_vec_16_1024_v2, read_and_pop_first_helper_v2, FixedVec16, FixedVec1024; - btreemap_read_and_pop_first_vec_32_1024_v2, read_and_pop_first_helper_v2, FixedVec32, FixedVec1024; - btreemap_read_and_pop_first_vec_64_1024_v2, read_and_pop_first_helper_v2, FixedVec64, FixedVec1024; - btreemap_read_and_pop_first_vec_128_1024_v2, read_and_pop_first_helper_v2, FixedVec128, FixedVec1024; - btreemap_read_and_pop_first_vec_256_1024_v2, read_and_pop_first_helper_v2, FixedVec256, FixedVec1024; - btreemap_read_and_pop_first_vec_512_1024_v2, read_and_pop_first_helper_v2, FixedVec512, FixedVec1024; + btreemap_pop_first_vec_4_1024_v2, pop_first_helper_v2, FixedVec4, FixedVec1024; + btreemap_pop_first_vec_8_1024_v2, pop_first_helper_v2, FixedVec8, FixedVec1024; + btreemap_pop_first_vec_16_1024_v2, pop_first_helper_v2, FixedVec16, FixedVec1024; + btreemap_pop_first_vec_32_1024_v2, pop_first_helper_v2, FixedVec32, FixedVec1024; + btreemap_pop_first_vec_64_1024_v2, pop_first_helper_v2, FixedVec64, FixedVec1024; + btreemap_pop_first_vec_128_1024_v2, pop_first_helper_v2, FixedVec128, FixedVec1024; + btreemap_pop_first_vec_256_1024_v2, pop_first_helper_v2, FixedVec256, FixedVec1024; + btreemap_pop_first_vec_512_1024_v2, pop_first_helper_v2, FixedVec512, FixedVec1024; // V2 vec 1024 x V - btreemap_read_and_pop_first_vec_1024_4_v2, read_and_pop_first_helper_v2, FixedVec1024, FixedVec4; - btreemap_read_and_pop_first_vec_1024_8_v2, read_and_pop_first_helper_v2, FixedVec1024, FixedVec8; - btreemap_read_and_pop_first_vec_1024_16_v2, read_and_pop_first_helper_v2, FixedVec1024, FixedVec16; - btreemap_read_and_pop_first_vec_1024_32_v2, read_and_pop_first_helper_v2, FixedVec1024, FixedVec32; - btreemap_read_and_pop_first_vec_1024_64_v2, read_and_pop_first_helper_v2, FixedVec1024, FixedVec64; - btreemap_read_and_pop_first_vec_1024_128_v2, read_and_pop_first_helper_v2, FixedVec1024, FixedVec128; - btreemap_read_and_pop_first_vec_1024_256_v2, read_and_pop_first_helper_v2, FixedVec1024, FixedVec256; - btreemap_read_and_pop_first_vec_1024_512_v2, read_and_pop_first_helper_v2, FixedVec1024, FixedVec512; + btreemap_pop_first_vec_1024_4_v2, pop_first_helper_v2, FixedVec1024, FixedVec4; + btreemap_pop_first_vec_1024_8_v2, pop_first_helper_v2, FixedVec1024, FixedVec8; + btreemap_pop_first_vec_1024_16_v2, pop_first_helper_v2, FixedVec1024, FixedVec16; + btreemap_pop_first_vec_1024_32_v2, pop_first_helper_v2, FixedVec1024, FixedVec32; + btreemap_pop_first_vec_1024_64_v2, pop_first_helper_v2, FixedVec1024, FixedVec64; + btreemap_pop_first_vec_1024_128_v2, pop_first_helper_v2, FixedVec1024, FixedVec128; + btreemap_pop_first_vec_1024_256_v2, pop_first_helper_v2, FixedVec1024, FixedVec256; + btreemap_pop_first_vec_1024_512_v2, pop_first_helper_v2, FixedVec1024, FixedVec512; // V2 u64 / blob8 / vec8 - btreemap_read_and_pop_first_u64_u64_v2, read_and_pop_first_helper_v2, u64, u64; - btreemap_read_and_pop_first_u64_blob_8_v2, read_and_pop_first_helper_v2, u64, Blob8; - btreemap_read_and_pop_first_blob_8_u64_v2, read_and_pop_first_helper_v2, Blob8, u64; - btreemap_read_and_pop_first_u64_vec_8_v2, read_and_pop_first_helper_v2, u64, FixedVec8; - btreemap_read_and_pop_first_vec_8_u64_v2, read_and_pop_first_helper_v2, FixedVec8, u64; + btreemap_pop_first_u64_u64_v2, pop_first_helper_v2, u64, u64; + btreemap_pop_first_u64_blob_8_v2, pop_first_helper_v2, u64, Blob8; + btreemap_pop_first_blob_8_u64_v2, pop_first_helper_v2, Blob8, u64; + btreemap_pop_first_u64_vec_8_v2, pop_first_helper_v2, u64, FixedVec8; + btreemap_pop_first_vec_8_u64_v2, pop_first_helper_v2, FixedVec8, u64; } // Last @@ -850,104 +850,104 @@ bench_tests! { // === V1 === // V1 blob K x 1024 - btreemap_read_and_pop_last_blob_4_1024_v1, read_and_pop_last_helper_v1, Blob4, Blob1024; - btreemap_read_and_pop_last_blob_8_1024_v1, read_and_pop_last_helper_v1, Blob8, Blob1024; - btreemap_read_and_pop_last_blob_16_1024_v1, read_and_pop_last_helper_v1, Blob16, Blob1024; - btreemap_read_and_pop_last_blob_32_1024_v1, read_and_pop_last_helper_v1, Blob32, Blob1024; - btreemap_read_and_pop_last_blob_64_1024_v1, read_and_pop_last_helper_v1, Blob64, Blob1024; - btreemap_read_and_pop_last_blob_128_1024_v1, read_and_pop_last_helper_v1, Blob128, Blob1024; - btreemap_read_and_pop_last_blob_256_1024_v1, read_and_pop_last_helper_v1, Blob256, Blob1024; - btreemap_read_and_pop_last_blob_512_1024_v1, read_and_pop_last_helper_v1, Blob512, Blob1024; + btreemap_pop_last_blob_4_1024_v1, pop_last_helper_v1, Blob4, Blob1024; + btreemap_pop_last_blob_8_1024_v1, pop_last_helper_v1, Blob8, Blob1024; + btreemap_pop_last_blob_16_1024_v1, pop_last_helper_v1, Blob16, Blob1024; + btreemap_pop_last_blob_32_1024_v1, pop_last_helper_v1, Blob32, Blob1024; + btreemap_pop_last_blob_64_1024_v1, pop_last_helper_v1, Blob64, Blob1024; + btreemap_pop_last_blob_128_1024_v1, pop_last_helper_v1, Blob128, Blob1024; + btreemap_pop_last_blob_256_1024_v1, pop_last_helper_v1, Blob256, Blob1024; + btreemap_pop_last_blob_512_1024_v1, pop_last_helper_v1, Blob512, Blob1024; // V1 blob 1024 x V - btreemap_read_and_pop_last_blob_1024_4_v1, read_and_pop_last_helper_v1, Blob1024, Blob4; - btreemap_read_and_pop_last_blob_1024_8_v1, read_and_pop_last_helper_v1, Blob1024, Blob8; - btreemap_read_and_pop_last_blob_1024_16_v1, read_and_pop_last_helper_v1, Blob1024, Blob16; - btreemap_read_and_pop_last_blob_1024_32_v1, read_and_pop_last_helper_v1, Blob1024, Blob32; - btreemap_read_and_pop_last_blob_1024_64_v1, read_and_pop_last_helper_v1, Blob1024, Blob64; - btreemap_read_and_pop_last_blob_1024_128_v1, read_and_pop_last_helper_v1, Blob1024, Blob128; - btreemap_read_and_pop_last_blob_1024_256_v1, read_and_pop_last_helper_v1, Blob1024, Blob256; - btreemap_read_and_pop_last_blob_1024_512_v1, read_and_pop_last_helper_v1, Blob1024, Blob512; + btreemap_pop_last_blob_1024_4_v1, pop_last_helper_v1, Blob1024, Blob4; + btreemap_pop_last_blob_1024_8_v1, pop_last_helper_v1, Blob1024, Blob8; + btreemap_pop_last_blob_1024_16_v1, pop_last_helper_v1, Blob1024, Blob16; + btreemap_pop_last_blob_1024_32_v1, pop_last_helper_v1, Blob1024, Blob32; + btreemap_pop_last_blob_1024_64_v1, pop_last_helper_v1, Blob1024, Blob64; + btreemap_pop_last_blob_1024_128_v1, pop_last_helper_v1, Blob1024, Blob128; + btreemap_pop_last_blob_1024_256_v1, pop_last_helper_v1, Blob1024, Blob256; + btreemap_pop_last_blob_1024_512_v1, pop_last_helper_v1, Blob1024, Blob512; // V1 u64 / blob8 - btreemap_read_and_pop_last_u64_u64_v1, read_and_pop_last_helper_v1, u64, u64; - btreemap_read_and_pop_last_u64_blob_8_v1, read_and_pop_last_helper_v1, u64, Blob8; - btreemap_read_and_pop_last_blob_8_u64_v1, read_and_pop_last_helper_v1, Blob8, u64; + btreemap_pop_last_u64_u64_v1, pop_last_helper_v1, u64, u64; + btreemap_pop_last_u64_blob_8_v1, pop_last_helper_v1, u64, Blob8; + btreemap_pop_last_blob_8_u64_v1, pop_last_helper_v1, Blob8, u64; // === V2 === // V2 blob K x 1024 - btreemap_read_and_pop_last_blob_4_1024_v2, read_and_pop_last_helper_v2, Blob4, Blob1024; - btreemap_read_and_pop_last_blob_8_1024_v2, read_and_pop_last_helper_v2, Blob8, Blob1024; - btreemap_read_and_pop_last_blob_16_1024_v2, read_and_pop_last_helper_v2, Blob16, Blob1024; - btreemap_read_and_pop_last_blob_32_1024_v2, read_and_pop_last_helper_v2, Blob32, Blob1024; - btreemap_read_and_pop_last_blob_64_1024_v2, read_and_pop_last_helper_v2, Blob64, Blob1024; - btreemap_read_and_pop_last_blob_128_1024_v2, read_and_pop_last_helper_v2, Blob128, Blob1024; - btreemap_read_and_pop_last_blob_256_1024_v2, read_and_pop_last_helper_v2, Blob256, Blob1024; - btreemap_read_and_pop_last_blob_512_1024_v2, read_and_pop_last_helper_v2, Blob512, Blob1024; + btreemap_pop_last_blob_4_1024_v2, pop_last_helper_v2, Blob4, Blob1024; + btreemap_pop_last_blob_8_1024_v2, pop_last_helper_v2, Blob8, Blob1024; + btreemap_pop_last_blob_16_1024_v2, pop_last_helper_v2, Blob16, Blob1024; + btreemap_pop_last_blob_32_1024_v2, pop_last_helper_v2, Blob32, Blob1024; + btreemap_pop_last_blob_64_1024_v2, pop_last_helper_v2, Blob64, Blob1024; + btreemap_pop_last_blob_128_1024_v2, pop_last_helper_v2, Blob128, Blob1024; + btreemap_pop_last_blob_256_1024_v2, pop_last_helper_v2, Blob256, Blob1024; + btreemap_pop_last_blob_512_1024_v2, pop_last_helper_v2, Blob512, Blob1024; // V2 blob 1024 x V - btreemap_read_and_pop_last_blob_1024_4_v2, read_and_pop_last_helper_v2, Blob1024, Blob4; - btreemap_read_and_pop_last_blob_1024_8_v2, read_and_pop_last_helper_v2, Blob1024, Blob8; - btreemap_read_and_pop_last_blob_1024_16_v2, read_and_pop_last_helper_v2, Blob1024, Blob16; - btreemap_read_and_pop_last_blob_1024_32_v2, read_and_pop_last_helper_v2, Blob1024, Blob32; - btreemap_read_and_pop_last_blob_1024_64_v2, read_and_pop_last_helper_v2, Blob1024, Blob64; - btreemap_read_and_pop_last_blob_1024_128_v2, read_and_pop_last_helper_v2, Blob1024, Blob128; - btreemap_read_and_pop_last_blob_1024_256_v2, read_and_pop_last_helper_v2, Blob1024, Blob256; - btreemap_read_and_pop_last_blob_1024_512_v2, read_and_pop_last_helper_v2, Blob1024, Blob512; + btreemap_pop_last_blob_1024_4_v2, pop_last_helper_v2, Blob1024, Blob4; + btreemap_pop_last_blob_1024_8_v2, pop_last_helper_v2, Blob1024, Blob8; + btreemap_pop_last_blob_1024_16_v2, pop_last_helper_v2, Blob1024, Blob16; + btreemap_pop_last_blob_1024_32_v2, pop_last_helper_v2, Blob1024, Blob32; + btreemap_pop_last_blob_1024_64_v2, pop_last_helper_v2, Blob1024, Blob64; + btreemap_pop_last_blob_1024_128_v2, pop_last_helper_v2, Blob1024, Blob128; + btreemap_pop_last_blob_1024_256_v2, pop_last_helper_v2, Blob1024, Blob256; + btreemap_pop_last_blob_1024_512_v2, pop_last_helper_v2, Blob1024, Blob512; // V2 vec K x 1024 - btreemap_read_and_pop_last_vec_4_1024_v2, read_and_pop_last_helper_v2, FixedVec4, FixedVec1024; - btreemap_read_and_pop_last_vec_8_1024_v2, read_and_pop_last_helper_v2, FixedVec8, FixedVec1024; - btreemap_read_and_pop_last_vec_16_1024_v2, read_and_pop_last_helper_v2, FixedVec16, FixedVec1024; - btreemap_read_and_pop_last_vec_32_1024_v2, read_and_pop_last_helper_v2, FixedVec32, FixedVec1024; - btreemap_read_and_pop_last_vec_64_1024_v2, read_and_pop_last_helper_v2, FixedVec64, FixedVec1024; - btreemap_read_and_pop_last_vec_128_1024_v2, read_and_pop_last_helper_v2, FixedVec128, FixedVec1024; - btreemap_read_and_pop_last_vec_256_1024_v2, read_and_pop_last_helper_v2, FixedVec256, FixedVec1024; - btreemap_read_and_pop_last_vec_512_1024_v2, read_and_pop_last_helper_v2, FixedVec512, FixedVec1024; + btreemap_pop_last_vec_4_1024_v2, pop_last_helper_v2, FixedVec4, FixedVec1024; + btreemap_pop_last_vec_8_1024_v2, pop_last_helper_v2, FixedVec8, FixedVec1024; + btreemap_pop_last_vec_16_1024_v2, pop_last_helper_v2, FixedVec16, FixedVec1024; + btreemap_pop_last_vec_32_1024_v2, pop_last_helper_v2, FixedVec32, FixedVec1024; + btreemap_pop_last_vec_64_1024_v2, pop_last_helper_v2, FixedVec64, FixedVec1024; + btreemap_pop_last_vec_128_1024_v2, pop_last_helper_v2, FixedVec128, FixedVec1024; + btreemap_pop_last_vec_256_1024_v2, pop_last_helper_v2, FixedVec256, FixedVec1024; + btreemap_pop_last_vec_512_1024_v2, pop_last_helper_v2, FixedVec512, FixedVec1024; // V2 vec 1024 x V - btreemap_read_and_pop_last_vec_1024_4_v2, read_and_pop_last_helper_v2, FixedVec1024, FixedVec4; - btreemap_read_and_pop_last_vec_1024_8_v2, read_and_pop_last_helper_v2, FixedVec1024, FixedVec8; - btreemap_read_and_pop_last_vec_1024_16_v2, read_and_pop_last_helper_v2, FixedVec1024, FixedVec16; - btreemap_read_and_pop_last_vec_1024_32_v2, read_and_pop_last_helper_v2, FixedVec1024, FixedVec32; - btreemap_read_and_pop_last_vec_1024_64_v2, read_and_pop_last_helper_v2, FixedVec1024, FixedVec64; - btreemap_read_and_pop_last_vec_1024_128_v2, read_and_pop_last_helper_v2, FixedVec1024, FixedVec128; - btreemap_read_and_pop_last_vec_1024_256_v2, read_and_pop_last_helper_v2, FixedVec1024, FixedVec256; - btreemap_read_and_pop_last_vec_1024_512_v2, read_and_pop_last_helper_v2, FixedVec1024, FixedVec512; + btreemap_pop_last_vec_1024_4_v2, pop_last_helper_v2, FixedVec1024, FixedVec4; + btreemap_pop_last_vec_1024_8_v2, pop_last_helper_v2, FixedVec1024, FixedVec8; + btreemap_pop_last_vec_1024_16_v2, pop_last_helper_v2, FixedVec1024, FixedVec16; + btreemap_pop_last_vec_1024_32_v2, pop_last_helper_v2, FixedVec1024, FixedVec32; + btreemap_pop_last_vec_1024_64_v2, pop_last_helper_v2, FixedVec1024, FixedVec64; + btreemap_pop_last_vec_1024_128_v2, pop_last_helper_v2, FixedVec1024, FixedVec128; + btreemap_pop_last_vec_1024_256_v2, pop_last_helper_v2, FixedVec1024, FixedVec256; + btreemap_pop_last_vec_1024_512_v2, pop_last_helper_v2, FixedVec1024, FixedVec512; // V2 u64 / blob8 / vec8 - btreemap_read_and_pop_last_u64_u64_v2, read_and_pop_last_helper_v2, u64, u64; - btreemap_read_and_pop_last_u64_blob_8_v2, read_and_pop_last_helper_v2, u64, Blob8; - btreemap_read_and_pop_last_blob_8_u64_v2, read_and_pop_last_helper_v2, Blob8, u64; - btreemap_read_and_pop_last_u64_vec_8_v2, read_and_pop_last_helper_v2, u64, FixedVec8; - btreemap_read_and_pop_last_vec_8_u64_v2, read_and_pop_last_helper_v2, FixedVec8, u64; + btreemap_pop_last_u64_u64_v2, pop_last_helper_v2, u64, u64; + btreemap_pop_last_u64_blob_8_v2, pop_last_helper_v2, u64, Blob8; + btreemap_pop_last_blob_8_u64_v2, pop_last_helper_v2, Blob8, u64; + btreemap_pop_last_u64_vec_8_v2, pop_last_helper_v2, u64, FixedVec8; + btreemap_pop_last_vec_8_u64_v2, pop_last_helper_v2, FixedVec8, u64; } -fn read_and_pop_first_helper_v1() -> BenchResult { - read_and_pop_helper_v1::(Position::First) +fn pop_first_helper_v1() -> BenchResult { + pop_helper_v1::(Position::First) } -fn read_and_pop_last_helper_v1() -> BenchResult { - read_and_pop_helper_v1::(Position::Last) +fn pop_last_helper_v1() -> BenchResult { + pop_helper_v1::(Position::Last) } -fn read_and_pop_first_helper_v2() -> BenchResult { - read_and_pop_helper_v2::(Position::First) +fn pop_first_helper_v2() -> BenchResult { + pop_helper_v2::(Position::First) } -fn read_and_pop_last_helper_v2() -> BenchResult { - read_and_pop_helper_v2::(Position::Last) +fn pop_last_helper_v2() -> BenchResult { + pop_helper_v2::(Position::Last) } -fn read_and_pop_helper_v1(position: Position) -> BenchResult { +fn pop_helper_v1(position: Position) -> BenchResult { let btree = BTreeMap::new_v1(DefaultMemoryImpl::default()); - read_and_pop_helper::(btree, position) + pop_helper::(btree, position) } -fn read_and_pop_helper_v2(position: Position) -> BenchResult { +fn pop_helper_v2(position: Position) -> BenchResult { let btree = BTreeMap::new(DefaultMemoryImpl::default()); - read_and_pop_helper::(btree, position) + pop_helper::(btree, position) } enum Position { @@ -955,7 +955,7 @@ enum Position { Last, } -fn read_and_pop_helper( +fn pop_helper( mut btree: BTreeMap, position: Position, ) -> BenchResult { @@ -969,14 +969,8 @@ fn read_and_pop_helper( bench_fn(|| { for _ in 0..count { match position { - Position::First => { - btree.first_key_value(); - btree.pop_first(); - } - Position::Last => { - btree.last_key_value(); - btree.pop_last(); - } + Position::First => btree.pop_first(), + Position::Last => btree.pop_last(), }; } }) From b50b6facfb5507a7aae610b5cd8275136a36fee3 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 14:45:55 +0200 Subject: [PATCH 21/68] . --- benchmarks/src/btreemap.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index 8383ad5e..e3c64fc6 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -962,7 +962,7 @@ fn pop_helper( 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() { + for (k, v) in items { btree.insert(k, v); } From 340fbea3ec35afa2835887e82364ecfe190f4577 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 14:51:41 +0200 Subject: [PATCH 22/68] canbench_results --- canbench_results.yml | 2224 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 1958 insertions(+), 266 deletions(-) diff --git a/canbench_results.yml b/canbench_results.yml index fd1265e1..b32abe4f 100644 --- a/canbench_results.yml +++ b/canbench_results.yml @@ -1,631 +1,2323 @@ benches: - btreemap_contains_key_blob_4_1024: + btreemap_contains_10mib_values_v2: + total: + instructions: 142172404 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_1024_128_v1: + total: + instructions: 4841087105 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_1024_128_v2: + total: + instructions: 4888113392 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_1024_16_v1: + total: + instructions: 4853399353 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_1024_16_v2: + total: + instructions: 4885400370 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_1024_256_v1: + total: + instructions: 4776041920 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_1024_256_v2: + total: + instructions: 4833964902 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_1024_32_v1: + total: + instructions: 4770238579 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_1024_32_v2: + total: + instructions: 4819640354 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_1024_4_v1: + total: + instructions: 4948898191 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_1024_4_v2: + total: + instructions: 4968337672 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_1024_512_v1: + total: + instructions: 4800709126 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_1024_512_v2: + total: + instructions: 4871879643 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_1024_64_v1: + total: + instructions: 4515063209 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_1024_64_v2: + total: + instructions: 4570333507 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_1024_8_v1: + total: + instructions: 4806336269 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_1024_8_v2: + total: + instructions: 4886245198 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_128_1024_v1: + total: + instructions: 848843273 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_128_1024_v2: + total: + instructions: 920304158 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_16_1024_v1: + total: + instructions: 227336692 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_16_1024_v2: + total: + instructions: 297154911 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_256_1024_v1: + total: + instructions: 1410857441 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_256_1024_v2: + total: + instructions: 1485301557 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_32_1024_v1: + total: + instructions: 260366378 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_32_1024_v2: + total: + instructions: 331723097 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_4_1024_v1: total: instructions: 166001914 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_key_blob_4_1024_v2: + btreemap_contains_blob_4_1024_v2: + total: + instructions: 246601950 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_512_1024_v1: + total: + instructions: 2534138636 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_512_1024_v2: + total: + instructions: 2605423069 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_512_u64_v2_mem_manager: + total: + instructions: 2707283290 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_64_1024_v1: + total: + instructions: 500287451 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_64_1024_v2: + total: + instructions: 572958074 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_8_1024_v1: + total: + instructions: 197009901 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_8_1024_v2: + total: + instructions: 273235952 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_8_u64_v1: + total: + instructions: 192404980 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_blob_8_u64_v2: + total: + instructions: 274472580 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_u64_blob_512_v2_mem_manager: + total: + instructions: 308772545 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_u64_blob_8_v1: + total: + instructions: 168557358 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_u64_blob_8_v2: + total: + instructions: 231389818 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_u64_u64_v1: + total: + instructions: 168076033 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_u64_u64_v2: + total: + instructions: 234571046 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_u64_u64_v2_mem_manager: + total: + instructions: 312585153 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_u64_vec_512_v2_mem_manager: + total: + instructions: 391691128 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_u64_vec_8_v2: + total: + instructions: 231389818 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_vec_1024_128_v2: + total: + instructions: 2831338815 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_vec_1024_16_v2: + total: + instructions: 2846038490 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_vec_1024_256_v2: + total: + instructions: 2959184349 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_vec_1024_32_v2: + total: + instructions: 2811608296 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_vec_1024_4_v2: + total: + instructions: 2821905627 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_vec_1024_512_v2: + total: + instructions: 3020833972 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_vec_1024_64_v2: + total: + instructions: 2709714173 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_vec_1024_8_v2: + total: + instructions: 2810204001 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_vec_128_1024_v2: + total: + instructions: 814724920 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_vec_16_1024_v2: + total: + instructions: 517258665 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_vec_256_1024_v2: + total: + instructions: 1244168553 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_vec_32_1024_v2: + total: + instructions: 577978742 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_vec_4_1024_v2: + total: + instructions: 472658300 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_vec_512_1024_v2: + total: + instructions: 1872953819 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_vec_512_u64_v2_mem_manager: + total: + instructions: 1750969132 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_vec_64_1024_v2: + total: + instructions: 635476669 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_vec_8_1024_v2: + total: + instructions: 476082704 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_contains_vec_8_u64_v2: + total: + instructions: 363865474 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_10mib_values_v2: + total: + instructions: 1227438335 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_1024_128_v1: + total: + instructions: 4894778854 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_1024_128_v2: + total: + instructions: 4951787511 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_1024_16_v1: + total: + instructions: 4905268570 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_1024_16_v2: + total: + instructions: 4947627319 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_1024_256_v1: + total: + instructions: 4831291228 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_1024_256_v2: + total: + instructions: 4898319044 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_1024_32_v1: + total: + instructions: 4824264421 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_1024_32_v2: + total: + instructions: 4882460691 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_1024_4_v1: + total: + instructions: 5000601367 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_1024_4_v2: + total: + instructions: 5027560434 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_1024_512_v1: + total: + instructions: 4859933014 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_1024_512_v2: + total: + instructions: 4937469682 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_1024_64_v1: + total: + instructions: 4569337426 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_1024_64_v2: + total: + instructions: 4633617579 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_1024_8_v1: + total: + instructions: 4859604499 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_1024_8_v2: + total: + instructions: 4947405187 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_128_1024_v1: + total: + instructions: 871377876 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_128_1024_v2: + total: + instructions: 952392232 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_16_1024_v1: + total: + instructions: 246862999 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_16_1024_v2: + total: + instructions: 322886246 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_256_1024_v1: + total: + instructions: 1438374032 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_256_1024_v2: + total: + instructions: 1522510073 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_32_1024_v1: + total: + instructions: 280106753 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_32_1024_v2: + total: + instructions: 358059333 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_4_1024_v1: + total: + instructions: 183878301 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_4_1024_v2: + total: + instructions: 268405509 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_512_1024_v1: + total: + instructions: 2574022258 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_512_1024_v2: + total: + instructions: 2652896326 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_512_u64_v2_mem_manager: + total: + instructions: 2752362124 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_64_1024_v1: + total: + instructions: 522452995 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_64_1024_v2: + total: + instructions: 602470701 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_8_1024_v1: + total: + instructions: 217400958 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_8_1024_v2: + total: + instructions: 299709230 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_8_u64_v1: + total: + instructions: 200831002 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_blob_8_u64_v2: + total: + instructions: 297434311 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_u64_blob_512_v2_mem_manager: + total: + instructions: 333148990 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_u64_blob_8_v1: + total: + instructions: 175651041 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_u64_blob_8_v2: + total: + instructions: 249967569 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_u64_u64_v1: + total: + instructions: 176359016 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_u64_u64_v2: + total: + instructions: 256656270 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_u64_u64_v2_mem_manager: + total: + instructions: 336201049 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_u64_vec_512_v2_mem_manager: + total: + instructions: 428597634 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_u64_vec_8_v2: + total: + instructions: 251880103 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_vec_1024_128_v2: + total: + instructions: 2856597690 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_vec_1024_16_v2: + total: + instructions: 2872453452 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_vec_1024_256_v2: + total: + instructions: 2977865538 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_vec_1024_32_v2: + total: + instructions: 2847838345 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_vec_1024_4_v2: + total: + instructions: 2859810077 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_vec_1024_512_v2: + total: + instructions: 3048462844 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_vec_1024_64_v2: + total: + instructions: 2743478947 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_vec_1024_8_v2: + total: + instructions: 2836135832 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_vec_128_1024_v2: + total: + instructions: 849857474 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_vec_16_1024_v2: + total: + instructions: 545476823 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_vec_256_1024_v2: + total: + instructions: 1273898726 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_vec_32_1024_v2: + total: + instructions: 599978022 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_vec_4_1024_v2: + total: + instructions: 499596845 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_vec_512_1024_v2: + total: + instructions: 1901150141 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_vec_512_u64_v2_mem_manager: + total: + instructions: 1788534298 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_vec_64_1024_v2: + total: + instructions: 672281493 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_vec_8_1024_v2: + total: + instructions: 502950892 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_get_vec_8_u64_v2: + total: + instructions: 374122016 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_insert_10mib_values_v2: + total: + instructions: 5235942932 + heap_increase: 322 + stable_memory_increase: 3613 + scopes: {} + btreemap_insert_blob_1024_128_v1: + total: + instructions: 5014998281 + heap_increase: 0 + stable_memory_increase: 262 + scopes: {} + btreemap_insert_blob_1024_128_v2: + total: + instructions: 5106242788 + heap_increase: 0 + stable_memory_increase: 196 + scopes: {} + btreemap_insert_blob_1024_16_v1: + total: + instructions: 5027835266 + heap_increase: 1 + stable_memory_increase: 241 + scopes: {} + btreemap_insert_blob_1024_16_v2: + total: + instructions: 5114695125 + heap_increase: 1 + stable_memory_increase: 181 + scopes: {} + btreemap_insert_blob_1024_256_v1: + total: + instructions: 5026099570 + heap_increase: 0 + stable_memory_increase: 292 + scopes: {} + btreemap_insert_blob_1024_256_v2: + total: + instructions: 5119781536 + heap_increase: 0 + stable_memory_increase: 219 + scopes: {} + btreemap_insert_blob_1024_32_v1: + total: + instructions: 5010195110 + heap_increase: 0 + stable_memory_increase: 239 + scopes: {} + btreemap_insert_blob_1024_32_v2: + total: + instructions: 5108393196 + heap_increase: 0 + stable_memory_increase: 180 + scopes: {} + btreemap_insert_blob_1024_4_v1: + total: + instructions: 5018694036 + heap_increase: 0 + stable_memory_increase: 235 + scopes: {} + btreemap_insert_blob_1024_4_v2: + total: + instructions: 5097577692 + heap_increase: 0 + stable_memory_increase: 176 + scopes: {} + btreemap_insert_blob_1024_512_v1: + total: + instructions: 5079937612 + heap_increase: 0 + stable_memory_increase: 348 + scopes: {} + btreemap_insert_blob_1024_512_v2: + total: + instructions: 5179453343 + heap_increase: 0 + stable_memory_increase: 261 + scopes: {} + btreemap_insert_blob_1024_64_v1: + total: + instructions: 5059628016 + heap_increase: 0 + stable_memory_increase: 250 + scopes: {} + btreemap_insert_blob_1024_64_v2: + total: + instructions: 5158529448 + heap_increase: 0 + stable_memory_increase: 188 + scopes: {} + btreemap_insert_blob_1024_8_v1: + total: + instructions: 5000351971 + heap_increase: 0 + stable_memory_increase: 237 + scopes: {} + btreemap_insert_blob_1024_8_v2: + total: + instructions: 5102533041 + heap_increase: 0 + stable_memory_increase: 178 + scopes: {} + btreemap_insert_blob_128_1024_v1: + total: + instructions: 1177562564 + heap_increase: 0 + stable_memory_increase: 260 + scopes: {} + btreemap_insert_blob_128_1024_v2: + total: + instructions: 1277620472 + heap_increase: 0 + stable_memory_increase: 195 + scopes: {} + btreemap_insert_blob_16_1024_v1: + total: + instructions: 552384426 + heap_increase: 0 + stable_memory_increase: 215 + scopes: {} + btreemap_insert_blob_16_1024_v2: + total: + instructions: 647007689 + heap_increase: 0 + stable_memory_increase: 161 + scopes: {} + btreemap_insert_blob_256_1024_v1: + total: + instructions: 1753933347 + heap_increase: 0 + stable_memory_increase: 292 + scopes: {} + btreemap_insert_blob_256_1024_v2: + total: + instructions: 1851920923 + heap_increase: 0 + stable_memory_increase: 219 + scopes: {} + btreemap_insert_blob_32_1024_v1: + total: + instructions: 586520785 + heap_increase: 0 + stable_memory_increase: 230 + scopes: {} + btreemap_insert_blob_32_1024_v2: + total: + instructions: 683786948 + heap_increase: 0 + stable_memory_increase: 173 + scopes: {} + btreemap_insert_blob_4_1024_v1: + total: + instructions: 496763393 + heap_increase: 0 + stable_memory_increase: 123 + scopes: {} + btreemap_insert_blob_4_1024_v2: + total: + instructions: 593311593 + heap_increase: 0 + stable_memory_increase: 92 + scopes: {} + btreemap_insert_blob_512_1024_v1: + total: + instructions: 2884408376 + heap_increase: 0 + stable_memory_increase: 351 + scopes: {} + btreemap_insert_blob_512_1024_v2: + total: + instructions: 2978281082 + heap_increase: 0 + stable_memory_increase: 263 + scopes: {} + btreemap_insert_blob_512_u64_v2_mem_manager: + total: + instructions: 2955956827 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_insert_blob_64_1024_v1: + total: + instructions: 829391525 + heap_increase: 0 + stable_memory_increase: 245 + scopes: {} + btreemap_insert_blob_64_1024_v2: + total: + instructions: 925331123 + heap_increase: 0 + stable_memory_increase: 183 + scopes: {} + btreemap_insert_blob_8_1024_v1: + total: + instructions: 522948090 + heap_increase: 0 + stable_memory_increase: 183 + scopes: {} + btreemap_insert_blob_8_1024_v2: + total: + instructions: 624645838 + heap_increase: 0 + stable_memory_increase: 138 + scopes: {} + btreemap_insert_blob_8_u64_v1: + total: + instructions: 329753248 + heap_increase: 0 + stable_memory_increase: 6 + scopes: {} + btreemap_insert_blob_8_u64_v2: + total: + instructions: 440555372 + heap_increase: 0 + stable_memory_increase: 4 + scopes: {} + btreemap_insert_u64_blob_512_v2_mem_manager: + total: + instructions: 644463951 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_insert_u64_blob_8_v1: + total: + instructions: 339282380 + heap_increase: 0 + stable_memory_increase: 7 + scopes: {} + btreemap_insert_u64_blob_8_v2: + total: + instructions: 419759116 + heap_increase: 0 + stable_memory_increase: 5 + scopes: {} + btreemap_insert_u64_u64_v1: + total: + instructions: 344862639 + heap_increase: 0 + stable_memory_increase: 7 + scopes: {} + btreemap_insert_u64_u64_v2: + total: + instructions: 428374777 + heap_increase: 0 + stable_memory_increase: 6 + scopes: {} + btreemap_insert_u64_u64_v2_mem_manager: + total: + instructions: 558023818 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_insert_u64_vec_512_v2_mem_manager: + total: + instructions: 892888165 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_insert_u64_vec_8_v2: + total: + instructions: 425335599 + heap_increase: 0 + stable_memory_increase: 21 + scopes: {} + btreemap_insert_vec_1024_128_v2: + total: + instructions: 3314740056 + heap_increase: 0 + stable_memory_increase: 193 + scopes: {} + btreemap_insert_vec_1024_16_v2: + total: + instructions: 3315277850 + heap_increase: 1 + stable_memory_increase: 180 + scopes: {} + btreemap_insert_vec_1024_256_v2: + total: + instructions: 3357772820 + heap_increase: 0 + stable_memory_increase: 210 + scopes: {} + btreemap_insert_vec_1024_32_v2: + total: + instructions: 3332153045 + heap_increase: 0 + stable_memory_increase: 179 + scopes: {} + btreemap_insert_vec_1024_4_v2: + total: + instructions: 3313866120 + heap_increase: 0 + stable_memory_increase: 179 + scopes: {} + btreemap_insert_vec_1024_512_v2: + total: + instructions: 3466828639 + heap_increase: 0 + stable_memory_increase: 253 + scopes: {} + btreemap_insert_vec_1024_64_v2: + total: + instructions: 3326392343 + heap_increase: 0 + stable_memory_increase: 180 + scopes: {} + btreemap_insert_vec_1024_8_v2: + total: + instructions: 3302396197 + heap_increase: 0 + stable_memory_increase: 179 + scopes: {} + btreemap_insert_vec_128_1024_v2: + total: + instructions: 1486332818 + heap_increase: 0 + stable_memory_increase: 191 + scopes: {} + btreemap_insert_vec_16_1024_v2: + total: + instructions: 1149471374 + heap_increase: 0 + stable_memory_increase: 161 + scopes: {} + btreemap_insert_vec_256_1024_v2: + total: + instructions: 1938269799 + heap_increase: 0 + stable_memory_increase: 209 + scopes: {} + btreemap_insert_vec_32_1024_v2: + total: + instructions: 1220743312 + heap_increase: 0 + stable_memory_increase: 171 + scopes: {} + btreemap_insert_vec_4_1024_v2: + total: + instructions: 1020332511 + heap_increase: 0 + stable_memory_increase: 94 + scopes: {} + btreemap_insert_vec_512_1024_v2: + total: + instructions: 2521203187 + heap_increase: 0 + stable_memory_increase: 253 + scopes: {} + btreemap_insert_vec_512_u64_v2_mem_manager: + total: + instructions: 2228702298 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_insert_vec_64_1024_v2: + total: + instructions: 1311071302 + heap_increase: 0 + stable_memory_increase: 176 + scopes: {} + btreemap_insert_vec_8_1024_v2: + total: + instructions: 1110614213 + heap_increase: 0 + stable_memory_increase: 139 + scopes: {} + btreemap_insert_vec_8_u64_v2: + total: + instructions: 579521757 + heap_increase: 0 + stable_memory_increase: 16 + scopes: {} + btreemap_pop_first_blob_1024_128_v1: + total: + instructions: 9260865121 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_1024_128_v2: + total: + instructions: 9400102554 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_1024_16_v1: + total: + instructions: 9327385140 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_1024_16_v2: + total: + instructions: 9437432863 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_1024_256_v1: + total: + instructions: 9340847637 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_1024_256_v2: + total: + instructions: 9461131787 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_1024_32_v1: + total: + instructions: 9403084616 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_1024_32_v2: + total: + instructions: 9536710928 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_1024_4_v1: + total: + instructions: 9304429027 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_1024_4_v2: + total: + instructions: 9440836682 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_1024_512_v1: + total: + instructions: 9426386459 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_1024_512_v2: + total: + instructions: 9551548855 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_1024_64_v1: + total: + instructions: 9481876640 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_1024_64_v2: + total: + instructions: 9624930007 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_1024_8_v1: + total: + instructions: 9372005622 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_1024_8_v2: + total: + instructions: 9516246874 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_128_1024_v1: + total: + instructions: 2085403663 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_128_1024_v2: + total: + instructions: 2266285340 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_16_1024_v1: + total: + instructions: 842728119 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_16_1024_v2: + total: + instructions: 1000137328 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_256_1024_v1: + total: + instructions: 3142281528 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_256_1024_v2: + total: + instructions: 3321176665 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_32_1024_v1: + total: + instructions: 959176197 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_32_1024_v2: + total: + instructions: 1134973121 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_4_1024_v1: + total: + instructions: 406992992 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_4_1024_v2: + total: + instructions: 501130202 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_512_1024_v1: + total: + instructions: 5294784519 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_512_1024_v2: + total: + instructions: 5461101177 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_64_1024_v1: + total: + instructions: 1434482857 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_64_1024_v2: + total: + instructions: 1612269461 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_8_1024_v1: + total: + instructions: 684969831 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_8_1024_v2: + total: + instructions: 834034855 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_8_u64_v1: + total: + instructions: 444154705 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_blob_8_u64_v2: + total: + instructions: 616695040 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_u64_blob_8_v1: + total: + instructions: 555835474 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_u64_blob_8_v2: + total: + instructions: 713330769 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_u64_u64_v1: + total: + instructions: 558551350 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_u64_u64_v2: + total: + instructions: 727358675 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_u64_vec_8_v2: + total: + instructions: 712872081 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_vec_1024_128_v2: + total: + instructions: 5826027830 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_vec_1024_16_v2: + total: + instructions: 5778608671 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_vec_1024_256_v2: + total: + instructions: 5940550062 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_vec_1024_32_v2: + total: + instructions: 5863286575 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_vec_1024_4_v2: + total: + instructions: 5770487236 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_vec_1024_512_v2: + total: + instructions: 6118172091 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_vec_1024_64_v2: + total: + instructions: 5853041213 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_vec_1024_8_v2: + total: + instructions: 5797049510 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_vec_128_1024_v2: + total: + instructions: 2343897267 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_vec_16_1024_v2: + total: + instructions: 1607302169 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_vec_256_1024_v2: + total: + instructions: 3146486989 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_vec_32_1024_v2: + total: + instructions: 1823184532 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_vec_4_1024_v2: + total: + instructions: 894380845 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_vec_512_1024_v2: + total: + instructions: 4308120968 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_vec_64_1024_v2: + total: + instructions: 2017995479 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_vec_8_1024_v2: + total: + instructions: 1397567208 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_first_vec_8_u64_v2: + total: + instructions: 784907748 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_last_blob_1024_128_v1: + total: + instructions: 9063086851 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_last_blob_1024_128_v2: + total: + instructions: 9216237818 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_last_blob_1024_16_v1: + total: + instructions: 9119641266 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_last_blob_1024_16_v2: + total: + instructions: 9264928050 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_last_blob_1024_256_v1: + total: + instructions: 9045089417 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_last_blob_1024_256_v2: + total: + instructions: 9183900935 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_last_blob_1024_32_v1: + total: + instructions: 9040913737 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_last_blob_1024_32_v2: + total: + instructions: 9213645657 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_last_blob_1024_4_v1: + total: + instructions: 9140753070 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_last_blob_1024_4_v2: + total: + instructions: 9275997503 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_last_blob_1024_512_v1: + total: + instructions: 9252358675 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_last_blob_1024_512_v2: + total: + instructions: 9383854867 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_last_blob_1024_64_v1: + total: + instructions: 9303834610 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_last_blob_1024_64_v2: + total: + instructions: 9473123535 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_last_blob_1024_8_v1: + total: + instructions: 9041578248 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_last_blob_1024_8_v2: + total: + instructions: 9201536722 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_pop_last_blob_128_1024_v1: total: - instructions: 246601950 + instructions: 2031032460 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_128_1024: + btreemap_pop_last_blob_128_1024_v2: total: - instructions: 871377876 + instructions: 2214000607 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_128_1024_v2: + btreemap_pop_last_blob_16_1024_v1: total: - instructions: 952392232 + instructions: 816602299 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_16_1024: + btreemap_pop_last_blob_16_1024_v2: total: - instructions: 246862999 + instructions: 983346878 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_16_1024_v2: + btreemap_pop_last_blob_256_1024_v1: total: - instructions: 322886246 + instructions: 3087901197 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_256_1024: + btreemap_pop_last_blob_256_1024_v2: total: - instructions: 1438374032 + instructions: 3266719668 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_256_1024_v2: + btreemap_pop_last_blob_32_1024_v1: total: - instructions: 1522510073 + instructions: 937798507 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_32_1024: + btreemap_pop_last_blob_32_1024_v2: total: - instructions: 280106753 + instructions: 1114659597 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_32_1024_v2: + btreemap_pop_last_blob_4_1024_v1: total: - instructions: 358059333 + instructions: 401020864 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_4_1024: + btreemap_pop_last_blob_4_1024_v2: total: - instructions: 183878301 + instructions: 495076730 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_4_1024_v2: + btreemap_pop_last_blob_512_1024_v1: total: - instructions: 268405509 + instructions: 5189120100 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_512_1024: + btreemap_pop_last_blob_512_1024_v2: total: - instructions: 2574022258 + instructions: 5354619711 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_512_1024_v2: + btreemap_pop_last_blob_64_1024_v1: total: - instructions: 2652896326 + instructions: 1402584057 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_512_1024_v2_mem_manager: + btreemap_pop_last_blob_64_1024_v2: total: - instructions: 2758935791 + instructions: 1585388198 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_64_1024: + btreemap_pop_last_blob_8_1024_v1: total: - instructions: 522452995 + instructions: 676786230 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_64_1024_v2: + btreemap_pop_last_blob_8_1024_v2: total: - instructions: 602470701 + instructions: 826203228 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_8_1024: + btreemap_pop_last_blob_8_u64_v1: total: - instructions: 217400958 + instructions: 429568239 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_8_1024_v2: + btreemap_pop_last_blob_8_u64_v2: total: - instructions: 299709230 + instructions: 599892304 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_8_u64: + btreemap_pop_last_u64_blob_8_v1: total: - instructions: 201178258 + instructions: 543551094 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_8_u64_v2: + btreemap_pop_last_u64_blob_8_v2: total: - instructions: 298067608 + instructions: 700954317 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_u64_blob_8: + btreemap_pop_last_u64_u64_v1: total: - instructions: 175651041 + instructions: 545307282 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_u64_blob_8_v2: + btreemap_pop_last_u64_u64_v2: total: - instructions: 249967569 + instructions: 713490656 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_u64_u64: + btreemap_pop_last_u64_vec_8_v2: total: - instructions: 176359016 + instructions: 699071914 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_u64_u64_v2: + btreemap_pop_last_vec_1024_128_v2: total: - instructions: 256656270 + instructions: 6075315916 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_u64_u64_v2_mem_manager: + btreemap_pop_last_vec_1024_16_v2: total: - instructions: 336179948 + instructions: 6053293994 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_insert_10mib_values: + btreemap_pop_last_vec_1024_256_v2: total: - instructions: 5239421355 + instructions: 6145453799 heap_increase: 0 - stable_memory_increase: 3613 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_128: + btreemap_pop_last_vec_1024_32_v2: total: - instructions: 5110664101 + instructions: 6043801791 heap_increase: 0 - stable_memory_increase: 262 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_128_v2: + btreemap_pop_last_vec_1024_4_v2: total: - instructions: 5201936582 + instructions: 6049467989 heap_increase: 0 - stable_memory_increase: 196 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_16: + btreemap_pop_last_vec_1024_512_v2: total: - instructions: 5113272660 + instructions: 6345385609 heap_increase: 0 - stable_memory_increase: 241 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_16_v2: + btreemap_pop_last_vec_1024_64_v2: total: - instructions: 5200160649 + instructions: 6146363864 heap_increase: 0 - stable_memory_increase: 181 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_256: + btreemap_pop_last_vec_1024_8_v2: total: - instructions: 5132006019 + instructions: 6006128114 heap_increase: 0 - stable_memory_increase: 292 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_256_v2: + btreemap_pop_last_vec_128_1024_v2: total: - instructions: 5225716019 + instructions: 2356287577 heap_increase: 0 - stable_memory_increase: 219 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_32: + btreemap_pop_last_vec_16_1024_v2: total: - instructions: 5096510160 + instructions: 1594527452 heap_increase: 0 - stable_memory_increase: 239 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_32_v2: + btreemap_pop_last_vec_256_1024_v2: total: - instructions: 5194736210 + instructions: 3203496098 heap_increase: 0 - stable_memory_increase: 180 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_4: + btreemap_pop_last_vec_32_1024_v2: total: - instructions: 5019310618 + instructions: 1815815429 heap_increase: 0 - stable_memory_increase: 235 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_4_v2: + btreemap_pop_last_vec_4_1024_v2: total: - instructions: 5098222305 + instructions: 887483609 heap_increase: 0 - stable_memory_increase: 176 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_512: + btreemap_pop_last_vec_512_1024_v2: total: - instructions: 5206323531 + instructions: 4433146037 heap_increase: 0 - stable_memory_increase: 348 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_512_v2: + btreemap_pop_last_vec_64_1024_v2: total: - instructions: 5305867254 + instructions: 2022758183 heap_increase: 0 - stable_memory_increase: 261 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_512_v2_mem_manager: + btreemap_pop_last_vec_8_1024_v2: total: - instructions: 5474908000 + instructions: 1392316114 heap_increase: 0 - stable_memory_increase: 256 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_64: + btreemap_pop_last_vec_8_u64_v2: total: - instructions: 5150175789 + instructions: 766305449 heap_increase: 0 - stable_memory_increase: 250 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_64_v2: + btreemap_range_count_1k_0b_v2: total: - instructions: 5249105297 + instructions: 16983 heap_increase: 0 - stable_memory_increase: 188 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_8: + btreemap_range_count_1k_10kib_v2: total: - instructions: 5085348900 + instructions: 2453957 heap_increase: 0 - stable_memory_increase: 237 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_8_v2: + btreemap_range_count_20_10mib_v2: total: - instructions: 5187558037 + instructions: 20564624 heap_increase: 0 - stable_memory_increase: 178 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_128_1024: + btreemap_range_key_sum_1k_0b_v2: total: - instructions: 1273227463 + instructions: 17617 heap_increase: 0 - stable_memory_increase: 260 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_128_1024_v2: + btreemap_range_key_sum_1k_10kib_v2: total: - instructions: 1373313309 + instructions: 57293392 heap_increase: 0 - stable_memory_increase: 195 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_16_1024: + btreemap_range_key_sum_20_10mib_v2: total: - instructions: 637805470 + instructions: 1105818529 heap_increase: 0 - stable_memory_increase: 215 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_16_1024_v2: + btreemap_range_value_sum_1k_0b_v2: total: - instructions: 732455990 + instructions: 17631 heap_increase: 0 - stable_memory_increase: 161 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_256_1024: + btreemap_range_value_sum_1k_10kib_v2: total: - instructions: 1859840193 + instructions: 57305388 heap_increase: 0 - stable_memory_increase: 292 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_256_1024_v2: + btreemap_range_value_sum_20_10mib_v2: total: - instructions: 1957855803 + instructions: 1105818765 heap_increase: 0 - stable_memory_increase: 219 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_32_1024: + btreemap_remove_10mib_values_v2: total: - instructions: 672870979 + instructions: 5561141934 heap_increase: 0 - stable_memory_increase: 230 + stable_memory_increase: 657 scopes: {} - btreemap_insert_blob_32_1024_v2: + btreemap_remove_blob_1024_128_v1: total: - instructions: 770164792 + instructions: 6358055224 heap_increase: 0 - stable_memory_increase: 173 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_4_1024: + btreemap_remove_blob_1024_128_v2: total: - instructions: 497280451 + instructions: 6475223920 heap_increase: 0 - stable_memory_increase: 123 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_4_1024_v2: + btreemap_remove_blob_1024_16_v1: total: - instructions: 593852839 + instructions: 6316136093 heap_increase: 0 - stable_memory_increase: 92 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_512_1024: + btreemap_remove_blob_1024_16_v2: total: - instructions: 3010795691 + instructions: 6429631032 heap_increase: 0 - stable_memory_increase: 351 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_512_1024_v2: + btreemap_remove_blob_1024_256_v1: total: - instructions: 3104696455 + instructions: 6392922671 heap_increase: 0 - stable_memory_increase: 263 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_64_1024: + btreemap_remove_blob_1024_256_v2: total: - instructions: 919935850 + instructions: 6509536321 heap_increase: 0 - stable_memory_increase: 245 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_64_1024_v2: + btreemap_remove_blob_1024_32_v1: total: - instructions: 1015903332 + instructions: 6290137606 heap_increase: 0 - stable_memory_increase: 183 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_8_1024: + btreemap_remove_blob_1024_32_v2: total: - instructions: 607806777 + instructions: 6415430514 heap_increase: 0 - stable_memory_increase: 183 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_8_1024_v2: + btreemap_remove_blob_1024_4_v1: total: - instructions: 709530767 + instructions: 6323601524 heap_increase: 0 - stable_memory_increase: 138 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_8_u64: + btreemap_remove_blob_1024_4_v2: total: - instructions: 330300136 + instructions: 6428005113 heap_increase: 0 - stable_memory_increase: 6 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_8_u64_v2: + btreemap_remove_blob_1024_512_v1: total: - instructions: 441129700 + instructions: 6511558684 heap_increase: 0 - stable_memory_increase: 4 + stable_memory_increase: 0 scopes: {} - btreemap_insert_u64_blob_8: + btreemap_remove_blob_1024_512_v2: total: - instructions: 339919034 + instructions: 6628059919 heap_increase: 0 - stable_memory_increase: 7 + stable_memory_increase: 0 scopes: {} - btreemap_insert_u64_blob_8_v2: + btreemap_remove_blob_1024_64_v1: total: - instructions: 420318618 + instructions: 6393419336 heap_increase: 0 - stable_memory_increase: 5 + stable_memory_increase: 0 scopes: {} - btreemap_insert_u64_u64: + btreemap_remove_blob_1024_64_v2: total: - instructions: 345460000 + instructions: 6498655929 heap_increase: 0 - stable_memory_increase: 7 + stable_memory_increase: 0 scopes: {} - btreemap_insert_u64_u64_v2: + btreemap_remove_blob_1024_8_v1: total: - instructions: 428895247 + instructions: 6334842596 heap_increase: 0 - stable_memory_increase: 6 + stable_memory_increase: 0 scopes: {} - btreemap_insert_u64_u64_v2_mem_manager: + btreemap_remove_blob_1024_8_v2: total: - instructions: 558130823 + instructions: 6446598669 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_iter_10mib_values: + btreemap_remove_blob_128_1024_v1: total: - instructions: 11407378 + instructions: 1573792200 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_iter_count_10mib_values: + btreemap_remove_blob_128_1024_v2: total: - instructions: 477294 + instructions: 1716743736 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_iter_count_small_values: + btreemap_remove_blob_16_1024_v1: total: - instructions: 9442536 + instructions: 757326760 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_iter_rev_10mib_values: + btreemap_remove_blob_16_1024_v2: total: - instructions: 11404381 + instructions: 895123692 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_iter_rev_small_values: + btreemap_remove_blob_256_1024_v1: total: - instructions: 14975521 + instructions: 2278298542 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_iter_small_values: + btreemap_remove_blob_256_1024_v2: total: - instructions: 14978614 + instructions: 2416985345 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_keys_10mib_values: + btreemap_remove_blob_32_1024_v1: total: - instructions: 464952 + instructions: 826755315 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_keys_rev_10mib_values: + btreemap_remove_blob_32_1024_v2: total: - instructions: 464595 + instructions: 965860176 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_keys_rev_small_values: + btreemap_remove_blob_4_1024_v1: total: - instructions: 9673706 + instructions: 485954034 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_keys_small_values: + btreemap_remove_blob_4_1024_v2: total: - instructions: 9526093 + instructions: 599545000 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_read_every_third_value_from_range: + btreemap_remove_blob_512_1024_v1: total: - instructions: 84178476 + instructions: 3748097654 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_read_keys_from_range: + btreemap_remove_blob_512_1024_v2: total: - instructions: 84218480 + instructions: 3877288524 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_128_1024: + btreemap_remove_blob_512_u64_v2_mem_manager: total: - instructions: 1574675940 + instructions: 3835029447 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_128_1024_v2: + btreemap_remove_blob_64_1024_v1: total: - instructions: 1717684218 + instructions: 1140140274 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_16_1024: + btreemap_remove_blob_64_1024_v2: total: - instructions: 758136944 + instructions: 1279997562 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_16_1024_v2: + btreemap_remove_blob_8_1024_v1: + total: + instructions: 644037226 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_remove_blob_8_1024_v2: total: - instructions: 895985762 + instructions: 776025360 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_256_1024: + btreemap_remove_blob_8_u64_v1: total: - instructions: 2279163553 + instructions: 437869128 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_256_1024_v2: + btreemap_remove_blob_8_u64_v2: total: - instructions: 2417905594 + instructions: 586279330 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_32_1024: + btreemap_remove_u64_blob_512_v2_mem_manager: total: - instructions: 827599093 + instructions: 948776805 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_32_1024_v2: + btreemap_remove_u64_blob_8_v1: total: - instructions: 966757633 + instructions: 484959538 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_4_1024: + btreemap_remove_u64_blob_8_v2: total: - instructions: 486469240 + instructions: 600354024 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_4_1024_v2: + btreemap_remove_u64_u64_v1: total: - instructions: 600093407 + instructions: 498062641 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_512_1024: + btreemap_remove_u64_u64_v2: total: - instructions: 3748993388 + instructions: 622756312 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_512_1024_v2: + btreemap_remove_u64_u64_v2_mem_manager: total: - instructions: 3878241779 + instructions: 810755294 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_64_1024: + btreemap_remove_u64_vec_512_v2_mem_manager: total: - instructions: 1141008090 + instructions: 1284354577 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_64_1024_v2: + btreemap_remove_u64_vec_8_v2: total: - instructions: 1280920638 + instructions: 607007959 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_8_1024: + btreemap_remove_vec_1024_128_v2: total: - instructions: 644735138 + instructions: 5033983898 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_8_1024_v2: + btreemap_remove_vec_1024_16_v2: total: - instructions: 776768069 + instructions: 4864560421 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_8_u64: + btreemap_remove_vec_1024_256_v2: total: - instructions: 435032682 + instructions: 5270860702 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_8_u64_v2: + btreemap_remove_vec_1024_32_v2: total: - instructions: 584053097 + instructions: 4932215759 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_u64_blob_8: + btreemap_remove_vec_1024_4_v2: total: - instructions: 485748982 + instructions: 4899015030 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_u64_blob_8_v2: + btreemap_remove_vec_1024_512_v2: total: - instructions: 601012747 + instructions: 5446125648 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_u64_u64: + btreemap_remove_vec_1024_64_v2: total: - instructions: 498934285 + instructions: 4968491004 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_u64_u64_v2: + btreemap_remove_vec_1024_8_v2: + total: + instructions: 4885267051 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_remove_vec_128_1024_v2: + total: + instructions: 2162040916 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_remove_vec_16_1024_v2: + total: + instructions: 1557252449 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_remove_vec_256_1024_v2: + total: + instructions: 2830522057 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_remove_vec_32_1024_v2: + total: + instructions: 1681868752 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_remove_vec_4_1024_v2: + total: + instructions: 1102611492 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_remove_vec_512_1024_v2: + total: + instructions: 3897471341 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_remove_vec_512_u64_v2_mem_manager: + total: + instructions: 3298722900 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_remove_vec_64_1024_v2: + total: + instructions: 1877319028 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_remove_vec_8_1024_v2: + total: + instructions: 1410367877 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_remove_vec_8_u64_v2: + total: + instructions: 748088987 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_scan_iter_1k_0b_v2: + total: + instructions: 1554259 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_scan_iter_1k_10kib_v2: + total: + instructions: 57130450 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_scan_iter_20_10mib_v2: + total: + instructions: 1103720742 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_scan_iter_rev_1k_0b_v2: + total: + instructions: 1556497 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_scan_iter_rev_1k_10kib_v2: + total: + instructions: 57108188 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_scan_iter_rev_20_10mib_v2: + total: + instructions: 1103720331 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_scan_keys_1k_0b_v2: + total: + instructions: 984705 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_scan_keys_1k_10kib_v2: + total: + instructions: 2398023 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_scan_keys_20_10mib_v2: + total: + instructions: 18466001 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_scan_keys_rev_1k_0b_v2: + total: + instructions: 985803 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_scan_keys_rev_1k_10kib_v2: + total: + instructions: 2378116 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_scan_keys_rev_20_10mib_v2: + total: + instructions: 18466011 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_scan_values_1k_0b_v2: + total: + instructions: 1564425 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_scan_values_1k_10kib_v2: total: - instructions: 623495817 + instructions: 57140616 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_values_10mib_values: + btreemap_scan_values_20_10mib_v2: total: - instructions: 11406858 + instructions: 1103720944 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_values_rev_10mib_values: + btreemap_scan_values_rev_1k_0b_v2: total: - instructions: 11403861 + instructions: 1566269 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_values_rev_small_values: + btreemap_scan_values_rev_1k_10kib_v2: total: - instructions: 14949517 + instructions: 57117960 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_values_small_values: + btreemap_scan_values_rev_20_10mib_v2: total: - instructions: 14952610 + instructions: 1103720527 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -637,61 +2329,61 @@ benches: scopes: {} memory_manager_grow: total: - instructions: 346600495 + instructions: 346536495 heap_increase: 2 stable_memory_increase: 32000 scopes: {} memory_manager_overhead: total: - instructions: 1181961433 + instructions: 1181962608 heap_increase: 0 stable_memory_increase: 8320 scopes: {} vec_get_blob_128: total: - instructions: 19306242 + instructions: 17793392 heap_increase: 0 stable_memory_increase: 0 scopes: {} vec_get_blob_16: total: - instructions: 6402226 + instructions: 7463434 heap_increase: 0 stable_memory_increase: 0 scopes: {} vec_get_blob_32: total: - instructions: 7121657 + instructions: 8325760 heap_increase: 0 stable_memory_increase: 0 scopes: {} vec_get_blob_4: total: - instructions: 4849627 + instructions: 4869627 heap_increase: 0 stable_memory_increase: 0 scopes: {} vec_get_blob_4_mem_manager: total: - instructions: 7216977 + instructions: 7236977 heap_increase: 0 stable_memory_increase: 0 scopes: {} vec_get_blob_64: total: - instructions: 11370056 + instructions: 12704986 heap_increase: 0 stable_memory_increase: 0 scopes: {} vec_get_blob_64_mem_manager: total: - instructions: 13710204 + instructions: 13640204 heap_increase: 0 stable_memory_increase: 0 scopes: {} vec_get_blob_8: total: - instructions: 5673873 + instructions: 5733873 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -703,43 +2395,43 @@ benches: scopes: {} vec_insert_blob_128: total: - instructions: 4151425 + instructions: 4131425 heap_increase: 0 stable_memory_increase: 19 scopes: {} vec_insert_blob_16: total: - instructions: 3316228 + instructions: 3296228 heap_increase: 0 stable_memory_increase: 2 scopes: {} vec_insert_blob_32: total: - instructions: 3435468 + instructions: 3415468 heap_increase: 0 stable_memory_increase: 5 scopes: {} vec_insert_blob_4: total: - instructions: 3227469 + instructions: 3207469 heap_increase: 0 stable_memory_increase: 0 scopes: {} vec_insert_blob_64: total: - instructions: 3675805 + instructions: 3655805 heap_increase: 0 stable_memory_increase: 9 scopes: {} vec_insert_blob_8: total: - instructions: 3256890 + instructions: 3236890 heap_increase: 0 stable_memory_increase: 1 scopes: {} vec_insert_u64: total: - instructions: 5929433 + instructions: 5919433 heap_increase: 0 stable_memory_increase: 1 scopes: {} From f4ca524d82e7babbfa3972056960fbc0d8745450 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 15:06:01 +0200 Subject: [PATCH 23/68] --persist --- benchmarks/src/btreemap.rs | 12 +- canbench_results.yml | 564 ++++++++++++++++++------------------- 2 files changed, 288 insertions(+), 288 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index e3c64fc6..9d4d56cf 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -311,8 +311,8 @@ fn remove_helper(mut btree: BTreeMap = items.into_iter().map(|(k, _)| k).collect(); bench_fn(|| { // Remove the keys from the btree. - for k in keys { - btree.remove(&k); + for random_key in keys { + btree.remove(&random_key); } }) } @@ -448,8 +448,8 @@ fn get_helper(mut btree: BTreeMap) let keys: Vec = items.into_iter().map(|(k, _)| k).collect(); bench_fn(|| { // Get all the keys from the map. - for k in keys { - btree.get(&k).unwrap(); + for random_key in keys { + btree.get(&random_key); } }) } @@ -587,8 +587,8 @@ fn contains_helper( let keys: Vec = items.into_iter().map(|(k, _)| k).collect(); bench_fn(|| { // Checks if the keys are in the map. - for k in keys { - btree.contains_key(&k); + for random_key in keys { + btree.contains_key(&random_key); } }) } diff --git a/canbench_results.yml b/canbench_results.yml index b32abe4f..2990e113 100644 --- a/canbench_results.yml +++ b/canbench_results.yml @@ -247,13 +247,13 @@ benches: scopes: {} btreemap_contains_u64_u64_v2_mem_manager: total: - instructions: 312585153 + instructions: 312538209 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_contains_u64_vec_512_v2_mem_manager: total: - instructions: 391691128 + instructions: 390417972 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -349,7 +349,7 @@ benches: scopes: {} btreemap_contains_vec_512_u64_v2_mem_manager: total: - instructions: 1750969132 + instructions: 1749726676 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -547,7 +547,7 @@ benches: scopes: {} btreemap_get_blob_512_u64_v2_mem_manager: total: - instructions: 2752362124 + instructions: 2752362123 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -577,1213 +577,1213 @@ benches: scopes: {} btreemap_get_blob_8_u64_v1: total: - instructions: 200831002 + instructions: 200831001 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_blob_8_u64_v2: total: - instructions: 297434311 + instructions: 297434310 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_u64_blob_512_v2_mem_manager: total: - instructions: 333148990 + instructions: 333198984 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_u64_blob_8_v1: total: - instructions: 175651041 + instructions: 175701037 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_u64_blob_8_v2: total: - instructions: 249967569 + instructions: 250017565 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_u64_u64_v1: total: - instructions: 176359016 + instructions: 176409011 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_u64_u64_v2: total: - instructions: 256656270 + instructions: 256706265 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_u64_u64_v2_mem_manager: total: - instructions: 336201049 + instructions: 336204098 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_u64_vec_512_v2_mem_manager: total: - instructions: 428597634 + instructions: 427374471 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_u64_vec_8_v2: total: - instructions: 251880103 + instructions: 251930098 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_vec_1024_128_v2: total: - instructions: 2856597690 + instructions: 2856597689 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_vec_1024_16_v2: total: - instructions: 2872453452 + instructions: 2872453451 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_vec_1024_256_v2: total: - instructions: 2977865538 + instructions: 2977865537 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_vec_1024_32_v2: total: - instructions: 2847838345 + instructions: 2847838344 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_vec_1024_4_v2: total: - instructions: 2859810077 + instructions: 2859810076 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_vec_1024_512_v2: total: - instructions: 3048462844 + instructions: 3048462843 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_vec_1024_64_v2: total: - instructions: 2743478947 + instructions: 2743478946 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_vec_1024_8_v2: total: - instructions: 2836135832 + instructions: 2836135831 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_vec_128_1024_v2: total: - instructions: 849857474 + instructions: 849857473 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_vec_16_1024_v2: total: - instructions: 545476823 + instructions: 545476822 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_vec_256_1024_v2: total: - instructions: 1273898726 + instructions: 1273898725 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_vec_32_1024_v2: total: - instructions: 599978022 + instructions: 599978021 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_vec_4_1024_v2: total: - instructions: 499596845 + instructions: 499596844 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_vec_512_1024_v2: total: - instructions: 1901150141 + instructions: 1901150140 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_vec_512_u64_v2_mem_manager: total: - instructions: 1788534298 + instructions: 1787291841 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_vec_64_1024_v2: total: - instructions: 672281493 + instructions: 672281492 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_vec_8_1024_v2: total: - instructions: 502950892 + instructions: 502950891 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_get_vec_8_u64_v2: total: - instructions: 374122016 + instructions: 374122015 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_insert_10mib_values_v2: total: - instructions: 5235942932 + instructions: 5239411147 heap_increase: 322 stable_memory_increase: 3613 scopes: {} btreemap_insert_blob_1024_128_v1: total: - instructions: 5014998281 + instructions: 5015453786 heap_increase: 0 stable_memory_increase: 262 scopes: {} btreemap_insert_blob_1024_128_v2: total: - instructions: 5106242788 + instructions: 5106726267 heap_increase: 0 stable_memory_increase: 196 scopes: {} btreemap_insert_blob_1024_16_v1: total: - instructions: 5027835266 + instructions: 5028292822 heap_increase: 1 stable_memory_increase: 241 scopes: {} btreemap_insert_blob_1024_16_v2: total: - instructions: 5114695125 + instructions: 5115180811 heap_increase: 1 stable_memory_increase: 181 scopes: {} btreemap_insert_blob_1024_256_v1: total: - instructions: 5026099570 + instructions: 5026555704 heap_increase: 0 stable_memory_increase: 292 scopes: {} btreemap_insert_blob_1024_256_v2: total: - instructions: 5119781536 + instructions: 5120265704 heap_increase: 0 stable_memory_increase: 219 scopes: {} btreemap_insert_blob_1024_32_v1: total: - instructions: 5010195110 + instructions: 5010649863 heap_increase: 0 stable_memory_increase: 239 scopes: {} btreemap_insert_blob_1024_32_v2: total: - instructions: 5108393196 + instructions: 5108875913 heap_increase: 0 stable_memory_increase: 180 scopes: {} btreemap_insert_blob_1024_4_v1: total: - instructions: 5018694036 + instructions: 5019150317 heap_increase: 0 stable_memory_increase: 235 scopes: {} btreemap_insert_blob_1024_4_v2: total: - instructions: 5097577692 + instructions: 5098062004 heap_increase: 0 stable_memory_increase: 176 scopes: {} btreemap_insert_blob_1024_512_v1: total: - instructions: 5079937612 + instructions: 5080393216 heap_increase: 0 stable_memory_increase: 348 scopes: {} btreemap_insert_blob_1024_512_v2: total: - instructions: 5179453343 + instructions: 5179936939 heap_increase: 0 stable_memory_increase: 261 scopes: {} btreemap_insert_blob_1024_64_v1: total: - instructions: 5059628016 + instructions: 5060085474 heap_increase: 0 stable_memory_increase: 250 scopes: {} btreemap_insert_blob_1024_64_v2: total: - instructions: 5158529448 + instructions: 5159014982 heap_increase: 0 stable_memory_increase: 188 scopes: {} btreemap_insert_blob_1024_8_v1: total: - instructions: 5000351971 + instructions: 5000808591 heap_increase: 0 stable_memory_increase: 237 scopes: {} btreemap_insert_blob_1024_8_v2: total: - instructions: 5102533041 + instructions: 5103017728 heap_increase: 0 stable_memory_increase: 178 scopes: {} btreemap_insert_blob_128_1024_v1: total: - instructions: 1177562564 + instructions: 1178017150 heap_increase: 0 stable_memory_increase: 260 scopes: {} btreemap_insert_blob_128_1024_v2: total: - instructions: 1277620472 + instructions: 1278102996 heap_increase: 0 stable_memory_increase: 195 scopes: {} btreemap_insert_blob_16_1024_v1: total: - instructions: 552384426 + instructions: 552825157 heap_increase: 0 stable_memory_increase: 215 scopes: {} btreemap_insert_blob_16_1024_v2: total: - instructions: 647007689 + instructions: 647475677 heap_increase: 0 stable_memory_increase: 161 scopes: {} btreemap_insert_blob_256_1024_v1: total: - instructions: 1753933347 + instructions: 1754389880 heap_increase: 0 stable_memory_increase: 292 scopes: {} btreemap_insert_blob_256_1024_v2: total: - instructions: 1851920923 + instructions: 1852405490 heap_increase: 0 stable_memory_increase: 219 scopes: {} btreemap_insert_blob_32_1024_v1: total: - instructions: 586520785 + instructions: 586970666 heap_increase: 0 stable_memory_increase: 230 scopes: {} btreemap_insert_blob_32_1024_v2: total: - instructions: 683786948 + instructions: 684264479 heap_increase: 0 stable_memory_increase: 173 scopes: {} btreemap_insert_blob_4_1024_v1: total: - instructions: 496763393 + instructions: 497160150 heap_increase: 0 stable_memory_increase: 123 scopes: {} btreemap_insert_blob_4_1024_v2: total: - instructions: 593311593 + instructions: 593732538 heap_increase: 0 stable_memory_increase: 92 scopes: {} btreemap_insert_blob_512_1024_v1: total: - instructions: 2884408376 + instructions: 2884865378 heap_increase: 0 stable_memory_increase: 351 scopes: {} btreemap_insert_blob_512_1024_v2: total: - instructions: 2978281082 + instructions: 2978766142 heap_increase: 0 stable_memory_increase: 263 scopes: {} btreemap_insert_blob_512_u64_v2_mem_manager: total: - instructions: 2955956827 + instructions: 2955935009 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_insert_blob_64_1024_v1: total: - instructions: 829391525 + instructions: 829845537 heap_increase: 0 stable_memory_increase: 245 scopes: {} btreemap_insert_blob_64_1024_v2: total: - instructions: 925331123 + instructions: 925813019 heap_increase: 0 stable_memory_increase: 183 scopes: {} btreemap_insert_blob_8_1024_v1: total: - instructions: 522948090 + instructions: 523376468 heap_increase: 0 stable_memory_increase: 183 scopes: {} btreemap_insert_blob_8_1024_v2: total: - instructions: 624645838 + instructions: 625100458 heap_increase: 0 stable_memory_increase: 138 scopes: {} btreemap_insert_blob_8_u64_v1: total: - instructions: 329753248 + instructions: 330179833 heap_increase: 0 stable_memory_increase: 6 scopes: {} btreemap_insert_blob_8_u64_v2: total: - instructions: 440555372 + instructions: 441009397 heap_increase: 0 stable_memory_increase: 4 scopes: {} btreemap_insert_u64_blob_512_v2_mem_manager: total: - instructions: 644463951 + instructions: 644441819 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_insert_u64_blob_8_v1: total: - instructions: 339282380 + instructions: 339738737 heap_increase: 0 stable_memory_increase: 7 scopes: {} btreemap_insert_u64_blob_8_v2: total: - instructions: 419759116 + instructions: 420138321 heap_increase: 0 stable_memory_increase: 5 scopes: {} btreemap_insert_u64_u64_v1: total: - instructions: 344862639 + instructions: 345319699 heap_increase: 0 stable_memory_increase: 7 scopes: {} btreemap_insert_u64_u64_v2: total: - instructions: 428374777 + instructions: 428754946 heap_increase: 0 stable_memory_increase: 6 scopes: {} btreemap_insert_u64_u64_v2_mem_manager: total: - instructions: 558023818 + instructions: 557964960 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_insert_u64_vec_512_v2_mem_manager: total: - instructions: 892888165 + instructions: 891415932 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_insert_u64_vec_8_v2: total: - instructions: 425335599 + instructions: 425713956 heap_increase: 0 stable_memory_increase: 21 scopes: {} btreemap_insert_vec_1024_128_v2: total: - instructions: 3314740056 + instructions: 3315448237 heap_increase: 0 stable_memory_increase: 193 scopes: {} btreemap_insert_vec_1024_16_v2: total: - instructions: 3315277850 + instructions: 3315968588 heap_increase: 1 stable_memory_increase: 180 scopes: {} btreemap_insert_vec_1024_256_v2: total: - instructions: 3357772820 + instructions: 3358500614 heap_increase: 0 stable_memory_increase: 210 scopes: {} btreemap_insert_vec_1024_32_v2: total: - instructions: 3332153045 + instructions: 3332839138 heap_increase: 0 stable_memory_increase: 179 scopes: {} btreemap_insert_vec_1024_4_v2: total: - instructions: 3313866120 + instructions: 3314554499 heap_increase: 0 stable_memory_increase: 179 scopes: {} btreemap_insert_vec_1024_512_v2: total: - instructions: 3466828639 + instructions: 3467612167 heap_increase: 0 stable_memory_increase: 253 scopes: {} btreemap_insert_vec_1024_64_v2: total: - instructions: 3326392343 + instructions: 3327082541 heap_increase: 0 stable_memory_increase: 180 scopes: {} btreemap_insert_vec_1024_8_v2: total: - instructions: 3302396197 + instructions: 3303085278 heap_increase: 0 stable_memory_increase: 179 scopes: {} btreemap_insert_vec_128_1024_v2: total: - instructions: 1486332818 + instructions: 1487039111 heap_increase: 0 stable_memory_increase: 191 scopes: {} btreemap_insert_vec_16_1024_v2: total: - instructions: 1149471374 + instructions: 1150131140 heap_increase: 0 stable_memory_increase: 161 scopes: {} btreemap_insert_vec_256_1024_v2: total: - instructions: 1938269799 + instructions: 1938997627 heap_increase: 0 stable_memory_increase: 209 scopes: {} btreemap_insert_vec_32_1024_v2: total: - instructions: 1220743312 + instructions: 1221419468 heap_increase: 0 stable_memory_increase: 171 scopes: {} btreemap_insert_vec_4_1024_v2: total: - instructions: 1020332511 + instructions: 1020891918 heap_increase: 0 stable_memory_increase: 94 scopes: {} btreemap_insert_vec_512_1024_v2: total: - instructions: 2521203187 + instructions: 2521989177 heap_increase: 0 stable_memory_increase: 253 scopes: {} btreemap_insert_vec_512_u64_v2_mem_manager: total: - instructions: 2228702298 + instructions: 2227238424 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_insert_vec_64_1024_v2: total: - instructions: 1311071302 + instructions: 1311755313 heap_increase: 0 stable_memory_increase: 176 scopes: {} btreemap_insert_vec_8_1024_v2: total: - instructions: 1110614213 + instructions: 1111244572 heap_increase: 0 stable_memory_increase: 139 scopes: {} btreemap_insert_vec_8_u64_v2: total: - instructions: 579521757 + instructions: 579978908 heap_increase: 0 stable_memory_increase: 16 scopes: {} btreemap_pop_first_blob_1024_128_v1: total: - instructions: 9260865121 + instructions: 9261568801 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_1024_128_v2: total: - instructions: 9400102554 + instructions: 9400851440 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_1024_16_v1: total: - instructions: 9327385140 + instructions: 9328030570 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_1024_16_v2: total: - instructions: 9437432863 + instructions: 9438122841 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_1024_256_v1: total: - instructions: 9340847637 + instructions: 9341547136 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_1024_256_v2: total: - instructions: 9461131787 + instructions: 9461876208 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_1024_32_v1: total: - instructions: 9403084616 + instructions: 9403739620 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_1024_32_v2: total: - instructions: 9536710928 + instructions: 9537411251 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_1024_4_v1: total: - instructions: 9304429027 + instructions: 9305128854 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_1024_4_v2: total: - instructions: 9440836682 + instructions: 9441581485 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_1024_512_v1: total: - instructions: 9426386459 + instructions: 9427090606 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_1024_512_v2: total: - instructions: 9551548855 + instructions: 9552298128 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_1024_64_v1: total: - instructions: 9481876640 + instructions: 9482575998 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_1024_64_v2: total: - instructions: 9624930007 + instructions: 9625674110 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_1024_8_v1: total: - instructions: 9372005622 + instructions: 9372654485 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_1024_8_v2: total: - instructions: 9516246874 + instructions: 9516940578 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_128_1024_v1: total: - instructions: 2085403663 + instructions: 2086100298 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_128_1024_v2: total: - instructions: 2266285340 + instructions: 2267026668 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_16_1024_v1: total: - instructions: 842728119 + instructions: 843356103 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_16_1024_v2: total: - instructions: 1000137328 + instructions: 1000805582 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_256_1024_v1: total: - instructions: 3142281528 + instructions: 3142976220 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_256_1024_v2: total: - instructions: 3321176665 + instructions: 3321915903 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_32_1024_v1: total: - instructions: 959176197 + instructions: 959847828 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_32_1024_v2: total: - instructions: 1134973121 + instructions: 1135687838 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_4_1024_v1: total: - instructions: 406992992 + instructions: 407363392 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_4_1024_v2: total: - instructions: 501130202 + instructions: 501524415 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_512_1024_v1: total: - instructions: 5294784519 + instructions: 5295483250 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_512_1024_v2: total: - instructions: 5461101177 + instructions: 5461844680 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_64_1024_v1: total: - instructions: 1434482857 + instructions: 1435171876 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_64_1024_v2: total: - instructions: 1612269461 + instructions: 1613002699 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_8_1024_v1: total: - instructions: 684969831 + instructions: 685514410 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_8_1024_v2: total: - instructions: 834034855 + instructions: 834614348 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_8_u64_v1: total: - instructions: 444154705 + instructions: 444701759 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_blob_8_u64_v2: total: - instructions: 616695040 + instructions: 617279143 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_u64_blob_8_v1: total: - instructions: 555835474 + instructions: 556486284 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_u64_blob_8_v2: total: - instructions: 713330769 + instructions: 713870173 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_u64_u64_v1: total: - instructions: 558551350 + instructions: 559253008 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_u64_u64_v2: total: - instructions: 727358675 + instructions: 727949255 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_u64_vec_8_v2: total: - instructions: 712872081 + instructions: 719776851 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_vec_1024_128_v2: total: - instructions: 5826027830 + instructions: 5761991658 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_vec_1024_16_v2: total: - instructions: 5778608671 + instructions: 5717179787 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_vec_1024_256_v2: total: - instructions: 5940550062 + instructions: 5829657252 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_vec_1024_32_v2: total: - instructions: 5863286575 + instructions: 5810269597 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_vec_1024_4_v2: total: - instructions: 5770487236 + instructions: 5742300942 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_vec_1024_512_v2: total: - instructions: 6118172091 + instructions: 5986020811 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_vec_1024_64_v2: total: - instructions: 5853041213 + instructions: 5811504893 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_vec_1024_8_v2: total: - instructions: 5797049510 + instructions: 5754711207 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_vec_128_1024_v2: total: - instructions: 2343897267 + instructions: 2291883874 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_vec_16_1024_v2: total: - instructions: 1607302169 + instructions: 1607117801 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_vec_256_1024_v2: total: - instructions: 3146486989 + instructions: 2998053927 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_vec_32_1024_v2: total: - instructions: 1823184532 + instructions: 1813506621 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_vec_4_1024_v2: total: - instructions: 894380845 + instructions: 890314532 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_vec_512_1024_v2: total: - instructions: 4308120968 + instructions: 4111225415 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_vec_64_1024_v2: total: - instructions: 2017995479 + instructions: 1994569641 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_vec_8_1024_v2: total: - instructions: 1397567208 + instructions: 1377353608 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_first_vec_8_u64_v2: total: - instructions: 784907748 + instructions: 785947853 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_1024_128_v1: total: - instructions: 9063086851 + instructions: 9063791834 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_1024_128_v2: total: - instructions: 9216237818 + instructions: 9216988013 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_1024_16_v1: total: - instructions: 9119641266 + instructions: 9120287777 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_1024_16_v2: total: - instructions: 9264928050 + instructions: 9265619121 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_1024_256_v1: total: - instructions: 9045089417 + instructions: 9045790381 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_1024_256_v2: total: - instructions: 9183900935 + instructions: 9184646821 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_1024_32_v1: total: - instructions: 9040913737 + instructions: 9041569762 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_1024_32_v2: total: - instructions: 9213645657 + instructions: 9214347063 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_1024_4_v1: total: - instructions: 9140753070 + instructions: 9141453888 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_1024_4_v2: total: - instructions: 9275997503 + instructions: 9276743285 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_1024_512_v1: total: - instructions: 9252358675 + instructions: 9253062372 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_1024_512_v2: total: - instructions: 9383854867 + instructions: 9384603702 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_1024_64_v1: total: - instructions: 9303834610 + instructions: 9304533659 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_1024_64_v2: total: - instructions: 9473123535 + instructions: 9473867317 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_1024_8_v1: total: - instructions: 9041578248 + instructions: 9042228189 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_1024_8_v2: total: - instructions: 9201536722 + instructions: 9202231505 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_128_1024_v1: total: - instructions: 2031032460 + instructions: 2031729139 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_128_1024_v2: total: - instructions: 2214000607 + instructions: 2214741972 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_16_1024_v1: total: - instructions: 816602299 + instructions: 817230046 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_16_1024_v2: total: - instructions: 983346878 + instructions: 984014890 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_256_1024_v1: total: - instructions: 3087901197 + instructions: 3088595377 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_256_1024_v2: total: - instructions: 3266719668 + instructions: 3267458376 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_32_1024_v1: total: - instructions: 937798507 + instructions: 938469562 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_32_1024_v2: total: - instructions: 1114659597 + instructions: 1115373751 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_4_1024_v1: total: - instructions: 401020864 + instructions: 401390503 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_4_1024_v2: total: - instructions: 495076730 + instructions: 495470183 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_512_1024_v1: total: - instructions: 5189120100 + instructions: 5189818383 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_512_1024_v2: total: - instructions: 5354619711 + instructions: 5355362736 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_64_1024_v1: total: - instructions: 1402584057 + instructions: 1403273842 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_64_1024_v2: total: - instructions: 1585388198 + instructions: 1586122208 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_8_1024_v1: total: - instructions: 676786230 + instructions: 677330739 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_8_1024_v2: total: - instructions: 826203228 + instructions: 826782675 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_8_u64_v1: total: - instructions: 429568239 + instructions: 430116592 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_blob_8_u64_v2: total: - instructions: 599892304 + instructions: 600477753 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_u64_blob_8_v1: total: - instructions: 543551094 + instructions: 544202288 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_u64_blob_8_v2: total: - instructions: 700954317 + instructions: 701494074 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_u64_u64_v1: total: - instructions: 545307282 + instructions: 546009865 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_u64_u64_v2: total: - instructions: 713490656 + instructions: 714081947 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_u64_vec_8_v2: total: - instructions: 699071914 + instructions: 705741826 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_vec_1024_128_v2: total: - instructions: 6075315916 + instructions: 6011533162 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_vec_1024_16_v2: total: - instructions: 6053293994 + instructions: 5989724884 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_vec_1024_256_v2: total: - instructions: 6145453799 + instructions: 6050160348 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_vec_1024_32_v2: total: - instructions: 6043801791 + instructions: 5993230156 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_vec_1024_4_v2: total: - instructions: 6049467989 + instructions: 6019019977 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_vec_1024_512_v2: total: - instructions: 6345385609 + instructions: 6247725686 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_vec_1024_64_v2: total: - instructions: 6146363864 + instructions: 6106283157 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_vec_1024_8_v2: total: - instructions: 6006128114 + instructions: 5962128160 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_vec_128_1024_v2: total: - instructions: 2356287577 + instructions: 2314319264 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_vec_16_1024_v2: total: - instructions: 1594527452 + instructions: 1595336286 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_vec_256_1024_v2: total: - instructions: 3203496098 + instructions: 3053468325 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_vec_32_1024_v2: total: - instructions: 1815815429 + instructions: 1808743752 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_vec_4_1024_v2: total: - instructions: 887483609 + instructions: 884661229 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_vec_512_1024_v2: total: - instructions: 4433146037 + instructions: 4242078574 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_vec_64_1024_v2: total: - instructions: 2022758183 + instructions: 2001861757 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_vec_8_1024_v2: total: - instructions: 1392316114 + instructions: 1373780091 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_pop_last_vec_8_u64_v2: total: - instructions: 766305449 + instructions: 766206340 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1843,373 +1843,373 @@ benches: scopes: {} btreemap_remove_10mib_values_v2: total: - instructions: 5561141934 + instructions: 5564361780 heap_increase: 0 stable_memory_increase: 657 scopes: {} btreemap_remove_blob_1024_128_v1: total: - instructions: 6358055224 + instructions: 6358931604 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_1024_128_v2: total: - instructions: 6475223920 + instructions: 6476156404 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_1024_16_v1: total: - instructions: 6316136093 + instructions: 6316937914 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_1024_16_v2: total: - instructions: 6429631032 + instructions: 6430488735 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_1024_256_v1: total: - instructions: 6392922671 + instructions: 6393797546 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_1024_256_v2: total: - instructions: 6509536321 + instructions: 6510466761 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_1024_32_v1: total: - instructions: 6290137606 + instructions: 6290940701 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_1024_32_v2: total: - instructions: 6415430514 + instructions: 6416289543 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_1024_4_v1: total: - instructions: 6323601524 + instructions: 6324468042 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_1024_4_v2: total: - instructions: 6428005113 + instructions: 6428926805 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_1024_512_v1: total: - instructions: 6511558684 + instructions: 6512440385 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_1024_512_v2: total: - instructions: 6628059919 + instructions: 6628997702 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_1024_64_v1: total: - instructions: 6393419336 + instructions: 6394294842 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_1024_64_v2: total: - instructions: 6498655929 + instructions: 6499586873 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_1024_8_v1: total: - instructions: 6334842596 + instructions: 6335644027 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_1024_8_v2: total: - instructions: 6446598669 + instructions: 6447455642 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_128_1024_v1: total: - instructions: 1573792200 + instructions: 1574675940 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_128_1024_v2: total: - instructions: 1716743736 + instructions: 1717684218 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_16_1024_v1: total: - instructions: 757326760 + instructions: 758136944 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_16_1024_v2: total: - instructions: 895123692 + instructions: 895985762 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_256_1024_v1: total: - instructions: 2278298542 + instructions: 2279163553 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_256_1024_v2: total: - instructions: 2416985345 + instructions: 2417905594 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_32_1024_v1: total: - instructions: 826755315 + instructions: 827599093 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_32_1024_v2: total: - instructions: 965860176 + instructions: 966757633 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_4_1024_v1: total: - instructions: 485954034 + instructions: 486469240 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_4_1024_v2: total: - instructions: 599545000 + instructions: 600093407 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_512_1024_v1: total: - instructions: 3748097654 + instructions: 3748993388 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_512_1024_v2: total: - instructions: 3877288524 + instructions: 3878241779 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_512_u64_v2_mem_manager: total: - instructions: 3835029447 + instructions: 3835007839 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_64_1024_v1: total: - instructions: 1140140274 + instructions: 1141008090 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_64_1024_v2: total: - instructions: 1279997562 + instructions: 1280920638 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_8_1024_v1: total: - instructions: 644037226 + instructions: 644735138 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_8_1024_v2: total: - instructions: 776025360 + instructions: 776768069 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_8_u64_v1: total: - instructions: 437869128 + instructions: 438600480 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_blob_8_u64_v2: total: - instructions: 586279330 + instructions: 587060364 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_u64_blob_512_v2_mem_manager: total: - instructions: 948776805 + instructions: 948754885 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_u64_blob_8_v1: total: - instructions: 484959538 + instructions: 485748982 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_u64_blob_8_v2: total: - instructions: 600354024 + instructions: 601012747 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_u64_u64_v1: total: - instructions: 498062641 + instructions: 498934285 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_u64_u64_v2: total: - instructions: 622756312 + instructions: 623495817 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_u64_u64_v2_mem_manager: total: - instructions: 810755294 + instructions: 810683242 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_u64_vec_512_v2_mem_manager: total: - instructions: 1284354577 + instructions: 1282544441 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_u64_vec_8_v2: total: - instructions: 607007959 + instructions: 607735576 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_vec_1024_128_v2: total: - instructions: 5033983898 + instructions: 5035221138 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_vec_1024_16_v2: total: - instructions: 4864560421 + instructions: 4865772312 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_vec_1024_256_v2: total: - instructions: 5270860702 + instructions: 5272124100 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_vec_1024_32_v2: total: - instructions: 4932215759 + instructions: 4933428003 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_vec_1024_4_v2: total: - instructions: 4899015030 + instructions: 4900218523 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_vec_1024_512_v2: total: - instructions: 5446125648 + instructions: 5447497576 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_vec_1024_64_v2: total: - instructions: 4968491004 + instructions: 4969706493 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_vec_1024_8_v2: total: - instructions: 4885267051 + instructions: 4886477209 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_vec_128_1024_v2: total: - instructions: 2162040916 + instructions: 2163287854 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_vec_16_1024_v2: total: - instructions: 1557252449 + instructions: 1558378991 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_vec_256_1024_v2: total: - instructions: 2830522057 + instructions: 2831772215 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_vec_32_1024_v2: total: - instructions: 1681868752 + instructions: 1683024896 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_vec_4_1024_v2: total: - instructions: 1102611492 + instructions: 1103313327 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_vec_512_1024_v2: total: - instructions: 3897471341 + instructions: 3898865886 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_vec_512_u64_v2_mem_manager: total: - instructions: 3298722900 + instructions: 3296920864 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_vec_64_1024_v2: total: - instructions: 1877319028 + instructions: 1878533979 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_vec_8_1024_v2: total: - instructions: 1410367877 + instructions: 1411377325 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_remove_vec_8_u64_v2: total: - instructions: 748088987 + instructions: 748888529 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -2329,31 +2329,31 @@ benches: scopes: {} memory_manager_grow: total: - instructions: 346536495 + instructions: 346600495 heap_increase: 2 stable_memory_increase: 32000 scopes: {} memory_manager_overhead: total: - instructions: 1181962608 + instructions: 1181961433 heap_increase: 0 stable_memory_increase: 8320 scopes: {} vec_get_blob_128: total: - instructions: 17793392 + instructions: 19216242 heap_increase: 0 stable_memory_increase: 0 scopes: {} vec_get_blob_16: total: - instructions: 7463434 + instructions: 6432226 heap_increase: 0 stable_memory_increase: 0 scopes: {} vec_get_blob_32: total: - instructions: 8325760 + instructions: 7151657 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -2371,7 +2371,7 @@ benches: scopes: {} vec_get_blob_64: total: - instructions: 12704986 + instructions: 11320056 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -2383,7 +2383,7 @@ benches: scopes: {} vec_get_blob_8: total: - instructions: 5733873 + instructions: 5776205 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -2395,43 +2395,43 @@ benches: scopes: {} vec_insert_blob_128: total: - instructions: 4131425 + instructions: 4151425 heap_increase: 0 stable_memory_increase: 19 scopes: {} vec_insert_blob_16: total: - instructions: 3296228 + instructions: 3316228 heap_increase: 0 stable_memory_increase: 2 scopes: {} vec_insert_blob_32: total: - instructions: 3415468 + instructions: 3435468 heap_increase: 0 stable_memory_increase: 5 scopes: {} vec_insert_blob_4: total: - instructions: 3207469 + instructions: 3227469 heap_increase: 0 stable_memory_increase: 0 scopes: {} vec_insert_blob_64: total: - instructions: 3655805 + instructions: 3675805 heap_increase: 0 stable_memory_increase: 9 scopes: {} vec_insert_blob_8: total: - instructions: 3236890 + instructions: 3256890 heap_increase: 0 stable_memory_increase: 1 scopes: {} vec_insert_u64: total: - instructions: 5919433 + instructions: 5929433 heap_increase: 0 stable_memory_increase: 1 scopes: {} From c28a1f83419d8ab20d28d34419ec0350e4390d5c Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 16:35:51 +0200 Subject: [PATCH 24/68] lazy loaded keys --- src/btreemap.rs | 100 +++++++----- src/btreemap/iter.rs | 29 ++-- src/btreemap/node.rs | 344 ++++++++++++++++++++++++++++++---------- src/btreemap/node/v1.rs | 69 +++++--- src/btreemap/node/v2.rs | 65 ++++---- 5 files changed, 417 insertions(+), 190 deletions(-) diff --git a/src/btreemap.rs b/src/btreemap.rs index 7d7caa3a..e7e4c457 100644 --- a/src/btreemap.rs +++ b/src/btreemap.rs @@ -366,7 +366,7 @@ where let mut root = self.load_node(self.root_addr); // Check if the key already exists in the root. - if let Ok(idx) = root.search(&key) { + if let Ok(idx) = root.search(&key, self.memory()) { // The key exists. Overwrite it and return the previous value. let (_, previous_value) = root.swap_entry(idx, (key, value), self.memory()); self.save_node(&mut root); @@ -409,7 +409,7 @@ where assert!(!node.is_full()); // Look for the key in the node. - match node.search(&key) { + match node.search(&key, self.memory()) { Ok(idx) => { // The key is already in the node. // Overwrite it and return the previous value. @@ -442,7 +442,7 @@ where if child.is_full() { // Check if the key already exists in the child. - if let Ok(idx) = child.search(&key) { + if let Ok(idx) = child.search(&key, self.memory()) { // The key exists. Overwrite it and return the previous value. let (_, previous_value) = child.swap_entry(idx, (key, value), self.memory()); @@ -455,7 +455,7 @@ where // The children have now changed. Search again for // the child where we need to store the entry in. - let idx = node.search(&key).unwrap_or_else(|idx| idx); + let idx = node.search(&key, self.memory()).unwrap_or_else(|idx| idx); child = self.load_node(node.child(idx)); } @@ -469,7 +469,7 @@ where } } - /// Takes as input a nonfull internal `node` and index to its full child, then + /// Takes as input a non-full internal `node` and index to its full child, then /// splits this child into two, adding an additional child to `node`. /// /// Example: @@ -535,7 +535,7 @@ where { let node = self.load_node(node_addr); // Look for the key in the current node. - match node.search(key) { + match node.search(key, self.memory()) { Ok(idx) => Some(f(node, idx)), // Key found: apply `f`. Err(idx) => match node.node_type() { NodeType::Leaf => None, // At a leaf: key not present. @@ -652,7 +652,7 @@ where match node.node_type() { NodeType::Leaf => { - match node.search(key) { + match node.search(key, self.memory()) { Ok(idx) => { // Case 1: The node is a leaf node and the key exists in it. // This is the simplest case. The key is removed from the leaf. @@ -679,7 +679,7 @@ where } } NodeType::Internal => { - match node.search(key) { + match node.search(key, self.memory()) { Ok(idx) => { // Case 2: The node is an internal node and the key exists in it. @@ -1310,10 +1310,40 @@ mod test { } } - macro_rules! verify_and_run { - ($runner:ident, $K:ty, $V:ty) => {{ + /// Asserts that the associated `BOUND` for `$ty` is _not_ `Unbounded`. + macro_rules! assert_bounded { + ($ty:ty) => { + assert_ne!(<$ty>::BOUND, StorableBound::Unbounded, "Must be Bounded"); + }; + } + + /// Asserts that the associated `BOUND` for `$ty` _is_ `Unbounded`. + macro_rules! assert_unbounded { + ($ty:ty) => { + assert_eq!(<$ty>::BOUND, StorableBound::Unbounded, "Must be Unbounded"); + }; + } + + macro_rules! run_with_key { + ($runner:ident, $K:ty) => {{ verify_monotonic::<$K>(); - $runner::<$K, $V>(); + + // Empty value. + $runner::<$K, ()>(); + + // Bounded values. + assert_bounded!(u32); + $runner::<$K, u32>(); + + assert_bounded!(Blob<20>); + $runner::<$K, Blob<20>>(); + + // Unbounded values. + assert_unbounded!(MonotonicVec32); + $runner::<$K, MonotonicVec32>(); + + assert_unbounded!(MonotonicString32); + $runner::<$K, MonotonicString32>(); }}; } @@ -1322,37 +1352,19 @@ mod test { ($name:ident, $runner:ident) => { #[test] fn $name() { - use StorableBound::Unbounded; - - // Set, empty value, bounded. - { - type Value = (); - assert_ne!(::BOUND, Unbounded, "Must be Bounded"); - verify_and_run!($runner, u32, Value); - verify_and_run!($runner, Blob<10>, Value); - verify_and_run!($runner, MonotonicVec32, Value); - verify_and_run!($runner, MonotonicString32, Value); - } + // Bounded keys. + assert_bounded!(u32); + run_with_key!($runner, u32); - // Map, bounded value. - { - type Value = u32; - assert_ne!(Value::BOUND, Unbounded, "Must be Bounded"); - verify_and_run!($runner, u32, Value); - verify_and_run!($runner, Blob<10>, Value); - verify_and_run!($runner, MonotonicVec32, Value); - verify_and_run!($runner, MonotonicString32, Value); - } + assert_bounded!(Blob<10>); + run_with_key!($runner, Blob<10>); - // Map, unbounded value. - { - type Value = MonotonicVec32; - assert_eq!(Value::BOUND, Unbounded, "Must be Unbounded"); - verify_and_run!($runner, u32, Value); - verify_and_run!($runner, Blob<10>, Value); - verify_and_run!($runner, MonotonicVec32, Value); - verify_and_run!($runner, MonotonicString32, Value); - } + // Unbounded keys. + assert_unbounded!(MonotonicVec32); + run_with_key!($runner, MonotonicVec32); + + assert_unbounded!(MonotonicString32); + run_with_key!($runner, MonotonicString32); } }; } @@ -1440,7 +1452,7 @@ mod test { assert!(right_child.is_full()); let median_index = right_child.entries_len() / 2; let median_key = key(12); - assert_eq!(right_child.key(median_index), &median_key); + assert_eq!(right_child.key(median_index, btree.memory()), &median_key); // Overwrite the value of the median key. assert_eq!(btree.insert(median_key.clone(), value(123)), Some(value(0))); @@ -3089,7 +3101,7 @@ mod test { // [0, 1, 2, 3, 4, 5] [7, 8, 9, 10, 11] let root = btree.load_node(btree.root_addr); assert_eq!(root.node_type(), NodeType::Internal); - assert_eq!(root.keys(), vec![vec![6; 10_000]]); + assert_eq!(root.keys(btree.memory()), vec![vec![6; 10_000]]); assert_eq!(root.children_len(), 2); // Remove the element in the root. @@ -3101,7 +3113,7 @@ mod test { // [0, 1, 2, 3, 4] [7, 8, 9, 10, 11] let root = btree.load_node(btree.root_addr); assert_eq!(root.node_type(), NodeType::Internal); - assert_eq!(root.keys(), vec![vec![5; 10_000]]); + assert_eq!(root.keys(btree.memory()), vec![vec![5; 10_000]]); assert_eq!(root.children_len(), 2); // Remove the element in the root. This triggers the case where the root @@ -3113,7 +3125,7 @@ mod test { let root = btree.load_node(btree.root_addr); assert_eq!(root.node_type(), NodeType::Leaf); assert_eq!( - root.keys(), + root.keys(btree.memory()), vec![ vec![0; 10_000], vec![1; 10_000], diff --git a/src/btreemap/iter.rs b/src/btreemap/iter.rs index 82869508..1e653e16 100644 --- a/src/btreemap/iter.rs +++ b/src/btreemap/iter.rs @@ -94,7 +94,7 @@ where Bound::Included(key) | Bound::Excluded(key) => { let mut node = self.map.load_node(self.map.root_addr); loop { - match node.search(key) { + match node.search(key, self.map.memory()) { Ok(idx) => { if let Bound::Included(_) = self.range.start_bound() { // We found the key exactly matching the left bound. @@ -115,7 +115,7 @@ where }; if idx + 1 < node.entries_len() - && self.range.contains(node.key(idx + 1)) + && self.range.contains(node.key(idx + 1, self.map.memory())) { self.forward_cursors.push(Cursor::Node { node, @@ -152,7 +152,9 @@ where NodeType::Leaf => None, }; - if idx < node.entries_len() && self.range.contains(node.key(idx)) { + if idx < node.entries_len() + && self.range.contains(node.key(idx, self.map.memory())) + { self.forward_cursors.push(Cursor::Node { node, next: Index::Entry(idx), @@ -188,7 +190,7 @@ where Bound::Included(key) | Bound::Excluded(key) => { let mut node = self.map.load_node(self.map.root_addr); loop { - match node.search(key) { + match node.search(key, self.map.memory()) { Ok(idx) => { if let Bound::Included(_) = self.range.end_bound() { // We found the key exactly matching the right bound. @@ -208,7 +210,9 @@ where NodeType::Leaf => None, }; - if idx > 0 && self.range.contains(node.key(idx - 1)) { + if idx > 0 + && self.range.contains(node.key(idx - 1, self.map.memory())) + { self.backward_cursors.push(Cursor::Node { node, next: Index::Entry(idx - 1), @@ -243,7 +247,8 @@ where NodeType::Leaf => None, }; - if idx > 0 && self.range.contains(node.key(idx - 1)) { + if idx > 0 && self.range.contains(node.key(idx - 1, self.map.memory())) + { self.backward_cursors.push(Cursor::Node { node, next: Index::Entry(idx - 1), @@ -320,7 +325,7 @@ where next: Index::Entry(entry_idx), } => { // If the key does not belong to the range, iteration stops. - if !self.range.contains(node.key(entry_idx)) { + if !self.range.contains(node.key(entry_idx, self.map.memory())) { // Clear all cursors to avoid needless work in subsequent calls. self.forward_cursors = vec![]; self.backward_cursors = vec![]; @@ -328,7 +333,7 @@ where } let res = map(&node, entry_idx); - self.range.0 = Bound::Excluded(node.key(entry_idx).clone()); + self.range.0 = Bound::Excluded(node.key(entry_idx, self.map.memory()).clone()); let next = match node.node_type() { // If this is an internal node, add the next child to the cursors. @@ -403,7 +408,7 @@ where next: Index::Entry(entry_idx), } => { // If the key does not belong to the range, iteration stops. - if !self.range.contains(node.key(entry_idx)) { + if !self.range.contains(node.key(entry_idx, self.map.memory())) { // Clear all cursors to avoid needless work in subsequent calls. self.forward_cursors = vec![]; self.backward_cursors = vec![]; @@ -411,7 +416,7 @@ where } let res = map(&node, entry_idx); - self.range.1 = Bound::Excluded(node.key(entry_idx).clone()); + self.range.1 = Bound::Excluded(node.key(entry_idx, self.map.memory()).clone()); if let Some(next) = match node.node_type() { // If this is an internal node, add the previous child to the cursors. @@ -497,7 +502,7 @@ where fn next(&mut self) -> Option { self.0 - .next_map(|node, entry_idx| node.key(entry_idx).clone()) + .next_map(|node, entry_idx| node.key(entry_idx, self.0.map.memory()).clone()) } fn count(mut self) -> usize @@ -516,7 +521,7 @@ where { fn next_back(&mut self) -> Option { self.0 - .next_back_map(|node, entry_idx| node.key(entry_idx).clone()) + .next_back_map(|node, entry_idx| node.key(entry_idx, self.0.map.memory()).clone()) } } diff --git a/src/btreemap/node.rs b/src/btreemap/node.rs index 50af80e0..7079d7f0 100644 --- a/src/btreemap/node.rs +++ b/src/btreemap/node.rs @@ -39,6 +39,8 @@ pub enum NodeType { pub type Entry = (K, Vec); pub type EntryRef<'a, K> = (&'a K, &'a [u8]); +type LazyEntry = (LazyKey, LazyValue); + /// A node of a B-Tree. /// /// There are two versions of a `Node`: @@ -52,7 +54,7 @@ pub struct Node { address: Address, // List of tuples consisting of a key and the encoded value. // INVARIANT: the list is sorted by key. - keys_and_encoded_values: Vec<(K, Value)>, + keys_and_encoded_values: Vec>, // For the key at position I, children[I] points to the left // child of this key and children[I + 1] points to the right child. children: Vec
, @@ -106,14 +108,13 @@ impl Node { pub fn get_max(&self, memory: &M) -> Entry { match self.node_type { NodeType::Leaf => { - let last_idx = self.keys_and_encoded_values.len() - 1; + let entry = self + .keys_and_encoded_values + .last() + .expect("A node can never be empty"); ( - self.keys_and_encoded_values - .last() - .expect("A node can never be empty") - .0 - .clone(), - self.value(last_idx, memory).to_vec(), + self.get_key(entry, memory).clone(), + self.get_value(entry, memory).to_vec(), ) } NodeType::Internal => { @@ -164,32 +165,94 @@ impl Node { ) -> Entry { let (old_key, old_value) = core::mem::replace( &mut self.keys_and_encoded_values[idx], - (key, Value::by_value(value)), + (LazyKey::by_value(key), LazyValue::by_value(value)), ); - (old_key, self.extract_value(old_value, memory)) + ( + self.extract_key(old_key, memory), + self.extract_value(old_value, memory), + ) } /// Returns a reference to the entry at the specified index. pub fn entry(&self, idx: usize, memory: &M) -> EntryRef { - ( - &self.keys_and_encoded_values[idx].0, - self.value(idx, memory), - ) + (self.key(idx, memory), self.value(idx, memory)) + } + + /// Returns a reference to the cached key and loads it from memory if needed. + #[inline] + fn get_key<'a, M: Memory>(&'a self, (k, _): &'a LazyEntry, memory: &M) -> &'a K { + k.get_or_load(|offset| self.load_key_from_memory(offset, memory)) + } + + /// Returns a reference to the cached value and loads it from memory if needed. + #[inline] + fn get_value<'a, M: Memory>(&'a self, (_, v): &'a LazyEntry, memory: &M) -> &'a [u8] { + v.get_or_load(|offset| self.load_value_from_memory(offset, memory)) + } + + /// Returns a reference to the key at the specified index. + pub fn key(&self, idx: usize, memory: &M) -> &K { + self.get_key(&self.keys_and_encoded_values[idx], memory) } /// Returns a reference to the encoded value at the specified index. pub fn value(&self, idx: usize, memory: &M) -> &[u8] { - // Load and cache the value from the underlying memory if needed. - self.keys_and_encoded_values[idx] - .1 - .get_or_load(|offset| self.load_value_from_memory(offset, memory)) + self.get_value(&self.keys_and_encoded_values[idx], memory) + } + + /// Extracts the contents of key (by loading it first if it's not loaded yet). + fn extract_key(&self, key: LazyKey, memory: &M) -> K { + key.take_or_load(|offset| self.load_key_from_memory(offset, memory)) } /// Extracts the contents of value (by loading it first if it's not loaded yet). - fn extract_value(&self, value: Value, memory: &M) -> Vec { + fn extract_value(&self, value: LazyValue, memory: &M) -> Vec { value.take_or_load(|offset| self.load_value_from_memory(offset, memory)) } + /// Loads a key from stable memory at the given offset of this node. + fn load_key_from_memory(&self, mut offset: Bytes, memory: &M) -> K { + let reader = NodeReader { + address: self.address, + overflows: &self.overflows, + page_size: self.page_size(), + memory, + }; + + // Retrieve the key's size. + let key_offset = Address::from(offset.get()); + let key_size = match self.version { + Version::V1(_) => { + // In V1, the key's size is always stored in memory. + offset += U32_SIZE; + read_u32(&reader, key_offset) + } + Version::V2(_) => { + // In V2, if the key is fixed-size, use the maximum bound; + // otherwise, read its size from memory. + if K::BOUND.is_fixed_size() { + K::BOUND.max_size() + } else { + offset += U32_SIZE; + read_u32(&reader, key_offset) + } + } + }; + + let mut bytes = vec![]; + read_to_vec( + &reader, + Address::from((offset).get()), + &mut bytes, + key_size as usize, + ); + //println!("ABC load key_size: {key_size:?}"); + //println!("ABC load key: {bytes:?}"); + let key = K::from_bytes(Cow::Borrowed(&bytes)); + + key + } + /// Loads a value from stable memory at the given offset of this node. fn load_value_from_memory(&self, offset: Bytes, memory: &M) -> Vec { let reader = NodeReader { @@ -199,13 +262,13 @@ impl Node { memory, }; - let value_len = read_u32(&reader, Address::from(offset.get())) as usize; + let value_size = read_u32(&reader, Address::from(offset.get())) as usize; let mut bytes = vec![]; read_to_vec( &reader, Address::from((offset + U32_SIZE).get()), &mut bytes, - value_len, + value_size, ); bytes @@ -215,11 +278,6 @@ impl Node { self.version.page_size() } - /// Returns a reference to the key at the specified index. - pub fn key(&self, idx: usize) -> &K { - &self.keys_and_encoded_values[idx].0 - } - /// Returns the child's address at the given index. pub fn child(&self, idx: usize) -> Address { self.children[idx] @@ -251,28 +309,41 @@ impl Node { } /// Inserts a new entry at the specified index. - pub fn insert_entry(&mut self, idx: usize, (key, encoded_value): Entry) { + pub fn insert_entry(&mut self, idx: usize, (key, value): Entry) { self.keys_and_encoded_values - .insert(idx, (key, Value::by_value(encoded_value))); + .insert(idx, (LazyKey::by_value(key), LazyValue::by_value(value))); + // let keys: Vec<_> = self + // .keys_and_encoded_values + // .iter() + // .map(|(key, _)| format!("{key:?}")) + // .collect(); + //println!("ABC insert_entry: {:?}", keys); } /// Returns the entry at the specified index while consuming this node. pub fn into_entry(mut self, idx: usize, memory: &M) -> Entry { let keys_and_encoded_values = core::mem::take(&mut self.keys_and_encoded_values); let (key, value) = keys_and_encoded_values.into_iter().nth(idx).unwrap(); - (key, self.extract_value(value, memory)) + ( + self.extract_key(key, memory), + self.extract_value(value, memory), + ) } /// Removes the entry at the specified index. pub fn remove_entry(&mut self, idx: usize, memory: &M) -> Entry { let (key, value) = self.keys_and_encoded_values.remove(idx); - (key, self.extract_value(value, memory)) + //println!("ABC remove_entry: {:?}", key); + ( + self.extract_key(key, memory), + self.extract_value(value, memory), + ) } /// Adds a new entry at the back of the node. - pub fn push_entry(&mut self, (key, encoded_value): Entry) { + pub fn push_entry(&mut self, (key, value): Entry) { self.keys_and_encoded_values - .push((key, Value::by_value(encoded_value))); + .push((LazyKey::by_value(key), LazyValue::by_value(value))); } /// Removes an entry from the back of the node. @@ -282,12 +353,15 @@ impl Node { return None; } - let (key, last_value) = self + let (key, value) = self .keys_and_encoded_values .pop() .expect("node must not be empty"); - Some((key, self.extract_value(last_value, memory))) + Some(( + self.extract_key(key, memory), + self.extract_value(value, memory), + )) } /// Merges the entries and children of the `source` node into self, along with the median entry. @@ -307,19 +381,32 @@ impl Node { median: Entry, allocator: &mut Allocator, ) { - // Load all the values from the source node first, as they will be moved out. + // let self_keys: Vec<_> = self + // .keys_and_encoded_values + // .iter() + // .map(|(k, _)| format!("{k:?}")) + // .collect(); + + // let source_keys: Vec<_> = source + // .keys_and_encoded_values + // .iter() + // .map(|(k, _)| format!("{k:?}\n")) + // .collect(); + //println!("ABC merge\n self : {self_keys:?}\n source : {source_keys:?} \n"); + + // Load all the entries from the source node first, as they will be moved out. for i in 0..source.entries_len() { - source.value(i, allocator.memory()); + let _e = source.entry(i, allocator.memory()); } - if source.key(0) > self.key(0) { + if source.key(0, allocator.memory()) > self.key(0, allocator.memory()) { // The source node has keys that are greater than self. // Append the source node into self. - Self::append(self, &mut source, median); + Self::append(self, &mut source, median, allocator.memory()); } else { // self has keys that are greater than the source node. // Append self into the source node (which more efficient). - Self::append(&mut source, self, median); + Self::append(&mut source, self, median, allocator.memory()); // Move the entries and children into self. self.keys_and_encoded_values = core::mem::take(&mut source.keys_and_encoded_values); @@ -340,14 +427,14 @@ impl Node { /// /// POSTCONDITION: /// * `b` is empty. - fn append(a: &mut Node, b: &mut Node, median: Entry) { + fn append(a: &mut Node, b: &mut Node, median: Entry, memory: &M) { // Assert preconditions. let a_len = a.entries_len(); assert_eq!(a.node_type(), b.node_type()); assert!(b.entries_len() > 0); assert!(a_len > 0); - assert!(a.key(a_len - 1) < &median.0); - assert!(&median.0 < b.key(0)); + assert!(a.key(a_len - 1, memory) < &median.0); + assert!(&median.0 < b.key(0, memory)); a.push_entry(median); @@ -364,18 +451,15 @@ impl Node { #[cfg(test)] pub fn entries(&self, memory: &M) -> Vec> { - self.keys_and_encoded_values - .iter() - .enumerate() - .map(|(idx, (key, _))| (key.clone(), self.value(idx, memory).to_vec())) + (0..self.keys_and_encoded_values.len()) + .map(|i| (self.key(i, memory).clone(), self.value(i, memory).to_vec())) .collect() } #[cfg(test)] - pub fn keys(&self) -> Vec { - self.keys_and_encoded_values - .iter() - .map(|(key, _)| key.clone()) + pub fn keys(&self, memory: &M) -> Vec { + (0..self.keys_and_encoded_values.len()) + .map(|i| self.key(i, memory).clone()) .collect() } @@ -395,9 +479,26 @@ impl Node { /// of the matching key. If the value is not found then `Result::Err` is /// returned, containing the index where a matching key could be inserted /// while maintaining sorted order. - pub fn search(&self, key: &K) -> Result { - self.keys_and_encoded_values - .binary_search_by_key(&key, |entry| &entry.0) + pub fn search(&self, key: &K, memory: &M) -> Result { + // let self_keys: Vec<_> = self + // .keys_and_encoded_values + // .iter() + // .map(|(k, _)| format!("{k:?}")) + // .collect(); + // println!("\nABC search BEFORE: {self_keys:?}"); + + let result = self + .keys_and_encoded_values + .binary_search_by_key(&key, |entry| self.get_key(entry, memory)); + + // let self_keys: Vec<_> = self + // .keys_and_encoded_values + // .iter() + // .map(|(k, _)| format!("{k:?}")) + // .collect(); + //println!("ABC search AFTER : {self_keys:?}"); + + result } /// Returns the maximum size a node can be if it has bounded keys and values. @@ -422,9 +523,9 @@ impl Node { pub fn split(&mut self, sibling: &mut Node, memory: &M) -> Entry { debug_assert!(self.is_full()); - // Load the values that will be moved out of the node and into the new sibling. + // Load the entries that will be moved out of the node and into the new sibling. for idx in B..self.entries_len() { - self.value(idx, memory); + let _e = self.entry(idx, memory); } // Move the entries and children above the median into the new sibling. @@ -463,53 +564,134 @@ impl NodeHeader { } } -/// The value in a K/V pair. +struct LazyKey(LazyObject); + +impl LazyKey { + /// Create a lazy key with a memory offset. + #[inline] + pub fn by_ref(offset: Bytes) -> Self { + Self(LazyObject::by_ref(offset)) + } + + /// Create a lazy key from a key. + #[inline] + pub fn by_value(key: K) -> Self { + Self(LazyObject::by_value(key)) + } + + /// Returns a reference to the key, loading it if necessary. + #[inline] + pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> K) -> &K { + self.0.get_or_load(load) + } + + /// Consumes self and returns the key, loading it if necessary. + #[inline] + pub fn take_or_load(self, load: impl FnOnce(Bytes) -> K) -> K { + self.0.take_or_load(load) + } +} + +impl std::fmt::Debug for LazyKey { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match &self.0 { + LazyObject::ByVal(ref key) => { + let bytes = key.to_bytes_checked(); + f.debug_tuple("LazyKey") + .field(&format_args!("LazyKey::ByVal({:?})", bytes)) + .finish() + } + LazyObject::ByRef { offset, loaded } => match loaded.get() { + Some(key) => { + let bytes = key.to_bytes_checked(); + f.debug_tuple("LazyKey") + .field(&format_args!("LazyKey::ByRef(loaded:{:?})", bytes)) + .finish() + } + None => f + .debug_tuple("LazyKey") + .field(&format_args!("LazyKey::ByRef(offset: {:?})", offset)) + .finish(), + }, + } + } +} + +type Blob = Vec; + +#[derive(Debug)] +struct LazyValue(LazyObject); + +impl LazyValue { + /// Create a lazy value with a memory offset. + #[inline] + pub fn by_ref(offset: Bytes) -> Self { + Self(LazyObject::by_ref(offset)) + } + + /// Create a lazy value from a value. + #[inline] + pub fn by_value(value: Blob) -> Self { + Self(LazyObject::by_value(value)) + } + + /// Returns a reference to the key, loading it if necessary. + #[inline] + pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> Blob) -> &Blob { + self.0.get_or_load(load) + } + + /// Consumes self and returns the key, loading it if necessary. + #[inline] + pub fn take_or_load(self, load: impl FnOnce(Bytes) -> Blob) -> Blob { + self.0.take_or_load(load) + } +} + +/// A lazy-loaded object. #[derive(Debug)] -enum Value { - /// The value's encoded bytes. - ByVal(Vec), +enum LazyObject { + /// Object stored by value. + ByVal(T), + /// Object stored by reference, loaded on demand. ByRef { - /// The value's offset in the node. + /// Memory offset of the object. offset: Bytes, - /// The lazily loaded encoded bytes. - loaded_value: OnceCell>, + /// Cache for the lazily loaded object. + loaded: OnceCell, }, } -impl Value { +impl LazyObject { + /// Create a lazy object with a memory offset. pub fn by_ref(offset: Bytes) -> Self { Self::ByRef { offset, - loaded_value: Default::default(), + loaded: Default::default(), } } - pub fn by_value(value: Vec) -> Self { + /// Create a lazy object from a value. + pub fn by_value(value: T) -> Self { Self::ByVal(value) } - /// Returns a reference to the value if the value has been loaded or runs the given function to - /// load the value. - pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> Vec) -> &[u8] { + /// Get a reference to the object, loading it if necessary. + pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> T) -> &T { match self { - Value::ByVal(v) => &v[..], - Value::ByRef { - offset, - loaded_value: value, - } => value.get_or_init(|| load(*offset)), + LazyObject::ByVal(v) => v, + LazyObject::ByRef { offset, loaded } => loaded.get_or_init(|| load(*offset)), } } - /// Extracts the value while consuming self if the value has been loaded or runs the given - /// function to load the value. - pub fn take_or_load(self, load: impl FnOnce(Bytes) -> Vec) -> Vec { + /// Consume self and return the object, loading it if necessary. + pub fn take_or_load(self, load: impl FnOnce(Bytes) -> T) -> T { match self { - Value::ByVal(v) => v, - Value::ByRef { - offset, - loaded_value: value, - } => value.into_inner().unwrap_or_else(|| load(offset)), + LazyObject::ByVal(v) => v, + LazyObject::ByRef { offset, loaded } => { + loaded.into_inner().unwrap_or_else(|| load(offset)) + } } } } diff --git a/src/btreemap/node/v1.rs b/src/btreemap/node/v1.rs index 2dc02857..ddaf20aa 100644 --- a/src/btreemap/node/v1.rs +++ b/src/btreemap/node/v1.rs @@ -15,9 +15,13 @@ //! ---------------------------------------- //! # Entries (k) ↕ 2 bytes //! ---------------------------------------- <-- Entries (upto `CAPACITY` entries) -//! Key(0) +//! Key(0) size ↕ 4 bytes //! ---------------------------------------- -//! Value(0) +//! Key(0) ↕ `max_key_size` bytes +//! ---------------------------------------- +//! Value(0) size ↕ 4 bytes +//! ---------------------------------------- +//! Value(0) ↕ `max_value_size` bytes //! ---------------------------------------- //! Key(1) size ↕ 4 bytes //! ---------------------------------------- @@ -59,26 +63,37 @@ impl Node { max_value_size: u32, memory: &M, ) -> Self { - #[cfg(feature = "canbench")] - let _p = canbench::profile("node_load_v1"); - // Load the entries. let mut keys_encoded_values = Vec::with_capacity(header.num_entries as usize); let mut offset = NodeHeader::size(); - let mut buf = vec![]; + //const LOAD_SIZE_THRESHOLD: u32 = 8; + //let mut buf = vec![]; for _ in 0..header.num_entries { - // Read the key's size. - let key_size = read_u32(memory, address + offset); + let key_offset = offset; + //let key_size = read_u32(memory, address + offset); offset += U32_SIZE; - - // Read the key. - read_to_vec(memory, address + offset, &mut buf, key_size as usize); + // let key = if key_size <= LOAD_SIZE_THRESHOLD { + // read_to_vec(memory, address + offset, &mut buf, key_size as usize); + // LazyKey::by_value(K::from_bytes(Cow::Borrowed(&buf))) + // } else { + // LazyKey::by_ref(key_offset) + // }; + let key = LazyKey::by_ref(key_offset); offset += Bytes::from(max_key_size); - let key = K::from_bytes(Cow::Borrowed(&buf)); - // Values are loaded lazily. Store a reference and skip loading it. - keys_encoded_values.push((key, Value::by_ref(offset))); - offset += U32_SIZE + Bytes::from(max_value_size); + let value_offset = offset; + // let value_size = read_u32(memory, address + offset); + offset += U32_SIZE; + // let value = if value_size <= LOAD_SIZE_THRESHOLD { + // read_to_vec(memory, address + offset, &mut buf, value_size as usize); + // LazyValue::by_value(buf.to_vec()) + // } else { + // LazyValue::by_ref(value_offset) + // }; + let value = LazyValue::by_ref(value_offset); + offset += Bytes::from(max_value_size); + + keys_encoded_values.push((key, value)); } // Load children if this is an internal node. @@ -113,9 +128,6 @@ impl Node { } pub(super) fn save_v1(&self, memory: &M) { - #[cfg(feature = "canbench")] - let _p = canbench::profile("node_save_v1"); - match self.node_type { NodeType::Leaf => { assert!(self.children.is_empty()); @@ -129,10 +141,17 @@ impl Node { assert!(!self.keys_and_encoded_values.is_empty() || !self.children.is_empty()); // Assert entries are sorted in strictly increasing order. + + // TODO: remove debug code. + // let entries: Vec<_> = (0..self.entries_len()) + // .map(|i| (i, self.key(i, memory).to_bytes(), self.value(i, memory))) + // .collect(); + //println!("ABC: entries: {:?}", entries); + assert!(self .keys_and_encoded_values .windows(2) - .all(|e| e[0].0 < e[1].0)); + .all(|arr| self.get_key(&arr[0], memory) < self.get_key(&arr[1], memory))); let (max_key_size, max_value_size) = match self.version { Version::V1(DerivedPageSize { @@ -156,16 +175,16 @@ impl Node { let mut offset = NodeHeader::size(); - // Load all the values. This is necessary so that we don't overwrite referenced - // values when writing the entries to the node. + // Load all the entries. This is necessary so that we don't overwrite referenced + // entries when writing the entries to the node. for i in 0..self.keys_and_encoded_values.len() { - self.value(i, memory); + self.entry(i, memory); } // Write the entries. - for (idx, (key, _)) in self.keys_and_encoded_values.iter().enumerate() { + for i in 0..self.keys_and_encoded_values.len() { // Write the size of the key. - let key_bytes = key.to_bytes_checked(); + let key_bytes = self.key(i, memory).to_bytes_checked(); write_u32(memory, self.address + offset, key_bytes.len() as u32); offset += U32_SIZE; @@ -174,7 +193,7 @@ impl Node { offset += Bytes::from(max_key_size); // Write the size of the value. - let value = self.value(idx, memory); + let value = self.value(i, memory); write_u32(memory, self.address + offset, value.len() as u32); offset += U32_SIZE; diff --git a/src/btreemap/node/v2.rs b/src/btreemap/node/v2.rs index f559d777..c6a0555b 100644 --- a/src/btreemap/node/v2.rs +++ b/src/btreemap/node/v2.rs @@ -111,9 +111,6 @@ impl Node { header: NodeHeader, memory: &M, ) -> Self { - #[cfg(feature = "canbench")] - let _p = canbench::profile("node_load_v2"); - // Load the node, including any overflows, into a buffer. let overflows = read_overflows(address, memory); @@ -151,32 +148,49 @@ impl Node { // Load the keys. let mut keys_encoded_values = Vec::with_capacity(num_entries); - let mut buf = vec![]; + //const LOAD_SIZE_THRESHOLD: u32 = 8; + //let mut buf = vec![]; for _ in 0..num_entries { - // Load the key's size. + let key_offset = Bytes::from(offset.get()); + + // Advance offset by the key_size type size if applicable. let key_size = if K::BOUND.is_fixed_size() { // Key is fixed in size. The size of the key is always its max size. K::BOUND.max_size() } else { // Key is not fixed in size. Read the size from memory. - let value = read_u32(&reader, offset); + let key_size = read_u32(&reader, offset); + //println!("ABC read key_size: {:?}", key_size); offset += U32_SIZE; - value + key_size }; - - // Load the key. - read_to_vec(&reader, offset, &mut buf, key_size as usize); - let key = K::from_bytes(Cow::Borrowed(&buf)); + // let key = if key_size <= LOAD_SIZE_THRESHOLD { + // read_to_vec(&reader, offset, &mut buf, key_size as usize); + // LazyKey::by_value(K::from_bytes(Cow::Borrowed(&buf))) + // } else { + // LazyKey::by_ref(key_offset) + // }; + let key = LazyKey::by_ref(key_offset); + + // Advance offset by the size of the key. offset += Bytes::from(key_size); - keys_encoded_values.push((key, Value::by_ref(Bytes::from(0usize)))); + + keys_encoded_values.push((key, LazyValue::by_ref(Bytes::from(0usize)))); } // Load the values for (_key, value) in keys_encoded_values.iter_mut() { - // Load the values lazily. - *value = Value::by_ref(Bytes::from(offset.get())); - let value_size = read_u32(&reader, offset) as usize; - offset += U32_SIZE + Bytes::from(value_size as u64); + let value_offset = Bytes::from(offset.get()); + let value_size = read_u32(&reader, offset); + offset += U32_SIZE; + // *value = if value_size <= LOAD_SIZE_THRESHOLD { + // read_to_vec(&reader, offset, &mut buf, value_size as usize); + // LazyValue::by_value(buf.to_vec()) + // } else { + // LazyValue::by_ref(value_offset) + // }; + *value = LazyValue::by_ref(value_offset); + offset += Bytes::from(value_size as u64); } Self { @@ -191,17 +205,14 @@ impl Node { // Saves the node to memory. pub(super) fn save_v2(&mut self, allocator: &mut Allocator) { - #[cfg(feature = "canbench")] - let _p = canbench::profile("node_save_v2"); - let page_size = self.version.page_size().get(); assert!(page_size >= MINIMUM_PAGE_SIZE); - // Load all the values. This is necessary so that we don't overwrite referenced - // values when writing the entries to the node. - for i in 0..self.keys_and_encoded_values.len() { - self.value(i, allocator.memory()); - } + // Load all the entry. This is necessary so that we don't overwrite referenced + // entry when writing the entries to the node. + let entries: Vec<_> = (0..self.keys_and_encoded_values.len()) + .map(|i| self.entry(i, allocator.memory())) + .collect(); // Initialize a NodeWriter. The NodeWriter takes care of allocating/deallocating // overflow pages as needed. @@ -239,9 +250,8 @@ impl Node { } // Write the keys. - for (key, _) in self.keys_and_encoded_values.iter() { + for (key, _) in &entries { let key_bytes = key.to_bytes_checked(); - // Write the size of the key if it isn't fixed in size. if !K::BOUND.is_fixed_size() { writer.write_u32(offset, key_bytes.len() as u32); @@ -254,9 +264,8 @@ impl Node { } // Write the values. - for idx in 0..self.entries_len() { + for (_, value) in &entries { // Write the size of the value. - let value = self.value(idx, writer.memory()); writer.write_u32(offset, value.len() as u32); offset += U32_SIZE; From 7fb9f5bcb16de56283d8aa7d4a48b127207f2058 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Wed, 23 Apr 2025 14:05:36 +0200 Subject: [PATCH 25/68] mv _vX --- benchmarks/src/btreemap.rs | 774 ++++++++++++++++++------------------- 1 file changed, 387 insertions(+), 387 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index 9d4d56cf..d25150e7 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -72,85 +72,85 @@ bench_tests! { // === V1 === // V1 blob K x 1024 - btreemap_insert_blob_4_1024_v1, insert_helper_v1, Blob4, Blob1024; - btreemap_insert_blob_8_1024_v1, insert_helper_v1, Blob8, Blob1024; - btreemap_insert_blob_16_1024_v1, insert_helper_v1, Blob16, Blob1024; - btreemap_insert_blob_32_1024_v1, insert_helper_v1, Blob32, Blob1024; - btreemap_insert_blob_64_1024_v1, insert_helper_v1, Blob64, Blob1024; - btreemap_insert_blob_128_1024_v1, insert_helper_v1, Blob128, Blob1024; - btreemap_insert_blob_256_1024_v1, insert_helper_v1, Blob256, Blob1024; - btreemap_insert_blob_512_1024_v1, insert_helper_v1, Blob512, Blob1024; + btreemap_v1_insert_blob_4_1024, insert_helper_v1, Blob4, Blob1024; + btreemap_v1_insert_blob_8_1024, insert_helper_v1, Blob8, Blob1024; + btreemap_v1_insert_blob_16_1024, insert_helper_v1, Blob16, Blob1024; + btreemap_v1_insert_blob_32_1024, insert_helper_v1, Blob32, Blob1024; + btreemap_v1_insert_blob_64_1024, insert_helper_v1, Blob64, Blob1024; + btreemap_v1_insert_blob_128_1024, insert_helper_v1, Blob128, Blob1024; + btreemap_v1_insert_blob_256_1024, insert_helper_v1, Blob256, Blob1024; + btreemap_v1_insert_blob_512_1024, insert_helper_v1, Blob512, Blob1024; // V1 blob 1024 x V - btreemap_insert_blob_1024_4_v1, insert_helper_v1, Blob1024, Blob4; - btreemap_insert_blob_1024_8_v1, insert_helper_v1, Blob1024, Blob8; - btreemap_insert_blob_1024_16_v1, insert_helper_v1, Blob1024, Blob16; - btreemap_insert_blob_1024_32_v1, insert_helper_v1, Blob1024, Blob32; - btreemap_insert_blob_1024_64_v1, insert_helper_v1, Blob1024, Blob64; - btreemap_insert_blob_1024_128_v1, insert_helper_v1, Blob1024, Blob128; - btreemap_insert_blob_1024_256_v1, insert_helper_v1, Blob1024, Blob256; - btreemap_insert_blob_1024_512_v1, insert_helper_v1, Blob1024, Blob512; + btreemap_v1_insert_blob_1024_4, insert_helper_v1, Blob1024, Blob4; + btreemap_v1_insert_blob_1024_8, insert_helper_v1, Blob1024, Blob8; + btreemap_v1_insert_blob_1024_16, insert_helper_v1, Blob1024, Blob16; + btreemap_v1_insert_blob_1024_32, insert_helper_v1, Blob1024, Blob32; + btreemap_v1_insert_blob_1024_64, insert_helper_v1, Blob1024, Blob64; + btreemap_v1_insert_blob_1024_128, insert_helper_v1, Blob1024, Blob128; + btreemap_v1_insert_blob_1024_256, insert_helper_v1, Blob1024, Blob256; + btreemap_v1_insert_blob_1024_512, insert_helper_v1, Blob1024, Blob512; // V1 u64 / blob8 - btreemap_insert_u64_u64_v1, insert_helper_v1, u64, u64; - btreemap_insert_u64_blob_8_v1, insert_helper_v1, u64, Blob8; - btreemap_insert_blob_8_u64_v1, insert_helper_v1, Blob8, u64; + btreemap_v1_insert_u64_u64, insert_helper_v1, u64, u64; + btreemap_v1_insert_u64_blob_8, insert_helper_v1, u64, Blob8; + btreemap_v1_insert_blob_8_u64, insert_helper_v1, Blob8, u64; // === V2 === // V2 blob K x 1024 - btreemap_insert_blob_4_1024_v2, insert_helper_v2, Blob4, Blob1024; - btreemap_insert_blob_8_1024_v2, insert_helper_v2, Blob8, Blob1024; - btreemap_insert_blob_16_1024_v2, insert_helper_v2, Blob16, Blob1024; - btreemap_insert_blob_32_1024_v2, insert_helper_v2, Blob32, Blob1024; - btreemap_insert_blob_64_1024_v2, insert_helper_v2, Blob64, Blob1024; - btreemap_insert_blob_128_1024_v2, insert_helper_v2, Blob128, Blob1024; - btreemap_insert_blob_256_1024_v2, insert_helper_v2, Blob256, Blob1024; - btreemap_insert_blob_512_1024_v2, insert_helper_v2, Blob512, Blob1024; + btreemap_v2_insert_blob_4_1024, insert_helper_v2, Blob4, Blob1024; + btreemap_v2_insert_blob_8_1024, insert_helper_v2, Blob8, Blob1024; + btreemap_v2_insert_blob_16_1024, insert_helper_v2, Blob16, Blob1024; + btreemap_v2_insert_blob_32_1024, insert_helper_v2, Blob32, Blob1024; + btreemap_v2_insert_blob_64_1024, insert_helper_v2, Blob64, Blob1024; + btreemap_v2_insert_blob_128_1024, insert_helper_v2, Blob128, Blob1024; + btreemap_v2_insert_blob_256_1024, insert_helper_v2, Blob256, Blob1024; + btreemap_v2_insert_blob_512_1024, insert_helper_v2, Blob512, Blob1024; // V2 blob 1024 x V - btreemap_insert_blob_1024_4_v2, insert_helper_v2, Blob1024, Blob4; - btreemap_insert_blob_1024_8_v2, insert_helper_v2, Blob1024, Blob8; - btreemap_insert_blob_1024_16_v2, insert_helper_v2, Blob1024, Blob16; - btreemap_insert_blob_1024_32_v2, insert_helper_v2, Blob1024, Blob32; - btreemap_insert_blob_1024_64_v2, insert_helper_v2, Blob1024, Blob64; - btreemap_insert_blob_1024_128_v2, insert_helper_v2, Blob1024, Blob128; - btreemap_insert_blob_1024_256_v2, insert_helper_v2, Blob1024, Blob256; - btreemap_insert_blob_1024_512_v2, insert_helper_v2, Blob1024, Blob512; + btreemap_v2_insert_blob_1024_4, insert_helper_v2, Blob1024, Blob4; + btreemap_v2_insert_blob_1024_8, insert_helper_v2, Blob1024, Blob8; + btreemap_v2_insert_blob_1024_16, insert_helper_v2, Blob1024, Blob16; + btreemap_v2_insert_blob_1024_32, insert_helper_v2, Blob1024, Blob32; + btreemap_v2_insert_blob_1024_64, insert_helper_v2, Blob1024, Blob64; + btreemap_v2_insert_blob_1024_128, insert_helper_v2, Blob1024, Blob128; + btreemap_v2_insert_blob_1024_256, insert_helper_v2, Blob1024, Blob256; + btreemap_v2_insert_blob_1024_512, insert_helper_v2, Blob1024, Blob512; // V2 vec K x 1024 - btreemap_insert_vec_4_1024_v2, insert_helper_v2, FixedVec4, FixedVec1024; - btreemap_insert_vec_8_1024_v2, insert_helper_v2, FixedVec8, FixedVec1024; - btreemap_insert_vec_16_1024_v2, insert_helper_v2, FixedVec16, FixedVec1024; - btreemap_insert_vec_32_1024_v2, insert_helper_v2, FixedVec32, FixedVec1024; - btreemap_insert_vec_64_1024_v2, insert_helper_v2, FixedVec64, FixedVec1024; - btreemap_insert_vec_128_1024_v2, insert_helper_v2, FixedVec128, FixedVec1024; - btreemap_insert_vec_256_1024_v2, insert_helper_v2, FixedVec256, FixedVec1024; - btreemap_insert_vec_512_1024_v2, insert_helper_v2, FixedVec512, FixedVec1024; + btreemap_v2_insert_vec_4_1024, insert_helper_v2, FixedVec4, FixedVec1024; + btreemap_v2_insert_vec_8_1024, insert_helper_v2, FixedVec8, FixedVec1024; + btreemap_v2_insert_vec_16_1024, insert_helper_v2, FixedVec16, FixedVec1024; + btreemap_v2_insert_vec_32_1024, insert_helper_v2, FixedVec32, FixedVec1024; + btreemap_v2_insert_vec_64_1024, insert_helper_v2, FixedVec64, FixedVec1024; + btreemap_v2_insert_vec_128_1024, insert_helper_v2, FixedVec128, FixedVec1024; + btreemap_v2_insert_vec_256_1024, insert_helper_v2, FixedVec256, FixedVec1024; + btreemap_v2_insert_vec_512_1024, insert_helper_v2, FixedVec512, FixedVec1024; // V2 vec 1024 x V - btreemap_insert_vec_1024_4_v2, insert_helper_v2, FixedVec1024, FixedVec4; - btreemap_insert_vec_1024_8_v2, insert_helper_v2, FixedVec1024, FixedVec8; - btreemap_insert_vec_1024_16_v2, insert_helper_v2, FixedVec1024, FixedVec16; - btreemap_insert_vec_1024_32_v2, insert_helper_v2, FixedVec1024, FixedVec32; - btreemap_insert_vec_1024_64_v2, insert_helper_v2, FixedVec1024, FixedVec64; - btreemap_insert_vec_1024_128_v2, insert_helper_v2, FixedVec1024, FixedVec128; - btreemap_insert_vec_1024_256_v2, insert_helper_v2, FixedVec1024, FixedVec256; - btreemap_insert_vec_1024_512_v2, insert_helper_v2, FixedVec1024, FixedVec512; + btreemap_v2_insert_vec_1024_4, insert_helper_v2, FixedVec1024, FixedVec4; + btreemap_v2_insert_vec_1024_8, insert_helper_v2, FixedVec1024, FixedVec8; + btreemap_v2_insert_vec_1024_16, insert_helper_v2, FixedVec1024, FixedVec16; + btreemap_v2_insert_vec_1024_32, insert_helper_v2, FixedVec1024, FixedVec32; + btreemap_v2_insert_vec_1024_64, insert_helper_v2, FixedVec1024, FixedVec64; + btreemap_v2_insert_vec_1024_128, insert_helper_v2, FixedVec1024, FixedVec128; + btreemap_v2_insert_vec_1024_256, insert_helper_v2, FixedVec1024, FixedVec256; + btreemap_v2_insert_vec_1024_512, insert_helper_v2, FixedVec1024, FixedVec512; // V2 u64 / blob8 / vec8 - btreemap_insert_u64_u64_v2, insert_helper_v2, u64, u64; - btreemap_insert_u64_blob_8_v2, insert_helper_v2, u64, Blob8; - btreemap_insert_blob_8_u64_v2, insert_helper_v2, Blob8, u64; - btreemap_insert_u64_vec_8_v2, insert_helper_v2, u64, FixedVec8; - btreemap_insert_vec_8_u64_v2, insert_helper_v2, FixedVec8, u64; + btreemap_v2_insert_u64_u64, insert_helper_v2, u64, u64; + btreemap_v2_insert_u64_blob_8, insert_helper_v2, u64, Blob8; + btreemap_v2_insert_blob_8_u64, insert_helper_v2, Blob8, u64; + btreemap_v2_insert_u64_vec_8, insert_helper_v2, u64, FixedVec8; + btreemap_v2_insert_vec_8_u64, insert_helper_v2, FixedVec8, u64; // V2 memory manager u64 / blob512 / vec512 - btreemap_insert_u64_u64_v2_mem_manager, insert_helper_v2_mem_manager, u64, u64; - btreemap_insert_u64_blob_512_v2_mem_manager, insert_helper_v2_mem_manager, u64, Blob512; - btreemap_insert_blob_512_u64_v2_mem_manager, insert_helper_v2_mem_manager, Blob512, u64; - btreemap_insert_u64_vec_512_v2_mem_manager, insert_helper_v2_mem_manager, u64, FixedVec512; - btreemap_insert_vec_512_u64_v2_mem_manager, insert_helper_v2_mem_manager, FixedVec512, u64; + btreemap_v2_insert_u64_u64_mem_manager, insert_helper_v2_mem_manager, u64, u64; + btreemap_v2_insert_u64_blob_512_mem_manager, insert_helper_v2_mem_manager, u64, Blob512; + btreemap_v2_insert_blob_512_u64_mem_manager, insert_helper_v2_mem_manager, Blob512, u64; + btreemap_v2_insert_u64_vec_512_mem_manager, insert_helper_v2_mem_manager, u64, FixedVec512; + btreemap_v2_insert_vec_512_u64_mem_manager, insert_helper_v2_mem_manager, FixedVec512, u64; } fn insert_helper_v1() -> BenchResult { @@ -184,7 +184,7 @@ fn insert_helper(mut btree: BTreeMap BenchResult { +pub fn btreemap_v2_insert_10mib_values() -> BenchResult { let count = 20; let mut btree = BTreeMap::new(DefaultMemoryImpl::default()); let mut rng = Rng::from_seed(0); @@ -202,85 +202,85 @@ bench_tests! { // === V1 === // V1 blob K x 1024 - btreemap_remove_blob_4_1024_v1, remove_helper_v1, Blob4, Blob1024; - btreemap_remove_blob_8_1024_v1, remove_helper_v1, Blob8, Blob1024; - btreemap_remove_blob_16_1024_v1, remove_helper_v1, Blob16, Blob1024; - btreemap_remove_blob_32_1024_v1, remove_helper_v1, Blob32, Blob1024; - btreemap_remove_blob_64_1024_v1, remove_helper_v1, Blob64, Blob1024; - btreemap_remove_blob_128_1024_v1, remove_helper_v1, Blob128, Blob1024; - btreemap_remove_blob_256_1024_v1, remove_helper_v1, Blob256, Blob1024; - btreemap_remove_blob_512_1024_v1, remove_helper_v1, Blob512, Blob1024; + btreemap_v1_remove_blob_4_1024_v1, remove_helper_v1, Blob4, Blob1024; + btreemap_v1_remove_blob_8_1024_v1, remove_helper_v1, Blob8, Blob1024; + btreemap_v1_remove_blob_16_1024_v1, remove_helper_v1, Blob16, Blob1024; + btreemap_v1_remove_blob_32_1024_v1, remove_helper_v1, Blob32, Blob1024; + btreemap_v1_remove_blob_64_1024_v1, remove_helper_v1, Blob64, Blob1024; + btreemap_v1_remove_blob_128_1024_v1, remove_helper_v1, Blob128, Blob1024; + btreemap_v1_remove_blob_256_1024_v1, remove_helper_v1, Blob256, Blob1024; + btreemap_v1_remove_blob_512_1024_v1, remove_helper_v1, Blob512, Blob1024; // V1 blob 1024 x V - btreemap_remove_blob_1024_4_v1, remove_helper_v1, Blob1024, Blob4; - btreemap_remove_blob_1024_8_v1, remove_helper_v1, Blob1024, Blob8; - btreemap_remove_blob_1024_16_v1, remove_helper_v1, Blob1024, Blob16; - btreemap_remove_blob_1024_32_v1, remove_helper_v1, Blob1024, Blob32; - btreemap_remove_blob_1024_64_v1, remove_helper_v1, Blob1024, Blob64; - btreemap_remove_blob_1024_128_v1, remove_helper_v1, Blob1024, Blob128; - btreemap_remove_blob_1024_256_v1, remove_helper_v1, Blob1024, Blob256; - btreemap_remove_blob_1024_512_v1, remove_helper_v1, Blob1024, Blob512; + btreemap_v1_remove_blob_1024_4_v1, remove_helper_v1, Blob1024, Blob4; + btreemap_v1_remove_blob_1024_8_v1, remove_helper_v1, Blob1024, Blob8; + btreemap_v1_remove_blob_1024_16_v1, remove_helper_v1, Blob1024, Blob16; + btreemap_v1_remove_blob_1024_32_v1, remove_helper_v1, Blob1024, Blob32; + btreemap_v1_remove_blob_1024_64_v1, remove_helper_v1, Blob1024, Blob64; + btreemap_v1_remove_blob_1024_128_v1, remove_helper_v1, Blob1024, Blob128; + btreemap_v1_remove_blob_1024_256_v1, remove_helper_v1, Blob1024, Blob256; + btreemap_v1_remove_blob_1024_512_v1, remove_helper_v1, Blob1024, Blob512; // V1 u64 / blob8 - btreemap_remove_u64_u64_v1, remove_helper_v1, u64, u64; - btreemap_remove_u64_blob_8_v1, remove_helper_v1, u64, Blob8; - btreemap_remove_blob_8_u64_v1, remove_helper_v1, Blob8, u64; + btreemap_v1_remove_u64_u64_v1, remove_helper_v1, u64, u64; + btreemap_v1_remove_u64_blob_8_v1, remove_helper_v1, u64, Blob8; + btreemap_v1_remove_blob_8_u64_v1, remove_helper_v1, Blob8, u64; // === V2 === // V2 blob K x 1024 - btreemap_remove_blob_4_1024_v2, remove_helper_v2, Blob4, Blob1024; - btreemap_remove_blob_8_1024_v2, remove_helper_v2, Blob8, Blob1024; - btreemap_remove_blob_16_1024_v2, remove_helper_v2, Blob16, Blob1024; - btreemap_remove_blob_32_1024_v2, remove_helper_v2, Blob32, Blob1024; - btreemap_remove_blob_64_1024_v2, remove_helper_v2, Blob64, Blob1024; - btreemap_remove_blob_128_1024_v2, remove_helper_v2, Blob128, Blob1024; - btreemap_remove_blob_256_1024_v2, remove_helper_v2, Blob256, Blob1024; - btreemap_remove_blob_512_1024_v2, remove_helper_v2, Blob512, Blob1024; + btreemap_v2_remove_blob_4_1024, remove_helper_v2, Blob4, Blob1024; + btreemap_v2_remove_blob_8_1024, remove_helper_v2, Blob8, Blob1024; + btreemap_v2_remove_blob_16_1024, remove_helper_v2, Blob16, Blob1024; + btreemap_v2_remove_blob_32_1024, remove_helper_v2, Blob32, Blob1024; + btreemap_v2_remove_blob_64_1024, remove_helper_v2, Blob64, Blob1024; + btreemap_v2_remove_blob_128_1024, remove_helper_v2, Blob128, Blob1024; + btreemap_v2_remove_blob_256_1024, remove_helper_v2, Blob256, Blob1024; + btreemap_v2_remove_blob_512_1024, remove_helper_v2, Blob512, Blob1024; // V2 blob 1024 x V - btreemap_remove_blob_1024_4_v2, remove_helper_v2, Blob1024, Blob4; - btreemap_remove_blob_1024_8_v2, remove_helper_v2, Blob1024, Blob8; - btreemap_remove_blob_1024_16_v2, remove_helper_v2, Blob1024, Blob16; - btreemap_remove_blob_1024_32_v2, remove_helper_v2, Blob1024, Blob32; - btreemap_remove_blob_1024_64_v2, remove_helper_v2, Blob1024, Blob64; - btreemap_remove_blob_1024_128_v2, remove_helper_v2, Blob1024, Blob128; - btreemap_remove_blob_1024_256_v2, remove_helper_v2, Blob1024, Blob256; - btreemap_remove_blob_1024_512_v2, remove_helper_v2, Blob1024, Blob512; + btreemap_v2_remove_blob_1024_4, remove_helper_v2, Blob1024, Blob4; + btreemap_v2_remove_blob_1024_8, remove_helper_v2, Blob1024, Blob8; + btreemap_v2_remove_blob_1024_16, remove_helper_v2, Blob1024, Blob16; + btreemap_v2_remove_blob_1024_32, remove_helper_v2, Blob1024, Blob32; + btreemap_v2_remove_blob_1024_64, remove_helper_v2, Blob1024, Blob64; + btreemap_v2_remove_blob_1024_128, remove_helper_v2, Blob1024, Blob128; + btreemap_v2_remove_blob_1024_256, remove_helper_v2, Blob1024, Blob256; + btreemap_v2_remove_blob_1024_512, remove_helper_v2, Blob1024, Blob512; // V2 vec K x 1024 - btreemap_remove_vec_4_1024_v2, remove_helper_v2, FixedVec4, FixedVec1024; - btreemap_remove_vec_8_1024_v2, remove_helper_v2, FixedVec8, FixedVec1024; - btreemap_remove_vec_16_1024_v2, remove_helper_v2, FixedVec16, FixedVec1024; - btreemap_remove_vec_32_1024_v2, remove_helper_v2, FixedVec32, FixedVec1024; - btreemap_remove_vec_64_1024_v2, remove_helper_v2, FixedVec64, FixedVec1024; - btreemap_remove_vec_128_1024_v2, remove_helper_v2, FixedVec128, FixedVec1024; - btreemap_remove_vec_256_1024_v2, remove_helper_v2, FixedVec256, FixedVec1024; - btreemap_remove_vec_512_1024_v2, remove_helper_v2, FixedVec512, FixedVec1024; + btreemap_v2_remove_vec_4_1024, remove_helper_v2, FixedVec4, FixedVec1024; + btreemap_v2_remove_vec_8_1024, remove_helper_v2, FixedVec8, FixedVec1024; + btreemap_v2_remove_vec_16_1024, remove_helper_v2, FixedVec16, FixedVec1024; + btreemap_v2_remove_vec_32_1024, remove_helper_v2, FixedVec32, FixedVec1024; + btreemap_v2_remove_vec_64_1024, remove_helper_v2, FixedVec64, FixedVec1024; + btreemap_v2_remove_vec_128_1024, remove_helper_v2, FixedVec128, FixedVec1024; + btreemap_v2_remove_vec_256_1024, remove_helper_v2, FixedVec256, FixedVec1024; + btreemap_v2_remove_vec_512_1024, remove_helper_v2, FixedVec512, FixedVec1024; // V2 vec 1024 x V - btreemap_remove_vec_1024_4_v2, remove_helper_v2, FixedVec1024, FixedVec4; - btreemap_remove_vec_1024_8_v2, remove_helper_v2, FixedVec1024, FixedVec8; - btreemap_remove_vec_1024_16_v2, remove_helper_v2, FixedVec1024, FixedVec16; - btreemap_remove_vec_1024_32_v2, remove_helper_v2, FixedVec1024, FixedVec32; - btreemap_remove_vec_1024_64_v2, remove_helper_v2, FixedVec1024, FixedVec64; - btreemap_remove_vec_1024_128_v2, remove_helper_v2, FixedVec1024, FixedVec128; - btreemap_remove_vec_1024_256_v2, remove_helper_v2, FixedVec1024, FixedVec256; - btreemap_remove_vec_1024_512_v2, remove_helper_v2, FixedVec1024, FixedVec512; + btreemap_v2_remove_vec_1024_4, remove_helper_v2, FixedVec1024, FixedVec4; + btreemap_v2_remove_vec_1024_8, remove_helper_v2, FixedVec1024, FixedVec8; + btreemap_v2_remove_vec_1024_16, remove_helper_v2, FixedVec1024, FixedVec16; + btreemap_v2_remove_vec_1024_32, remove_helper_v2, FixedVec1024, FixedVec32; + btreemap_v2_remove_vec_1024_64, remove_helper_v2, FixedVec1024, FixedVec64; + btreemap_v2_remove_vec_1024_128, remove_helper_v2, FixedVec1024, FixedVec128; + btreemap_v2_remove_vec_1024_256, remove_helper_v2, FixedVec1024, FixedVec256; + btreemap_v2_remove_vec_1024_512, remove_helper_v2, FixedVec1024, FixedVec512; // V2 u64 / blob8 / vec8 - btreemap_remove_u64_u64_v2, remove_helper_v2, u64, u64; - btreemap_remove_u64_blob_8_v2, remove_helper_v2, u64, Blob8; - btreemap_remove_blob_8_u64_v2, remove_helper_v2, Blob8, u64; - btreemap_remove_u64_vec_8_v2, remove_helper_v2, u64, FixedVec8; - btreemap_remove_vec_8_u64_v2, remove_helper_v2, FixedVec8, u64; + btreemap_v2_remove_u64_u64, remove_helper_v2, u64, u64; + btreemap_v2_remove_u64_blob_8, remove_helper_v2, u64, Blob8; + btreemap_v2_remove_blob_8_u64, remove_helper_v2, Blob8, u64; + btreemap_v2_remove_u64_vec_8, remove_helper_v2, u64, FixedVec8; + btreemap_v2_remove_vec_8_u64, remove_helper_v2, FixedVec8, u64; // V2 memory manager u64 / blob512 / vec512 - btreemap_remove_u64_u64_v2_mem_manager, remove_helper_v2_mem_manager, u64, u64; - btreemap_remove_u64_blob_512_v2_mem_manager, remove_helper_v2_mem_manager, u64, Blob512; - btreemap_remove_blob_512_u64_v2_mem_manager, remove_helper_v2_mem_manager, Blob512, u64; - btreemap_remove_u64_vec_512_v2_mem_manager, remove_helper_v2_mem_manager, u64, FixedVec512; - btreemap_remove_vec_512_u64_v2_mem_manager, remove_helper_v2_mem_manager, FixedVec512, u64; + btreemap_v2_remove_u64_u64_mem_manager, remove_helper_v2_mem_manager, u64, u64; + btreemap_v2_remove_u64_blob_512_mem_manager, remove_helper_v2_mem_manager, u64, Blob512; + btreemap_v2_remove_blob_512_u64_mem_manager, remove_helper_v2_mem_manager, Blob512, u64; + btreemap_v2_remove_u64_vec_512_mem_manager, remove_helper_v2_mem_manager, u64, FixedVec512; + btreemap_v2_remove_vec_512_u64_mem_manager, remove_helper_v2_mem_manager, FixedVec512, u64; } fn remove_helper_v1() -> BenchResult { @@ -318,7 +318,7 @@ fn remove_helper(mut btree: BTreeMap BenchResult { +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); @@ -339,85 +339,85 @@ bench_tests! { // === V1 === // V1 blob K x 1024 - btreemap_get_blob_4_1024_v1, get_helper_v1, Blob4, Blob1024; - btreemap_get_blob_8_1024_v1, get_helper_v1, Blob8, Blob1024; - btreemap_get_blob_16_1024_v1, get_helper_v1, Blob16, Blob1024; - btreemap_get_blob_32_1024_v1, get_helper_v1, Blob32, Blob1024; - btreemap_get_blob_64_1024_v1, get_helper_v1, Blob64, Blob1024; - btreemap_get_blob_128_1024_v1, get_helper_v1, Blob128, Blob1024; - btreemap_get_blob_256_1024_v1, get_helper_v1, Blob256, Blob1024; - btreemap_get_blob_512_1024_v1, get_helper_v1, Blob512, Blob1024; + btreemap_v1_get_blob_4_1024, get_helper_v1, Blob4, Blob1024; + btreemap_v1_get_blob_8_1024, get_helper_v1, Blob8, Blob1024; + btreemap_v1_get_blob_16_1024, get_helper_v1, Blob16, Blob1024; + btreemap_v1_get_blob_32_1024, get_helper_v1, Blob32, Blob1024; + btreemap_v1_get_blob_64_1024, get_helper_v1, Blob64, Blob1024; + btreemap_v1_get_blob_128_1024, get_helper_v1, Blob128, Blob1024; + btreemap_v1_get_blob_256_1024, get_helper_v1, Blob256, Blob1024; + btreemap_v1_get_blob_512_1024, get_helper_v1, Blob512, Blob1024; // V1 blob 1024 x V - btreemap_get_blob_1024_4_v1, get_helper_v1, Blob1024, Blob4; - btreemap_get_blob_1024_8_v1, get_helper_v1, Blob1024, Blob8; - btreemap_get_blob_1024_16_v1, get_helper_v1, Blob1024, Blob16; - btreemap_get_blob_1024_32_v1, get_helper_v1, Blob1024, Blob32; - btreemap_get_blob_1024_64_v1, get_helper_v1, Blob1024, Blob64; - btreemap_get_blob_1024_128_v1, get_helper_v1, Blob1024, Blob128; - btreemap_get_blob_1024_256_v1, get_helper_v1, Blob1024, Blob256; - btreemap_get_blob_1024_512_v1, get_helper_v1, Blob1024, Blob512; + btreemap_v1_get_blob_1024_4, get_helper_v1, Blob1024, Blob4; + btreemap_v1_get_blob_1024_8, get_helper_v1, Blob1024, Blob8; + btreemap_v1_get_blob_1024_16, get_helper_v1, Blob1024, Blob16; + btreemap_v1_get_blob_1024_32, get_helper_v1, Blob1024, Blob32; + btreemap_v1_get_blob_1024_64, get_helper_v1, Blob1024, Blob64; + btreemap_v1_get_blob_1024_128, get_helper_v1, Blob1024, Blob128; + btreemap_v1_get_blob_1024_256, get_helper_v1, Blob1024, Blob256; + btreemap_v1_get_blob_1024_512, get_helper_v1, Blob1024, Blob512; // V1 u64 / blob8 - btreemap_get_u64_u64_v1, get_helper_v1, u64, u64; - btreemap_get_u64_blob_8_v1, get_helper_v1, u64, Blob8; - btreemap_get_blob_8_u64_v1, get_helper_v1, Blob8, u64; + btreemap_v1_get_u64_u64, get_helper_v1, u64, u64; + btreemap_v1_get_u64_blob_8, get_helper_v1, u64, Blob8; + btreemap_v1_get_blob_8_u64, get_helper_v1, Blob8, u64; // === V2 === // V2 blob K x 1024 - btreemap_get_blob_4_1024_v2, get_helper_v2, Blob4, Blob1024; - btreemap_get_blob_8_1024_v2, get_helper_v2, Blob8, Blob1024; - btreemap_get_blob_16_1024_v2, get_helper_v2, Blob16, Blob1024; - btreemap_get_blob_32_1024_v2, get_helper_v2, Blob32, Blob1024; - btreemap_get_blob_64_1024_v2, get_helper_v2, Blob64, Blob1024; - btreemap_get_blob_128_1024_v2, get_helper_v2, Blob128, Blob1024; - btreemap_get_blob_256_1024_v2, get_helper_v2, Blob256, Blob1024; - btreemap_get_blob_512_1024_v2, get_helper_v2, Blob512, Blob1024; + btreemap_v2_get_blob_4_1024, get_helper_v2, Blob4, Blob1024; + btreemap_v2_get_blob_8_1024, get_helper_v2, Blob8, Blob1024; + btreemap_v2_get_blob_16_1024, get_helper_v2, Blob16, Blob1024; + btreemap_v2_get_blob_32_1024, get_helper_v2, Blob32, Blob1024; + btreemap_v2_get_blob_64_1024, get_helper_v2, Blob64, Blob1024; + btreemap_v2_get_blob_128_1024, get_helper_v2, Blob128, Blob1024; + btreemap_v2_get_blob_256_1024, get_helper_v2, Blob256, Blob1024; + btreemap_v2_get_blob_512_1024, get_helper_v2, Blob512, Blob1024; // V2 blob 1024 x V - btreemap_get_blob_1024_4_v2, get_helper_v2, Blob1024, Blob4; - btreemap_get_blob_1024_8_v2, get_helper_v2, Blob1024, Blob8; - btreemap_get_blob_1024_16_v2, get_helper_v2, Blob1024, Blob16; - btreemap_get_blob_1024_32_v2, get_helper_v2, Blob1024, Blob32; - btreemap_get_blob_1024_64_v2, get_helper_v2, Blob1024, Blob64; - btreemap_get_blob_1024_128_v2, get_helper_v2, Blob1024, Blob128; - btreemap_get_blob_1024_256_v2, get_helper_v2, Blob1024, Blob256; - btreemap_get_blob_1024_512_v2, get_helper_v2, Blob1024, Blob512; + btreemap_v2_get_blob_1024_4, get_helper_v2, Blob1024, Blob4; + btreemap_v2_get_blob_1024_8, get_helper_v2, Blob1024, Blob8; + btreemap_v2_get_blob_1024_16, get_helper_v2, Blob1024, Blob16; + btreemap_v2_get_blob_1024_32, get_helper_v2, Blob1024, Blob32; + btreemap_v2_get_blob_1024_64, get_helper_v2, Blob1024, Blob64; + btreemap_v2_get_blob_1024_128, get_helper_v2, Blob1024, Blob128; + btreemap_v2_get_blob_1024_256, get_helper_v2, Blob1024, Blob256; + btreemap_v2_get_blob_1024_512, get_helper_v2, Blob1024, Blob512; // V2 vec K x 1024 - btreemap_get_vec_4_1024_v2, get_helper_v2, FixedVec4, FixedVec1024; - btreemap_get_vec_8_1024_v2, get_helper_v2, FixedVec8, FixedVec1024; - btreemap_get_vec_16_1024_v2, get_helper_v2, FixedVec16, FixedVec1024; - btreemap_get_vec_32_1024_v2, get_helper_v2, FixedVec32, FixedVec1024; - btreemap_get_vec_64_1024_v2, get_helper_v2, FixedVec64, FixedVec1024; - btreemap_get_vec_128_1024_v2, get_helper_v2, FixedVec128, FixedVec1024; - btreemap_get_vec_256_1024_v2, get_helper_v2, FixedVec256, FixedVec1024; - btreemap_get_vec_512_1024_v2, get_helper_v2, FixedVec512, FixedVec1024; + btreemap_v2_get_vec_4_1024, get_helper_v2, FixedVec4, FixedVec1024; + btreemap_v2_get_vec_8_1024, get_helper_v2, FixedVec8, FixedVec1024; + btreemap_v2_get_vec_16_1024, get_helper_v2, FixedVec16, FixedVec1024; + btreemap_v2_get_vec_32_1024, get_helper_v2, FixedVec32, FixedVec1024; + btreemap_v2_get_vec_64_1024, get_helper_v2, FixedVec64, FixedVec1024; + btreemap_v2_get_vec_128_1024, get_helper_v2, FixedVec128, FixedVec1024; + btreemap_v2_get_vec_256_1024, get_helper_v2, FixedVec256, FixedVec1024; + btreemap_v2_get_vec_512_1024, get_helper_v2, FixedVec512, FixedVec1024; // V2 vec 1024 x V - btreemap_get_vec_1024_4_v2, get_helper_v2, FixedVec1024, FixedVec4; - btreemap_get_vec_1024_8_v2, get_helper_v2, FixedVec1024, FixedVec8; - btreemap_get_vec_1024_16_v2, get_helper_v2, FixedVec1024, FixedVec16; - btreemap_get_vec_1024_32_v2, get_helper_v2, FixedVec1024, FixedVec32; - btreemap_get_vec_1024_64_v2, get_helper_v2, FixedVec1024, FixedVec64; - btreemap_get_vec_1024_128_v2, get_helper_v2, FixedVec1024, FixedVec128; - btreemap_get_vec_1024_256_v2, get_helper_v2, FixedVec1024, FixedVec256; - btreemap_get_vec_1024_512_v2, get_helper_v2, FixedVec1024, FixedVec512; + btreemap_v2_get_vec_1024_4, get_helper_v2, FixedVec1024, FixedVec4; + btreemap_v2_get_vec_1024_8, get_helper_v2, FixedVec1024, FixedVec8; + btreemap_v2_get_vec_1024_16, get_helper_v2, FixedVec1024, FixedVec16; + btreemap_v2_get_vec_1024_32, get_helper_v2, FixedVec1024, FixedVec32; + btreemap_v2_get_vec_1024_64, get_helper_v2, FixedVec1024, FixedVec64; + btreemap_v2_get_vec_1024_128, get_helper_v2, FixedVec1024, FixedVec128; + btreemap_v2_get_vec_1024_256, get_helper_v2, FixedVec1024, FixedVec256; + btreemap_v2_get_vec_1024_512, get_helper_v2, FixedVec1024, FixedVec512; // V2 u64 / blob8 / vec8 - btreemap_get_u64_u64_v2, get_helper_v2, u64, u64; - btreemap_get_u64_blob_8_v2, get_helper_v2, u64, Blob8; - btreemap_get_blob_8_u64_v2, get_helper_v2, Blob8, u64; - btreemap_get_u64_vec_8_v2, get_helper_v2, u64, FixedVec8; - btreemap_get_vec_8_u64_v2, get_helper_v2, FixedVec8, u64; + btreemap_v2_get_u64_u64, get_helper_v2, u64, u64; + btreemap_v2_get_u64_blob_8, get_helper_v2, u64, Blob8; + btreemap_v2_get_blob_8_u64, get_helper_v2, Blob8, u64; + btreemap_v2_get_u64_vec_8, get_helper_v2, u64, FixedVec8; + btreemap_v2_get_vec_8_u64, get_helper_v2, FixedVec8, u64; // V2 memory manager u64 / blob512 / vec512 - btreemap_get_u64_u64_v2_mem_manager, get_helper_v2_mem_manager, u64, u64; - btreemap_get_u64_blob_512_v2_mem_manager, get_helper_v2_mem_manager, u64, Blob512; - btreemap_get_blob_512_u64_v2_mem_manager, get_helper_v2_mem_manager, Blob512, u64; - btreemap_get_u64_vec_512_v2_mem_manager, get_helper_v2_mem_manager, u64, FixedVec512; - btreemap_get_vec_512_u64_v2_mem_manager, get_helper_v2_mem_manager, FixedVec512, u64; + btreemap_v2_get_u64_u64_mem_manager, get_helper_v2_mem_manager, u64, u64; + btreemap_v2_get_u64_blob_512_mem_manager, get_helper_v2_mem_manager, u64, Blob512; + btreemap_v2_get_blob_512_u64_mem_manager, get_helper_v2_mem_manager, Blob512, u64; + btreemap_v2_get_u64_vec_512_mem_manager, get_helper_v2_mem_manager, u64, FixedVec512; + btreemap_v2_get_vec_512_u64_mem_manager, get_helper_v2_mem_manager, FixedVec512, u64; } fn get_helper_v1() -> BenchResult { @@ -455,7 +455,7 @@ fn get_helper(mut btree: BTreeMap) } #[bench(raw)] -pub fn btreemap_get_10mib_values_v2() -> BenchResult { +pub fn btreemap_v2_get_10mib_values() -> BenchResult { let count = 20; let mut btree = BTreeMap::new(DefaultMemoryImpl::default()); let mut rng = Rng::from_seed(0); @@ -476,85 +476,85 @@ bench_tests! { // === V1 === // V1 blob K x 1024 - btreemap_contains_blob_4_1024_v1, contains_helper_v1, Blob4, Blob1024; - btreemap_contains_blob_8_1024_v1, contains_helper_v1, Blob8, Blob1024; - btreemap_contains_blob_16_1024_v1, contains_helper_v1, Blob16, Blob1024; - btreemap_contains_blob_32_1024_v1, contains_helper_v1, Blob32, Blob1024; - btreemap_contains_blob_64_1024_v1, contains_helper_v1, Blob64, Blob1024; - btreemap_contains_blob_128_1024_v1, contains_helper_v1, Blob128, Blob1024; - btreemap_contains_blob_256_1024_v1, contains_helper_v1, Blob256, Blob1024; - btreemap_contains_blob_512_1024_v1, contains_helper_v1, Blob512, Blob1024; + btreemap_v1_contains_blob_4_1024, contains_helper_v1, Blob4, Blob1024; + btreemap_v1_contains_blob_8_1024, contains_helper_v1, Blob8, Blob1024; + btreemap_v1_contains_blob_16_1024, contains_helper_v1, Blob16, Blob1024; + btreemap_v1_contains_blob_32_1024, contains_helper_v1, Blob32, Blob1024; + btreemap_v1_contains_blob_64_1024, contains_helper_v1, Blob64, Blob1024; + btreemap_v1_contains_blob_128_1024, contains_helper_v1, Blob128, Blob1024; + btreemap_v1_contains_blob_256_1024, contains_helper_v1, Blob256, Blob1024; + btreemap_v1_contains_blob_512_1024, contains_helper_v1, Blob512, Blob1024; // V1 blob 1024 x V - btreemap_contains_blob_1024_4_v1, contains_helper_v1, Blob1024, Blob4; - btreemap_contains_blob_1024_8_v1, contains_helper_v1, Blob1024, Blob8; - btreemap_contains_blob_1024_16_v1, contains_helper_v1, Blob1024, Blob16; - btreemap_contains_blob_1024_32_v1, contains_helper_v1, Blob1024, Blob32; - btreemap_contains_blob_1024_64_v1, contains_helper_v1, Blob1024, Blob64; - btreemap_contains_blob_1024_128_v1, contains_helper_v1, Blob1024, Blob128; - btreemap_contains_blob_1024_256_v1, contains_helper_v1, Blob1024, Blob256; - btreemap_contains_blob_1024_512_v1, contains_helper_v1, Blob1024, Blob512; + btreemap_v1_contains_blob_1024_4, contains_helper_v1, Blob1024, Blob4; + btreemap_v1_contains_blob_1024_8, contains_helper_v1, Blob1024, Blob8; + btreemap_v1_contains_blob_1024_16, contains_helper_v1, Blob1024, Blob16; + btreemap_v1_contains_blob_1024_32, contains_helper_v1, Blob1024, Blob32; + btreemap_v1_contains_blob_1024_64, contains_helper_v1, Blob1024, Blob64; + btreemap_v1_contains_blob_1024_128, contains_helper_v1, Blob1024, Blob128; + btreemap_v1_contains_blob_1024_256, contains_helper_v1, Blob1024, Blob256; + btreemap_v1_contains_blob_1024_512, contains_helper_v1, Blob1024, Blob512; // V1 u64 / blob8 - btreemap_contains_u64_u64_v1, contains_helper_v1, u64, u64; - btreemap_contains_u64_blob_8_v1, contains_helper_v1, u64, Blob8; - btreemap_contains_blob_8_u64_v1, contains_helper_v1, Blob8, u64; + btreemap_v1_contains_u64_u64, contains_helper_v1, u64, u64; + btreemap_v1_contains_u64_blob_8, contains_helper_v1, u64, Blob8; + btreemap_v1_contains_blob_8_u64, contains_helper_v1, Blob8, u64; // === V2 === // V2 blob K x 1024 - btreemap_contains_blob_4_1024_v2, contains_helper_v2, Blob4, Blob1024; - btreemap_contains_blob_8_1024_v2, contains_helper_v2, Blob8, Blob1024; - btreemap_contains_blob_16_1024_v2, contains_helper_v2, Blob16, Blob1024; - btreemap_contains_blob_32_1024_v2, contains_helper_v2, Blob32, Blob1024; - btreemap_contains_blob_64_1024_v2, contains_helper_v2, Blob64, Blob1024; - btreemap_contains_blob_128_1024_v2, contains_helper_v2, Blob128, Blob1024; - btreemap_contains_blob_256_1024_v2, contains_helper_v2, Blob256, Blob1024; - btreemap_contains_blob_512_1024_v2, contains_helper_v2, Blob512, Blob1024; + btreemap_v2_contains_blob_4_1024, contains_helper_v2, Blob4, Blob1024; + btreemap_v2_contains_blob_8_1024, contains_helper_v2, Blob8, Blob1024; + btreemap_v2_contains_blob_16_1024, contains_helper_v2, Blob16, Blob1024; + btreemap_v2_contains_blob_32_1024, contains_helper_v2, Blob32, Blob1024; + btreemap_v2_contains_blob_64_1024, contains_helper_v2, Blob64, Blob1024; + btreemap_v2_contains_blob_128_1024, contains_helper_v2, Blob128, Blob1024; + btreemap_v2_contains_blob_256_1024, contains_helper_v2, Blob256, Blob1024; + btreemap_v2_contains_blob_512_1024, contains_helper_v2, Blob512, Blob1024; // V2 blob 1024 x V - btreemap_contains_blob_1024_4_v2, contains_helper_v2, Blob1024, Blob4; - btreemap_contains_blob_1024_8_v2, contains_helper_v2, Blob1024, Blob8; - btreemap_contains_blob_1024_16_v2, contains_helper_v2, Blob1024, Blob16; - btreemap_contains_blob_1024_32_v2, contains_helper_v2, Blob1024, Blob32; - btreemap_contains_blob_1024_64_v2, contains_helper_v2, Blob1024, Blob64; - btreemap_contains_blob_1024_128_v2, contains_helper_v2, Blob1024, Blob128; - btreemap_contains_blob_1024_256_v2, contains_helper_v2, Blob1024, Blob256; - btreemap_contains_blob_1024_512_v2, contains_helper_v2, Blob1024, Blob512; + btreemap_v2_contains_blob_1024_4, contains_helper_v2, Blob1024, Blob4; + btreemap_v2_contains_blob_1024_8, contains_helper_v2, Blob1024, Blob8; + btreemap_v2_contains_blob_1024_16, contains_helper_v2, Blob1024, Blob16; + btreemap_v2_contains_blob_1024_32, contains_helper_v2, Blob1024, Blob32; + btreemap_v2_contains_blob_1024_64, contains_helper_v2, Blob1024, Blob64; + btreemap_v2_contains_blob_1024_128, contains_helper_v2, Blob1024, Blob128; + btreemap_v2_contains_blob_1024_256, contains_helper_v2, Blob1024, Blob256; + btreemap_v2_contains_blob_1024_512, contains_helper_v2, Blob1024, Blob512; // V2 vec K x 1024 - btreemap_contains_vec_4_1024_v2, contains_helper_v2, FixedVec4, FixedVec1024; - btreemap_contains_vec_8_1024_v2, contains_helper_v2, FixedVec8, FixedVec1024; - btreemap_contains_vec_16_1024_v2, contains_helper_v2, FixedVec16, FixedVec1024; - btreemap_contains_vec_32_1024_v2, contains_helper_v2, FixedVec32, FixedVec1024; - btreemap_contains_vec_64_1024_v2, contains_helper_v2, FixedVec64, FixedVec1024; - btreemap_contains_vec_128_1024_v2, contains_helper_v2, FixedVec128, FixedVec1024; - btreemap_contains_vec_256_1024_v2, contains_helper_v2, FixedVec256, FixedVec1024; - btreemap_contains_vec_512_1024_v2, contains_helper_v2, FixedVec512, FixedVec1024; + btreemap_v2_contains_vec_4_1024, contains_helper_v2, FixedVec4, FixedVec1024; + btreemap_v2_contains_vec_8_1024, contains_helper_v2, FixedVec8, FixedVec1024; + btreemap_v2_contains_vec_16_1024, contains_helper_v2, FixedVec16, FixedVec1024; + btreemap_v2_contains_vec_32_1024, contains_helper_v2, FixedVec32, FixedVec1024; + btreemap_v2_contains_vec_64_1024, contains_helper_v2, FixedVec64, FixedVec1024; + btreemap_v2_contains_vec_128_1024, contains_helper_v2, FixedVec128, FixedVec1024; + btreemap_v2_contains_vec_256_1024, contains_helper_v2, FixedVec256, FixedVec1024; + btreemap_v2_contains_vec_512_1024, contains_helper_v2, FixedVec512, FixedVec1024; // V2 vec 1024 x V - btreemap_contains_vec_1024_4_v2, contains_helper_v2, FixedVec1024, FixedVec4; - btreemap_contains_vec_1024_8_v2, contains_helper_v2, FixedVec1024, FixedVec8; - btreemap_contains_vec_1024_16_v2, contains_helper_v2, FixedVec1024, FixedVec16; - btreemap_contains_vec_1024_32_v2, contains_helper_v2, FixedVec1024, FixedVec32; - btreemap_contains_vec_1024_64_v2, contains_helper_v2, FixedVec1024, FixedVec64; - btreemap_contains_vec_1024_128_v2, contains_helper_v2, FixedVec1024, FixedVec128; - btreemap_contains_vec_1024_256_v2, contains_helper_v2, FixedVec1024, FixedVec256; - btreemap_contains_vec_1024_512_v2, contains_helper_v2, FixedVec1024, FixedVec512; + btreemap_v2_contains_vec_1024_4, contains_helper_v2, FixedVec1024, FixedVec4; + btreemap_v2_contains_vec_1024_8, contains_helper_v2, FixedVec1024, FixedVec8; + btreemap_v2_contains_vec_1024_16, contains_helper_v2, FixedVec1024, FixedVec16; + btreemap_v2_contains_vec_1024_32, contains_helper_v2, FixedVec1024, FixedVec32; + btreemap_v2_contains_vec_1024_64, contains_helper_v2, FixedVec1024, FixedVec64; + btreemap_v2_contains_vec_1024_128, contains_helper_v2, FixedVec1024, FixedVec128; + btreemap_v2_contains_vec_1024_256, contains_helper_v2, FixedVec1024, FixedVec256; + btreemap_v2_contains_vec_1024_512, contains_helper_v2, FixedVec1024, FixedVec512; // V2 u64 / blob8 / vec8 - btreemap_contains_u64_u64_v2, contains_helper_v2, u64, u64; - btreemap_contains_u64_blob_8_v2, contains_helper_v2, u64, Blob8; - btreemap_contains_blob_8_u64_v2, contains_helper_v2, Blob8, u64; - btreemap_contains_u64_vec_8_v2, contains_helper_v2, u64, FixedVec8; - btreemap_contains_vec_8_u64_v2, contains_helper_v2, FixedVec8, u64; + btreemap_v2_contains_u64_u64, contains_helper_v2, u64, u64; + btreemap_v2_contains_u64_blob_8, contains_helper_v2, u64, Blob8; + btreemap_v2_contains_blob_8_u64, contains_helper_v2, Blob8, u64; + btreemap_v2_contains_u64_vec_8, contains_helper_v2, u64, FixedVec8; + btreemap_v2_contains_vec_8_u64, contains_helper_v2, FixedVec8, u64; // V2 memory manager u64 / blob512 / vec512 - btreemap_contains_u64_u64_v2_mem_manager, contains_helper_v2_mem_manager, u64, u64; - btreemap_contains_u64_blob_512_v2_mem_manager, contains_helper_v2_mem_manager, u64, Blob512; - btreemap_contains_blob_512_u64_v2_mem_manager, contains_helper_v2_mem_manager, Blob512, u64; - btreemap_contains_u64_vec_512_v2_mem_manager, contains_helper_v2_mem_manager, u64, FixedVec512; - btreemap_contains_vec_512_u64_v2_mem_manager, contains_helper_v2_mem_manager, FixedVec512, u64; + btreemap_v2_contains_u64_u64_mem_manager, contains_helper_v2_mem_manager, u64, u64; + btreemap_v2_contains_u64_blob_512_mem_manager, contains_helper_v2_mem_manager, u64, Blob512; + btreemap_v2_contains_blob_512_u64_mem_manager, contains_helper_v2_mem_manager, Blob512, u64; + btreemap_v2_contains_u64_vec_512_mem_manager, contains_helper_v2_mem_manager, u64, FixedVec512; + btreemap_v2_contains_vec_512_u64_mem_manager, contains_helper_v2_mem_manager, FixedVec512, u64; } fn contains_helper_v1() -> BenchResult { @@ -594,7 +594,7 @@ fn contains_helper( } #[bench(raw)] -pub fn btreemap_contains_10mib_values_v2() -> BenchResult { +pub fn btreemap_v2_contains_10mib_values() -> BenchResult { let count = 20; let mut btree = BTreeMap::new(DefaultMemoryImpl::default()); let mut rng = Rng::from_seed(0); @@ -636,28 +636,28 @@ bench_traversal_tests! { // === V2 === // 1k items of 0 bytes - btreemap_scan_iter_1k_0b_v2, traverse_helper_v2, 1_000, 0, TraversalMode::Iter; - btreemap_scan_iter_rev_1k_0b_v2, traverse_helper_v2, 1_000, 0, TraversalMode::IterRev; - btreemap_scan_keys_1k_0b_v2, traverse_helper_v2, 1_000, 0, TraversalMode::Keys; - btreemap_scan_keys_rev_1k_0b_v2, traverse_helper_v2, 1_000, 0, TraversalMode::KeysRev; - btreemap_scan_values_1k_0b_v2, traverse_helper_v2, 1_000, 0, TraversalMode::Values; - btreemap_scan_values_rev_1k_0b_v2, traverse_helper_v2, 1_000, 0, TraversalMode::ValuesRev; + 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_scan_iter_1k_10kib_v2, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::Iter; - btreemap_scan_iter_rev_1k_10kib_v2, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::IterRev; - btreemap_scan_keys_1k_10kib_v2, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::Keys; - btreemap_scan_keys_rev_1k_10kib_v2, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::KeysRev; - btreemap_scan_values_1k_10kib_v2, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::Values; - btreemap_scan_values_rev_1k_10kib_v2, traverse_helper_v2, 1_000, 10 * KiB, TraversalMode::ValuesRev; + 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_scan_iter_20_10mib_v2, traverse_helper_v2, 20, 10 * MiB, TraversalMode::Iter; - btreemap_scan_iter_rev_20_10mib_v2, traverse_helper_v2, 20, 10 * MiB, TraversalMode::IterRev; - btreemap_scan_keys_20_10mib_v2, traverse_helper_v2, 20, 10 * MiB, TraversalMode::Keys; - btreemap_scan_keys_rev_20_10mib_v2, traverse_helper_v2, 20, 10 * MiB, TraversalMode::KeysRev; - btreemap_scan_values_20_10mib_v2, traverse_helper_v2, 20, 10 * MiB, TraversalMode::Values; - btreemap_scan_values_rev_20_10mib_v2, traverse_helper_v2, 20, 10 * MiB, TraversalMode::ValuesRev; + 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 { @@ -703,17 +703,17 @@ bench_range_tests! { // V1 does not support unbounded types, eg. Vec<_>. // === V2 === - btreemap_range_key_sum_1k_0b_v2, range_key_sum_helper_v2, 1_000, 0; - btreemap_range_key_sum_1k_10kib_v2, range_key_sum_helper_v2, 1_000, 10 * KiB; - btreemap_range_key_sum_20_10mib_v2, range_key_sum_helper_v2, 20, 10 * MiB; + 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_range_value_sum_1k_0b_v2, range_value_sum_helper_v2, 1_000, 0; - btreemap_range_value_sum_1k_10kib_v2, range_value_sum_helper_v2, 1_000, 10 * KiB; - btreemap_range_value_sum_20_10mib_v2, range_value_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_range_count_1k_0b_v2, range_count_helper_v2, 1_000, 0; - btreemap_range_count_1k_10kib_v2, range_count_helper_v2, 1_000, 10 * KiB; - btreemap_range_count_20_10mib_v2, range_count_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 range_key_sum_helper_v2(count: usize, size: usize) -> BenchResult { @@ -771,78 +771,78 @@ bench_tests! { // === V1 === // V1 blob K x 1024 - btreemap_pop_first_blob_4_1024_v1, pop_first_helper_v1, Blob4, Blob1024; - btreemap_pop_first_blob_8_1024_v1, pop_first_helper_v1, Blob8, Blob1024; - btreemap_pop_first_blob_16_1024_v1, pop_first_helper_v1, Blob16, Blob1024; - btreemap_pop_first_blob_32_1024_v1, pop_first_helper_v1, Blob32, Blob1024; - btreemap_pop_first_blob_64_1024_v1, pop_first_helper_v1, Blob64, Blob1024; - btreemap_pop_first_blob_128_1024_v1, pop_first_helper_v1, Blob128, Blob1024; - btreemap_pop_first_blob_256_1024_v1, pop_first_helper_v1, Blob256, Blob1024; - btreemap_pop_first_blob_512_1024_v1, pop_first_helper_v1, Blob512, Blob1024; + btreemap_v1_pop_first_blob_4_1024, pop_first_helper_v1, Blob4, Blob1024; + btreemap_v1_pop_first_blob_8_1024, pop_first_helper_v1, Blob8, Blob1024; + btreemap_v1_pop_first_blob_16_1024, pop_first_helper_v1, Blob16, Blob1024; + btreemap_v1_pop_first_blob_32_1024, pop_first_helper_v1, Blob32, Blob1024; + btreemap_v1_pop_first_blob_64_1024, pop_first_helper_v1, Blob64, Blob1024; + btreemap_v1_pop_first_blob_128_1024, pop_first_helper_v1, Blob128, Blob1024; + btreemap_v1_pop_first_blob_256_1024, pop_first_helper_v1, Blob256, Blob1024; + btreemap_v1_pop_first_blob_512_1024, pop_first_helper_v1, Blob512, Blob1024; // V1 blob 1024 x V - btreemap_pop_first_blob_1024_4_v1, pop_first_helper_v1, Blob1024, Blob4; - btreemap_pop_first_blob_1024_8_v1, pop_first_helper_v1, Blob1024, Blob8; - btreemap_pop_first_blob_1024_16_v1, pop_first_helper_v1, Blob1024, Blob16; - btreemap_pop_first_blob_1024_32_v1, pop_first_helper_v1, Blob1024, Blob32; - btreemap_pop_first_blob_1024_64_v1, pop_first_helper_v1, Blob1024, Blob64; - btreemap_pop_first_blob_1024_128_v1, pop_first_helper_v1, Blob1024, Blob128; - btreemap_pop_first_blob_1024_256_v1, pop_first_helper_v1, Blob1024, Blob256; - btreemap_pop_first_blob_1024_512_v1, pop_first_helper_v1, Blob1024, Blob512; + btreemap_v1_pop_first_blob_1024_4, pop_first_helper_v1, Blob1024, Blob4; + btreemap_v1_pop_first_blob_1024_8, pop_first_helper_v1, Blob1024, Blob8; + btreemap_v1_pop_first_blob_1024_16, pop_first_helper_v1, Blob1024, Blob16; + btreemap_v1_pop_first_blob_1024_32, pop_first_helper_v1, Blob1024, Blob32; + btreemap_v1_pop_first_blob_1024_64, pop_first_helper_v1, Blob1024, Blob64; + btreemap_v1_pop_first_blob_1024_128, pop_first_helper_v1, Blob1024, Blob128; + btreemap_v1_pop_first_blob_1024_256, pop_first_helper_v1, Blob1024, Blob256; + btreemap_v1_pop_first_blob_1024_512, pop_first_helper_v1, Blob1024, Blob512; // V1 u64 / blob8 - btreemap_pop_first_u64_u64_v1, pop_first_helper_v1, u64, u64; - btreemap_pop_first_u64_blob_8_v1, pop_first_helper_v1, u64, Blob8; - btreemap_pop_first_blob_8_u64_v1, pop_first_helper_v1, Blob8, u64; + btreemap_v1_pop_first_u64_u64, pop_first_helper_v1, u64, u64; + btreemap_v1_pop_first_u64_blob_8, pop_first_helper_v1, u64, Blob8; + btreemap_v1_pop_first_blob_8_u64, pop_first_helper_v1, Blob8, u64; // === V2 === // V2 blob K x 1024 - btreemap_pop_first_blob_4_1024_v2, pop_first_helper_v2, Blob4, Blob1024; - btreemap_pop_first_blob_8_1024_v2, pop_first_helper_v2, Blob8, Blob1024; - btreemap_pop_first_blob_16_1024_v2, pop_first_helper_v2, Blob16, Blob1024; - btreemap_pop_first_blob_32_1024_v2, pop_first_helper_v2, Blob32, Blob1024; - btreemap_pop_first_blob_64_1024_v2, pop_first_helper_v2, Blob64, Blob1024; - btreemap_pop_first_blob_128_1024_v2, pop_first_helper_v2, Blob128, Blob1024; - btreemap_pop_first_blob_256_1024_v2, pop_first_helper_v2, Blob256, Blob1024; - btreemap_pop_first_blob_512_1024_v2, pop_first_helper_v2, Blob512, Blob1024; + btreemap_v2_pop_first_blob_4_1024, pop_first_helper_v2, Blob4, Blob1024; + btreemap_v2_pop_first_blob_8_1024, pop_first_helper_v2, Blob8, Blob1024; + btreemap_v2_pop_first_blob_16_1024, pop_first_helper_v2, Blob16, Blob1024; + btreemap_v2_pop_first_blob_32_1024, pop_first_helper_v2, Blob32, Blob1024; + btreemap_v2_pop_first_blob_64_1024, pop_first_helper_v2, Blob64, Blob1024; + btreemap_v2_pop_first_blob_128_1024, pop_first_helper_v2, Blob128, Blob1024; + btreemap_v2_pop_first_blob_256_1024, pop_first_helper_v2, Blob256, Blob1024; + btreemap_v2_pop_first_blob_512_1024, pop_first_helper_v2, Blob512, Blob1024; // V2 blob 1024 x V - btreemap_pop_first_blob_1024_4_v2, pop_first_helper_v2, Blob1024, Blob4; - btreemap_pop_first_blob_1024_8_v2, pop_first_helper_v2, Blob1024, Blob8; - btreemap_pop_first_blob_1024_16_v2, pop_first_helper_v2, Blob1024, Blob16; - btreemap_pop_first_blob_1024_32_v2, pop_first_helper_v2, Blob1024, Blob32; - btreemap_pop_first_blob_1024_64_v2, pop_first_helper_v2, Blob1024, Blob64; - btreemap_pop_first_blob_1024_128_v2, pop_first_helper_v2, Blob1024, Blob128; - btreemap_pop_first_blob_1024_256_v2, pop_first_helper_v2, Blob1024, Blob256; - btreemap_pop_first_blob_1024_512_v2, pop_first_helper_v2, Blob1024, Blob512; + btreemap_v2_pop_first_blob_1024_4, pop_first_helper_v2, Blob1024, Blob4; + btreemap_v2_pop_first_blob_1024_8, pop_first_helper_v2, Blob1024, Blob8; + btreemap_v2_pop_first_blob_1024_16, pop_first_helper_v2, Blob1024, Blob16; + btreemap_v2_pop_first_blob_1024_32, pop_first_helper_v2, Blob1024, Blob32; + btreemap_v2_pop_first_blob_1024_64, pop_first_helper_v2, Blob1024, Blob64; + btreemap_v2_pop_first_blob_1024_128, pop_first_helper_v2, Blob1024, Blob128; + btreemap_v2_pop_first_blob_1024_256, pop_first_helper_v2, Blob1024, Blob256; + btreemap_v2_pop_first_blob_1024_512, pop_first_helper_v2, Blob1024, Blob512; // V2 vec K x 1024 - btreemap_pop_first_vec_4_1024_v2, pop_first_helper_v2, FixedVec4, FixedVec1024; - btreemap_pop_first_vec_8_1024_v2, pop_first_helper_v2, FixedVec8, FixedVec1024; - btreemap_pop_first_vec_16_1024_v2, pop_first_helper_v2, FixedVec16, FixedVec1024; - btreemap_pop_first_vec_32_1024_v2, pop_first_helper_v2, FixedVec32, FixedVec1024; - btreemap_pop_first_vec_64_1024_v2, pop_first_helper_v2, FixedVec64, FixedVec1024; - btreemap_pop_first_vec_128_1024_v2, pop_first_helper_v2, FixedVec128, FixedVec1024; - btreemap_pop_first_vec_256_1024_v2, pop_first_helper_v2, FixedVec256, FixedVec1024; - btreemap_pop_first_vec_512_1024_v2, pop_first_helper_v2, FixedVec512, FixedVec1024; + btreemap_v2_pop_first_vec_4_1024, pop_first_helper_v2, FixedVec4, FixedVec1024; + btreemap_v2_pop_first_vec_8_1024, pop_first_helper_v2, FixedVec8, FixedVec1024; + btreemap_v2_pop_first_vec_16_1024, pop_first_helper_v2, FixedVec16, FixedVec1024; + btreemap_v2_pop_first_vec_32_1024, pop_first_helper_v2, FixedVec32, FixedVec1024; + btreemap_v2_pop_first_vec_64_1024, pop_first_helper_v2, FixedVec64, FixedVec1024; + btreemap_v2_pop_first_vec_128_1024, pop_first_helper_v2, FixedVec128, FixedVec1024; + btreemap_v2_pop_first_vec_256_1024, pop_first_helper_v2, FixedVec256, FixedVec1024; + btreemap_v2_pop_first_vec_512_1024, pop_first_helper_v2, FixedVec512, FixedVec1024; // V2 vec 1024 x V - btreemap_pop_first_vec_1024_4_v2, pop_first_helper_v2, FixedVec1024, FixedVec4; - btreemap_pop_first_vec_1024_8_v2, pop_first_helper_v2, FixedVec1024, FixedVec8; - btreemap_pop_first_vec_1024_16_v2, pop_first_helper_v2, FixedVec1024, FixedVec16; - btreemap_pop_first_vec_1024_32_v2, pop_first_helper_v2, FixedVec1024, FixedVec32; - btreemap_pop_first_vec_1024_64_v2, pop_first_helper_v2, FixedVec1024, FixedVec64; - btreemap_pop_first_vec_1024_128_v2, pop_first_helper_v2, FixedVec1024, FixedVec128; - btreemap_pop_first_vec_1024_256_v2, pop_first_helper_v2, FixedVec1024, FixedVec256; - btreemap_pop_first_vec_1024_512_v2, pop_first_helper_v2, FixedVec1024, FixedVec512; + btreemap_v2_pop_first_vec_1024_4, pop_first_helper_v2, FixedVec1024, FixedVec4; + btreemap_v2_pop_first_vec_1024_8, pop_first_helper_v2, FixedVec1024, FixedVec8; + btreemap_v2_pop_first_vec_1024_16, pop_first_helper_v2, FixedVec1024, FixedVec16; + btreemap_v2_pop_first_vec_1024_32, pop_first_helper_v2, FixedVec1024, FixedVec32; + btreemap_v2_pop_first_vec_1024_64, pop_first_helper_v2, FixedVec1024, FixedVec64; + btreemap_v2_pop_first_vec_1024_128, pop_first_helper_v2, FixedVec1024, FixedVec128; + btreemap_v2_pop_first_vec_1024_256, pop_first_helper_v2, FixedVec1024, FixedVec256; + btreemap_v2_pop_first_vec_1024_512, pop_first_helper_v2, FixedVec1024, FixedVec512; // V2 u64 / blob8 / vec8 - btreemap_pop_first_u64_u64_v2, pop_first_helper_v2, u64, u64; - btreemap_pop_first_u64_blob_8_v2, pop_first_helper_v2, u64, Blob8; - btreemap_pop_first_blob_8_u64_v2, pop_first_helper_v2, Blob8, u64; - btreemap_pop_first_u64_vec_8_v2, pop_first_helper_v2, u64, FixedVec8; - btreemap_pop_first_vec_8_u64_v2, pop_first_helper_v2, FixedVec8, u64; + btreemap_v2_pop_first_u64_u64, pop_first_helper_v2, u64, u64; + btreemap_v2_pop_first_u64_blob_8, pop_first_helper_v2, u64, Blob8; + btreemap_v2_pop_first_blob_8_u64, pop_first_helper_v2, Blob8, u64; + btreemap_v2_pop_first_u64_vec_8, pop_first_helper_v2, u64, FixedVec8; + btreemap_v2_pop_first_vec_8_u64, pop_first_helper_v2, FixedVec8, u64; } // Last @@ -850,78 +850,78 @@ bench_tests! { // === V1 === // V1 blob K x 1024 - btreemap_pop_last_blob_4_1024_v1, pop_last_helper_v1, Blob4, Blob1024; - btreemap_pop_last_blob_8_1024_v1, pop_last_helper_v1, Blob8, Blob1024; - btreemap_pop_last_blob_16_1024_v1, pop_last_helper_v1, Blob16, Blob1024; - btreemap_pop_last_blob_32_1024_v1, pop_last_helper_v1, Blob32, Blob1024; - btreemap_pop_last_blob_64_1024_v1, pop_last_helper_v1, Blob64, Blob1024; - btreemap_pop_last_blob_128_1024_v1, pop_last_helper_v1, Blob128, Blob1024; - btreemap_pop_last_blob_256_1024_v1, pop_last_helper_v1, Blob256, Blob1024; - btreemap_pop_last_blob_512_1024_v1, pop_last_helper_v1, Blob512, Blob1024; + btreemap_v1_pop_last_blob_4_1024, pop_last_helper_v1, Blob4, Blob1024; + btreemap_v1_pop_last_blob_8_1024, pop_last_helper_v1, Blob8, Blob1024; + btreemap_v1_pop_last_blob_16_1024, pop_last_helper_v1, Blob16, Blob1024; + btreemap_v1_pop_last_blob_32_1024, pop_last_helper_v1, Blob32, Blob1024; + btreemap_v1_pop_last_blob_64_1024, pop_last_helper_v1, Blob64, Blob1024; + btreemap_v1_pop_last_blob_128_1024, pop_last_helper_v1, Blob128, Blob1024; + btreemap_v1_pop_last_blob_256_1024, pop_last_helper_v1, Blob256, Blob1024; + btreemap_v1_pop_last_blob_512_1024, pop_last_helper_v1, Blob512, Blob1024; // V1 blob 1024 x V - btreemap_pop_last_blob_1024_4_v1, pop_last_helper_v1, Blob1024, Blob4; - btreemap_pop_last_blob_1024_8_v1, pop_last_helper_v1, Blob1024, Blob8; - btreemap_pop_last_blob_1024_16_v1, pop_last_helper_v1, Blob1024, Blob16; - btreemap_pop_last_blob_1024_32_v1, pop_last_helper_v1, Blob1024, Blob32; - btreemap_pop_last_blob_1024_64_v1, pop_last_helper_v1, Blob1024, Blob64; - btreemap_pop_last_blob_1024_128_v1, pop_last_helper_v1, Blob1024, Blob128; - btreemap_pop_last_blob_1024_256_v1, pop_last_helper_v1, Blob1024, Blob256; - btreemap_pop_last_blob_1024_512_v1, pop_last_helper_v1, Blob1024, Blob512; + btreemap_v1_pop_last_blob_1024_4, pop_last_helper_v1, Blob1024, Blob4; + btreemap_v1_pop_last_blob_1024_8, pop_last_helper_v1, Blob1024, Blob8; + btreemap_v1_pop_last_blob_1024_16, pop_last_helper_v1, Blob1024, Blob16; + btreemap_v1_pop_last_blob_1024_32, pop_last_helper_v1, Blob1024, Blob32; + btreemap_v1_pop_last_blob_1024_64, pop_last_helper_v1, Blob1024, Blob64; + btreemap_v1_pop_last_blob_1024_128, pop_last_helper_v1, Blob1024, Blob128; + btreemap_v1_pop_last_blob_1024_256, pop_last_helper_v1, Blob1024, Blob256; + btreemap_v1_pop_last_blob_1024_512, pop_last_helper_v1, Blob1024, Blob512; // V1 u64 / blob8 - btreemap_pop_last_u64_u64_v1, pop_last_helper_v1, u64, u64; - btreemap_pop_last_u64_blob_8_v1, pop_last_helper_v1, u64, Blob8; - btreemap_pop_last_blob_8_u64_v1, pop_last_helper_v1, Blob8, u64; + btreemap_v1_pop_last_u64_u64, pop_last_helper_v1, u64, u64; + btreemap_v1_pop_last_u64_blob_8, pop_last_helper_v1, u64, Blob8; + btreemap_v1_pop_last_blob_8_u64, pop_last_helper_v1, Blob8, u64; // === V2 === // V2 blob K x 1024 - btreemap_pop_last_blob_4_1024_v2, pop_last_helper_v2, Blob4, Blob1024; - btreemap_pop_last_blob_8_1024_v2, pop_last_helper_v2, Blob8, Blob1024; - btreemap_pop_last_blob_16_1024_v2, pop_last_helper_v2, Blob16, Blob1024; - btreemap_pop_last_blob_32_1024_v2, pop_last_helper_v2, Blob32, Blob1024; - btreemap_pop_last_blob_64_1024_v2, pop_last_helper_v2, Blob64, Blob1024; - btreemap_pop_last_blob_128_1024_v2, pop_last_helper_v2, Blob128, Blob1024; - btreemap_pop_last_blob_256_1024_v2, pop_last_helper_v2, Blob256, Blob1024; - btreemap_pop_last_blob_512_1024_v2, pop_last_helper_v2, Blob512, Blob1024; + btreemap_v2_pop_last_blob_4_1024, pop_last_helper_v2, Blob4, Blob1024; + btreemap_v2_pop_last_blob_8_1024, pop_last_helper_v2, Blob8, Blob1024; + btreemap_v2_pop_last_blob_16_1024, pop_last_helper_v2, Blob16, Blob1024; + btreemap_v2_pop_last_blob_32_1024, pop_last_helper_v2, Blob32, Blob1024; + btreemap_v2_pop_last_blob_64_1024, pop_last_helper_v2, Blob64, Blob1024; + btreemap_v2_pop_last_blob_128_1024, pop_last_helper_v2, Blob128, Blob1024; + btreemap_v2_pop_last_blob_256_1024, pop_last_helper_v2, Blob256, Blob1024; + btreemap_v2_pop_last_blob_512_1024, pop_last_helper_v2, Blob512, Blob1024; // V2 blob 1024 x V - btreemap_pop_last_blob_1024_4_v2, pop_last_helper_v2, Blob1024, Blob4; - btreemap_pop_last_blob_1024_8_v2, pop_last_helper_v2, Blob1024, Blob8; - btreemap_pop_last_blob_1024_16_v2, pop_last_helper_v2, Blob1024, Blob16; - btreemap_pop_last_blob_1024_32_v2, pop_last_helper_v2, Blob1024, Blob32; - btreemap_pop_last_blob_1024_64_v2, pop_last_helper_v2, Blob1024, Blob64; - btreemap_pop_last_blob_1024_128_v2, pop_last_helper_v2, Blob1024, Blob128; - btreemap_pop_last_blob_1024_256_v2, pop_last_helper_v2, Blob1024, Blob256; - btreemap_pop_last_blob_1024_512_v2, pop_last_helper_v2, Blob1024, Blob512; + btreemap_v2_pop_last_blob_1024_4, pop_last_helper_v2, Blob1024, Blob4; + btreemap_v2_pop_last_blob_1024_8, pop_last_helper_v2, Blob1024, Blob8; + btreemap_v2_pop_last_blob_1024_16, pop_last_helper_v2, Blob1024, Blob16; + btreemap_v2_pop_last_blob_1024_32, pop_last_helper_v2, Blob1024, Blob32; + btreemap_v2_pop_last_blob_1024_64, pop_last_helper_v2, Blob1024, Blob64; + btreemap_v2_pop_last_blob_1024_128, pop_last_helper_v2, Blob1024, Blob128; + btreemap_v2_pop_last_blob_1024_256, pop_last_helper_v2, Blob1024, Blob256; + btreemap_v2_pop_last_blob_1024_512, pop_last_helper_v2, Blob1024, Blob512; // V2 vec K x 1024 - btreemap_pop_last_vec_4_1024_v2, pop_last_helper_v2, FixedVec4, FixedVec1024; - btreemap_pop_last_vec_8_1024_v2, pop_last_helper_v2, FixedVec8, FixedVec1024; - btreemap_pop_last_vec_16_1024_v2, pop_last_helper_v2, FixedVec16, FixedVec1024; - btreemap_pop_last_vec_32_1024_v2, pop_last_helper_v2, FixedVec32, FixedVec1024; - btreemap_pop_last_vec_64_1024_v2, pop_last_helper_v2, FixedVec64, FixedVec1024; - btreemap_pop_last_vec_128_1024_v2, pop_last_helper_v2, FixedVec128, FixedVec1024; - btreemap_pop_last_vec_256_1024_v2, pop_last_helper_v2, FixedVec256, FixedVec1024; - btreemap_pop_last_vec_512_1024_v2, pop_last_helper_v2, FixedVec512, FixedVec1024; + btreemap_v2_pop_last_vec_4_1024, pop_last_helper_v2, FixedVec4, FixedVec1024; + btreemap_v2_pop_last_vec_8_1024, pop_last_helper_v2, FixedVec8, FixedVec1024; + btreemap_v2_pop_last_vec_16_1024, pop_last_helper_v2, FixedVec16, FixedVec1024; + btreemap_v2_pop_last_vec_32_1024, pop_last_helper_v2, FixedVec32, FixedVec1024; + btreemap_v2_pop_last_vec_64_1024, pop_last_helper_v2, FixedVec64, FixedVec1024; + btreemap_v2_pop_last_vec_128_1024, pop_last_helper_v2, FixedVec128, FixedVec1024; + btreemap_v2_pop_last_vec_256_1024, pop_last_helper_v2, FixedVec256, FixedVec1024; + btreemap_v2_pop_last_vec_512_1024, pop_last_helper_v2, FixedVec512, FixedVec1024; // V2 vec 1024 x V - btreemap_pop_last_vec_1024_4_v2, pop_last_helper_v2, FixedVec1024, FixedVec4; - btreemap_pop_last_vec_1024_8_v2, pop_last_helper_v2, FixedVec1024, FixedVec8; - btreemap_pop_last_vec_1024_16_v2, pop_last_helper_v2, FixedVec1024, FixedVec16; - btreemap_pop_last_vec_1024_32_v2, pop_last_helper_v2, FixedVec1024, FixedVec32; - btreemap_pop_last_vec_1024_64_v2, pop_last_helper_v2, FixedVec1024, FixedVec64; - btreemap_pop_last_vec_1024_128_v2, pop_last_helper_v2, FixedVec1024, FixedVec128; - btreemap_pop_last_vec_1024_256_v2, pop_last_helper_v2, FixedVec1024, FixedVec256; - btreemap_pop_last_vec_1024_512_v2, pop_last_helper_v2, FixedVec1024, FixedVec512; + btreemap_v2_pop_last_vec_1024_4, pop_last_helper_v2, FixedVec1024, FixedVec4; + btreemap_v2_pop_last_vec_1024_8, pop_last_helper_v2, FixedVec1024, FixedVec8; + btreemap_v2_pop_last_vec_1024_16, pop_last_helper_v2, FixedVec1024, FixedVec16; + btreemap_v2_pop_last_vec_1024_32, pop_last_helper_v2, FixedVec1024, FixedVec32; + btreemap_v2_pop_last_vec_1024_64, pop_last_helper_v2, FixedVec1024, FixedVec64; + btreemap_v2_pop_last_vec_1024_128, pop_last_helper_v2, FixedVec1024, FixedVec128; + btreemap_v2_pop_last_vec_1024_256, pop_last_helper_v2, FixedVec1024, FixedVec256; + btreemap_v2_pop_last_vec_1024_512, pop_last_helper_v2, FixedVec1024, FixedVec512; // V2 u64 / blob8 / vec8 - btreemap_pop_last_u64_u64_v2, pop_last_helper_v2, u64, u64; - btreemap_pop_last_u64_blob_8_v2, pop_last_helper_v2, u64, Blob8; - btreemap_pop_last_blob_8_u64_v2, pop_last_helper_v2, Blob8, u64; - btreemap_pop_last_u64_vec_8_v2, pop_last_helper_v2, u64, FixedVec8; - btreemap_pop_last_vec_8_u64_v2, pop_last_helper_v2, FixedVec8, u64; + btreemap_v2_pop_last_u64_u64, pop_last_helper_v2, u64, u64; + btreemap_v2_pop_last_u64_blob_8, pop_last_helper_v2, u64, Blob8; + btreemap_v2_pop_last_blob_8_u64, pop_last_helper_v2, Blob8, u64; + btreemap_v2_pop_last_u64_vec_8, pop_last_helper_v2, u64, FixedVec8; + btreemap_v2_pop_last_vec_8_u64, pop_last_helper_v2, FixedVec8, u64; } fn pop_first_helper_v1() -> BenchResult { From b8a2dbc6ce6a02cc423e326cf0d0d67eafa2e122 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Wed, 23 Apr 2025 14:11:01 +0200 Subject: [PATCH 26/68] blob_X, vec_X --- benchmarks/src/btreemap.rs | 116 ++++++++++++++++++------------------- 1 file changed, 58 insertions(+), 58 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index d25150e7..20c8626e 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -93,8 +93,8 @@ bench_tests! { // V1 u64 / blob8 btreemap_v1_insert_u64_u64, insert_helper_v1, u64, u64; - btreemap_v1_insert_u64_blob_8, insert_helper_v1, u64, Blob8; - btreemap_v1_insert_blob_8_u64, insert_helper_v1, Blob8, u64; + btreemap_v1_insert_u64_blob8, insert_helper_v1, u64, Blob8; + btreemap_v1_insert_blob8_u64, insert_helper_v1, Blob8, u64; // === V2 === @@ -140,17 +140,17 @@ bench_tests! { // V2 u64 / blob8 / vec8 btreemap_v2_insert_u64_u64, insert_helper_v2, u64, u64; - btreemap_v2_insert_u64_blob_8, insert_helper_v2, u64, Blob8; - btreemap_v2_insert_blob_8_u64, insert_helper_v2, Blob8, u64; - btreemap_v2_insert_u64_vec_8, insert_helper_v2, u64, FixedVec8; - btreemap_v2_insert_vec_8_u64, insert_helper_v2, FixedVec8, 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; // V2 memory manager u64 / blob512 / vec512 btreemap_v2_insert_u64_u64_mem_manager, insert_helper_v2_mem_manager, u64, u64; - btreemap_v2_insert_u64_blob_512_mem_manager, insert_helper_v2_mem_manager, u64, Blob512; - btreemap_v2_insert_blob_512_u64_mem_manager, insert_helper_v2_mem_manager, Blob512, u64; - btreemap_v2_insert_u64_vec_512_mem_manager, insert_helper_v2_mem_manager, u64, FixedVec512; - btreemap_v2_insert_vec_512_u64_mem_manager, insert_helper_v2_mem_manager, FixedVec512, u64; + btreemap_v2_insert_u64_blob512_mem_manager, insert_helper_v2_mem_manager, u64, Blob512; + btreemap_v2_insert_blob512_u64_mem_manager, insert_helper_v2_mem_manager, Blob512, u64; + btreemap_v2_insert_u64_vec512_mem_manager, insert_helper_v2_mem_manager, u64, FixedVec512; + btreemap_v2_insert_vec512_u64_mem_manager, insert_helper_v2_mem_manager, FixedVec512, u64; } fn insert_helper_v1() -> BenchResult { @@ -223,8 +223,8 @@ bench_tests! { // V1 u64 / blob8 btreemap_v1_remove_u64_u64_v1, remove_helper_v1, u64, u64; - btreemap_v1_remove_u64_blob_8_v1, remove_helper_v1, u64, Blob8; - btreemap_v1_remove_blob_8_u64_v1, remove_helper_v1, Blob8, u64; + btreemap_v1_remove_u64_blob8_v1, remove_helper_v1, u64, Blob8; + btreemap_v1_remove_blob8_u64_v1, remove_helper_v1, Blob8, u64; // === V2 === @@ -270,17 +270,17 @@ bench_tests! { // V2 u64 / blob8 / vec8 btreemap_v2_remove_u64_u64, remove_helper_v2, u64, u64; - btreemap_v2_remove_u64_blob_8, remove_helper_v2, u64, Blob8; - btreemap_v2_remove_blob_8_u64, remove_helper_v2, Blob8, u64; - btreemap_v2_remove_u64_vec_8, remove_helper_v2, u64, FixedVec8; - btreemap_v2_remove_vec_8_u64, remove_helper_v2, FixedVec8, 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; // V2 memory manager u64 / blob512 / vec512 btreemap_v2_remove_u64_u64_mem_manager, remove_helper_v2_mem_manager, u64, u64; - btreemap_v2_remove_u64_blob_512_mem_manager, remove_helper_v2_mem_manager, u64, Blob512; - btreemap_v2_remove_blob_512_u64_mem_manager, remove_helper_v2_mem_manager, Blob512, u64; - btreemap_v2_remove_u64_vec_512_mem_manager, remove_helper_v2_mem_manager, u64, FixedVec512; - btreemap_v2_remove_vec_512_u64_mem_manager, remove_helper_v2_mem_manager, FixedVec512, u64; + btreemap_v2_remove_u64_blob512_mem_manager, remove_helper_v2_mem_manager, u64, Blob512; + btreemap_v2_remove_blob512_u64_mem_manager, remove_helper_v2_mem_manager, Blob512, u64; + btreemap_v2_remove_u64_vec512_mem_manager, remove_helper_v2_mem_manager, u64, FixedVec512; + btreemap_v2_remove_vec512_u64_mem_manager, remove_helper_v2_mem_manager, FixedVec512, u64; } fn remove_helper_v1() -> BenchResult { @@ -360,8 +360,8 @@ bench_tests! { // V1 u64 / blob8 btreemap_v1_get_u64_u64, get_helper_v1, u64, u64; - btreemap_v1_get_u64_blob_8, get_helper_v1, u64, Blob8; - btreemap_v1_get_blob_8_u64, get_helper_v1, Blob8, u64; + btreemap_v1_get_u64_blob8, get_helper_v1, u64, Blob8; + btreemap_v1_get_blob8_u64, get_helper_v1, Blob8, u64; // === V2 === @@ -407,17 +407,17 @@ bench_tests! { // V2 u64 / blob8 / vec8 btreemap_v2_get_u64_u64, get_helper_v2, u64, u64; - btreemap_v2_get_u64_blob_8, get_helper_v2, u64, Blob8; - btreemap_v2_get_blob_8_u64, get_helper_v2, Blob8, u64; - btreemap_v2_get_u64_vec_8, get_helper_v2, u64, FixedVec8; - btreemap_v2_get_vec_8_u64, get_helper_v2, FixedVec8, 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; // V2 memory manager u64 / blob512 / vec512 btreemap_v2_get_u64_u64_mem_manager, get_helper_v2_mem_manager, u64, u64; - btreemap_v2_get_u64_blob_512_mem_manager, get_helper_v2_mem_manager, u64, Blob512; - btreemap_v2_get_blob_512_u64_mem_manager, get_helper_v2_mem_manager, Blob512, u64; - btreemap_v2_get_u64_vec_512_mem_manager, get_helper_v2_mem_manager, u64, FixedVec512; - btreemap_v2_get_vec_512_u64_mem_manager, get_helper_v2_mem_manager, FixedVec512, u64; + btreemap_v2_get_u64_blob512_mem_manager, get_helper_v2_mem_manager, u64, Blob512; + btreemap_v2_get_blob512_u64_mem_manager, get_helper_v2_mem_manager, Blob512, u64; + btreemap_v2_get_u64_vec512_mem_manager, get_helper_v2_mem_manager, u64, FixedVec512; + btreemap_v2_get_vec512_u64_mem_manager, get_helper_v2_mem_manager, FixedVec512, u64; } fn get_helper_v1() -> BenchResult { @@ -497,8 +497,8 @@ bench_tests! { // V1 u64 / blob8 btreemap_v1_contains_u64_u64, contains_helper_v1, u64, u64; - btreemap_v1_contains_u64_blob_8, contains_helper_v1, u64, Blob8; - btreemap_v1_contains_blob_8_u64, contains_helper_v1, Blob8, u64; + btreemap_v1_contains_u64_blob8, contains_helper_v1, u64, Blob8; + btreemap_v1_contains_blob8_u64, contains_helper_v1, Blob8, u64; // === V2 === @@ -544,17 +544,17 @@ bench_tests! { // V2 u64 / blob8 / vec8 btreemap_v2_contains_u64_u64, contains_helper_v2, u64, u64; - btreemap_v2_contains_u64_blob_8, contains_helper_v2, u64, Blob8; - btreemap_v2_contains_blob_8_u64, contains_helper_v2, Blob8, u64; - btreemap_v2_contains_u64_vec_8, contains_helper_v2, u64, FixedVec8; - btreemap_v2_contains_vec_8_u64, contains_helper_v2, FixedVec8, 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; // V2 memory manager u64 / blob512 / vec512 btreemap_v2_contains_u64_u64_mem_manager, contains_helper_v2_mem_manager, u64, u64; - btreemap_v2_contains_u64_blob_512_mem_manager, contains_helper_v2_mem_manager, u64, Blob512; - btreemap_v2_contains_blob_512_u64_mem_manager, contains_helper_v2_mem_manager, Blob512, u64; - btreemap_v2_contains_u64_vec_512_mem_manager, contains_helper_v2_mem_manager, u64, FixedVec512; - btreemap_v2_contains_vec_512_u64_mem_manager, contains_helper_v2_mem_manager, FixedVec512, u64; + btreemap_v2_contains_u64_blob512_mem_manager, contains_helper_v2_mem_manager, u64, Blob512; + btreemap_v2_contains_blob512_u64_mem_manager, contains_helper_v2_mem_manager, Blob512, u64; + btreemap_v2_contains_u64_vec512_mem_manager, contains_helper_v2_mem_manager, u64, FixedVec512; + btreemap_v2_contains_vec512_u64_mem_manager, contains_helper_v2_mem_manager, FixedVec512, u64; } fn contains_helper_v1() -> BenchResult { @@ -703,16 +703,16 @@ bench_range_tests! { // V1 does not support unbounded types, eg. Vec<_>. // === V2 === - 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_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_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_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; } @@ -792,8 +792,8 @@ bench_tests! { // V1 u64 / blob8 btreemap_v1_pop_first_u64_u64, pop_first_helper_v1, u64, u64; - btreemap_v1_pop_first_u64_blob_8, pop_first_helper_v1, u64, Blob8; - btreemap_v1_pop_first_blob_8_u64, pop_first_helper_v1, Blob8, u64; + btreemap_v1_pop_first_u64_blob8, pop_first_helper_v1, u64, Blob8; + btreemap_v1_pop_first_blob8_u64, pop_first_helper_v1, Blob8, u64; // === V2 === @@ -839,10 +839,10 @@ bench_tests! { // V2 u64 / blob8 / vec8 btreemap_v2_pop_first_u64_u64, pop_first_helper_v2, u64, u64; - btreemap_v2_pop_first_u64_blob_8, pop_first_helper_v2, u64, Blob8; - btreemap_v2_pop_first_blob_8_u64, pop_first_helper_v2, Blob8, u64; - btreemap_v2_pop_first_u64_vec_8, pop_first_helper_v2, u64, FixedVec8; - btreemap_v2_pop_first_vec_8_u64, pop_first_helper_v2, FixedVec8, 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 @@ -871,8 +871,8 @@ bench_tests! { // V1 u64 / blob8 btreemap_v1_pop_last_u64_u64, pop_last_helper_v1, u64, u64; - btreemap_v1_pop_last_u64_blob_8, pop_last_helper_v1, u64, Blob8; - btreemap_v1_pop_last_blob_8_u64, pop_last_helper_v1, Blob8, u64; + btreemap_v1_pop_last_u64_blob8, pop_last_helper_v1, u64, Blob8; + btreemap_v1_pop_last_blob8_u64, pop_last_helper_v1, Blob8, u64; // === V2 === @@ -918,10 +918,10 @@ bench_tests! { // V2 u64 / blob8 / vec8 btreemap_v2_pop_last_u64_u64, pop_last_helper_v2, u64, u64; - btreemap_v2_pop_last_u64_blob_8, pop_last_helper_v2, u64, Blob8; - btreemap_v2_pop_last_blob_8_u64, pop_last_helper_v2, Blob8, u64; - btreemap_v2_pop_last_u64_vec_8, pop_last_helper_v2, u64, FixedVec8; - btreemap_v2_pop_last_vec_8_u64, pop_last_helper_v2, FixedVec8, 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_v1() -> BenchResult { From 16572842272808b3bc08ed55309ae71b33b5a881 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Wed, 23 Apr 2025 14:13:18 +0200 Subject: [PATCH 27/68] mem_manager --- benchmarks/src/btreemap.rs | 40 +++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index 20c8626e..6ba29d44 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -146,11 +146,11 @@ bench_tests! { btreemap_v2_insert_vec8_u64, insert_helper_v2, FixedVec8, u64; // V2 memory manager u64 / blob512 / vec512 - btreemap_v2_insert_u64_u64_mem_manager, insert_helper_v2_mem_manager, u64, u64; - btreemap_v2_insert_u64_blob512_mem_manager, insert_helper_v2_mem_manager, u64, Blob512; - btreemap_v2_insert_blob512_u64_mem_manager, insert_helper_v2_mem_manager, Blob512, u64; - btreemap_v2_insert_u64_vec512_mem_manager, insert_helper_v2_mem_manager, u64, FixedVec512; - btreemap_v2_insert_vec512_u64_mem_manager, insert_helper_v2_mem_manager, FixedVec512, u64; + 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_v1() -> BenchResult { @@ -276,11 +276,11 @@ bench_tests! { btreemap_v2_remove_vec8_u64, remove_helper_v2, FixedVec8, u64; // V2 memory manager u64 / blob512 / vec512 - btreemap_v2_remove_u64_u64_mem_manager, remove_helper_v2_mem_manager, u64, u64; - btreemap_v2_remove_u64_blob512_mem_manager, remove_helper_v2_mem_manager, u64, Blob512; - btreemap_v2_remove_blob512_u64_mem_manager, remove_helper_v2_mem_manager, Blob512, u64; - btreemap_v2_remove_u64_vec512_mem_manager, remove_helper_v2_mem_manager, u64, FixedVec512; - btreemap_v2_remove_vec512_u64_mem_manager, remove_helper_v2_mem_manager, FixedVec512, u64; + 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_v1() -> BenchResult { @@ -413,11 +413,11 @@ bench_tests! { btreemap_v2_get_vec8_u64, get_helper_v2, FixedVec8, u64; // V2 memory manager u64 / blob512 / vec512 - btreemap_v2_get_u64_u64_mem_manager, get_helper_v2_mem_manager, u64, u64; - btreemap_v2_get_u64_blob512_mem_manager, get_helper_v2_mem_manager, u64, Blob512; - btreemap_v2_get_blob512_u64_mem_manager, get_helper_v2_mem_manager, Blob512, u64; - btreemap_v2_get_u64_vec512_mem_manager, get_helper_v2_mem_manager, u64, FixedVec512; - btreemap_v2_get_vec512_u64_mem_manager, get_helper_v2_mem_manager, FixedVec512, u64; + 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_v1() -> BenchResult { @@ -550,11 +550,11 @@ bench_tests! { btreemap_v2_contains_vec8_u64, contains_helper_v2, FixedVec8, u64; // V2 memory manager u64 / blob512 / vec512 - btreemap_v2_contains_u64_u64_mem_manager, contains_helper_v2_mem_manager, u64, u64; - btreemap_v2_contains_u64_blob512_mem_manager, contains_helper_v2_mem_manager, u64, Blob512; - btreemap_v2_contains_blob512_u64_mem_manager, contains_helper_v2_mem_manager, Blob512, u64; - btreemap_v2_contains_u64_vec512_mem_manager, contains_helper_v2_mem_manager, u64, FixedVec512; - btreemap_v2_contains_vec512_u64_mem_manager, contains_helper_v2_mem_manager, FixedVec512, u64; + 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_v1() -> BenchResult { From e71e4b5644574c1902234811697dc179d514e3e7 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Wed, 23 Apr 2025 19:44:04 +0200 Subject: [PATCH 28/68] . --- benchmarks/src/btreemap.rs | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index 6ba29d44..e59941b7 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -202,29 +202,29 @@ bench_tests! { // === V1 === // V1 blob K x 1024 - btreemap_v1_remove_blob_4_1024_v1, remove_helper_v1, Blob4, Blob1024; - btreemap_v1_remove_blob_8_1024_v1, remove_helper_v1, Blob8, Blob1024; - btreemap_v1_remove_blob_16_1024_v1, remove_helper_v1, Blob16, Blob1024; - btreemap_v1_remove_blob_32_1024_v1, remove_helper_v1, Blob32, Blob1024; - btreemap_v1_remove_blob_64_1024_v1, remove_helper_v1, Blob64, Blob1024; - btreemap_v1_remove_blob_128_1024_v1, remove_helper_v1, Blob128, Blob1024; - btreemap_v1_remove_blob_256_1024_v1, remove_helper_v1, Blob256, Blob1024; - btreemap_v1_remove_blob_512_1024_v1, remove_helper_v1, Blob512, Blob1024; + btreemap_v1_remove_blob_4_1024, remove_helper_v1, Blob4, Blob1024; + btreemap_v1_remove_blob_8_1024, remove_helper_v1, Blob8, Blob1024; + btreemap_v1_remove_blob_16_1024, remove_helper_v1, Blob16, Blob1024; + btreemap_v1_remove_blob_32_1024, remove_helper_v1, Blob32, Blob1024; + btreemap_v1_remove_blob_64_1024, remove_helper_v1, Blob64, Blob1024; + btreemap_v1_remove_blob_128_1024, remove_helper_v1, Blob128, Blob1024; + btreemap_v1_remove_blob_256_1024, remove_helper_v1, Blob256, Blob1024; + btreemap_v1_remove_blob_512_1024, remove_helper_v1, Blob512, Blob1024; // V1 blob 1024 x V - btreemap_v1_remove_blob_1024_4_v1, remove_helper_v1, Blob1024, Blob4; - btreemap_v1_remove_blob_1024_8_v1, remove_helper_v1, Blob1024, Blob8; - btreemap_v1_remove_blob_1024_16_v1, remove_helper_v1, Blob1024, Blob16; - btreemap_v1_remove_blob_1024_32_v1, remove_helper_v1, Blob1024, Blob32; - btreemap_v1_remove_blob_1024_64_v1, remove_helper_v1, Blob1024, Blob64; - btreemap_v1_remove_blob_1024_128_v1, remove_helper_v1, Blob1024, Blob128; - btreemap_v1_remove_blob_1024_256_v1, remove_helper_v1, Blob1024, Blob256; - btreemap_v1_remove_blob_1024_512_v1, remove_helper_v1, Blob1024, Blob512; + btreemap_v1_remove_blob_1024_4, remove_helper_v1, Blob1024, Blob4; + btreemap_v1_remove_blob_1024_8, remove_helper_v1, Blob1024, Blob8; + btreemap_v1_remove_blob_1024_16, remove_helper_v1, Blob1024, Blob16; + btreemap_v1_remove_blob_1024_32, remove_helper_v1, Blob1024, Blob32; + btreemap_v1_remove_blob_1024_64, remove_helper_v1, Blob1024, Blob64; + btreemap_v1_remove_blob_1024_128, remove_helper_v1, Blob1024, Blob128; + btreemap_v1_remove_blob_1024_256, remove_helper_v1, Blob1024, Blob256; + btreemap_v1_remove_blob_1024_512, remove_helper_v1, Blob1024, Blob512; // V1 u64 / blob8 - btreemap_v1_remove_u64_u64_v1, remove_helper_v1, u64, u64; - btreemap_v1_remove_u64_blob8_v1, remove_helper_v1, u64, Blob8; - btreemap_v1_remove_blob8_u64_v1, remove_helper_v1, Blob8, u64; + btreemap_v1_remove_u64_u64, remove_helper_v1, u64, u64; + btreemap_v1_remove_u64_blob8, remove_helper_v1, u64, Blob8; + btreemap_v1_remove_blob8_u64, remove_helper_v1, Blob8, u64; // === V2 === From d224f7f95d3f6ee5751dcd4cf0591372d08b2589 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Wed, 23 Apr 2025 19:59:19 +0200 Subject: [PATCH 29/68] canbench_results --- canbench_results.yml | 1776 +++++++++++++++++++++--------------------- 1 file changed, 888 insertions(+), 888 deletions(-) diff --git a/canbench_results.yml b/canbench_results.yml index 2990e113..a0182e1f 100644 --- a/canbench_results.yml +++ b/canbench_results.yml @@ -1,2321 +1,2321 @@ benches: - btreemap_contains_10mib_values_v2: + btreemap_v1_contains_blob8_u64: total: - instructions: 142172404 + instructions: 192404980 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_1024_128_v1: + btreemap_v1_contains_blob_1024_128: total: instructions: 4841087105 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_1024_128_v2: + btreemap_v1_contains_blob_1024_16: total: - instructions: 4888113392 + instructions: 4853399353 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_1024_16_v1: + btreemap_v1_contains_blob_1024_256: total: - instructions: 4853399353 + instructions: 4776041920 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_1024_16_v2: + btreemap_v1_contains_blob_1024_32: total: - instructions: 4885400370 + instructions: 4770238579 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_1024_256_v1: + btreemap_v1_contains_blob_1024_4: total: - instructions: 4776041920 + instructions: 4948898191 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_1024_256_v2: + btreemap_v1_contains_blob_1024_512: total: - instructions: 4833964902 + instructions: 4800709126 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_1024_32_v1: + btreemap_v1_contains_blob_1024_64: total: - instructions: 4770238579 + instructions: 4515063209 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_1024_32_v2: + btreemap_v1_contains_blob_1024_8: total: - instructions: 4819640354 + instructions: 4806336269 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_1024_4_v1: + btreemap_v1_contains_blob_128_1024: total: - instructions: 4948898191 + instructions: 848843273 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_1024_4_v2: + btreemap_v1_contains_blob_16_1024: total: - instructions: 4968337672 + instructions: 227336692 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_1024_512_v1: + btreemap_v1_contains_blob_256_1024: total: - instructions: 4800709126 + instructions: 1410857441 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_1024_512_v2: + btreemap_v1_contains_blob_32_1024: total: - instructions: 4871879643 + instructions: 260366378 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_1024_64_v1: + btreemap_v1_contains_blob_4_1024: total: - instructions: 4515063209 + instructions: 166001914 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_1024_64_v2: + btreemap_v1_contains_blob_512_1024: total: - instructions: 4570333507 + instructions: 2534138636 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_1024_8_v1: + btreemap_v1_contains_blob_64_1024: total: - instructions: 4806336269 + instructions: 500287451 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_1024_8_v2: + btreemap_v1_contains_blob_8_1024: total: - instructions: 4886245198 + instructions: 197009901 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_128_1024_v1: + btreemap_v1_contains_u64_blob8: total: - instructions: 848843273 + instructions: 168557358 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_128_1024_v2: + btreemap_v1_contains_u64_u64: total: - instructions: 920304158 + instructions: 168076033 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_16_1024_v1: + btreemap_v1_get_blob8_u64: total: - instructions: 227336692 + instructions: 200831001 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_16_1024_v2: + btreemap_v1_get_blob_1024_128: total: - instructions: 297154911 + instructions: 4894778854 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_256_1024_v1: + btreemap_v1_get_blob_1024_16: total: - instructions: 1410857441 + instructions: 4905268570 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_256_1024_v2: + btreemap_v1_get_blob_1024_256: total: - instructions: 1485301557 + instructions: 4831291228 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_32_1024_v1: + btreemap_v1_get_blob_1024_32: total: - instructions: 260366378 + instructions: 4824264421 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_32_1024_v2: + btreemap_v1_get_blob_1024_4: total: - instructions: 331723097 + instructions: 5000601367 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_4_1024_v1: + btreemap_v1_get_blob_1024_512: total: - instructions: 166001914 + instructions: 4859933014 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_4_1024_v2: + btreemap_v1_get_blob_1024_64: total: - instructions: 246601950 + instructions: 4569337426 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_512_1024_v1: + btreemap_v1_get_blob_1024_8: total: - instructions: 2534138636 + instructions: 4859604499 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_512_1024_v2: + btreemap_v1_get_blob_128_1024: total: - instructions: 2605423069 + instructions: 871377876 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_512_u64_v2_mem_manager: + btreemap_v1_get_blob_16_1024: total: - instructions: 2707283290 + instructions: 246862999 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_64_1024_v1: + btreemap_v1_get_blob_256_1024: total: - instructions: 500287451 + instructions: 1438374032 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_64_1024_v2: + btreemap_v1_get_blob_32_1024: total: - instructions: 572958074 + instructions: 280106753 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_8_1024_v1: + btreemap_v1_get_blob_4_1024: total: - instructions: 197009901 + instructions: 183878301 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_8_1024_v2: + btreemap_v1_get_blob_512_1024: total: - instructions: 273235952 + instructions: 2574022258 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_8_u64_v1: + btreemap_v1_get_blob_64_1024: total: - instructions: 192404980 + instructions: 522452995 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_blob_8_u64_v2: + btreemap_v1_get_blob_8_1024: total: - instructions: 274472580 + instructions: 217400958 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_u64_blob_512_v2_mem_manager: + btreemap_v1_get_u64_blob8: total: - instructions: 308772545 + instructions: 175701037 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_u64_blob_8_v1: + btreemap_v1_get_u64_u64: total: - instructions: 168557358 + instructions: 176409011 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_u64_blob_8_v2: + btreemap_v1_insert_blob8_u64: total: - instructions: 231389818 + instructions: 330179833 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 6 scopes: {} - btreemap_contains_u64_u64_v1: + btreemap_v1_insert_blob_1024_128: total: - instructions: 168076033 + instructions: 5015453786 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 262 scopes: {} - btreemap_contains_u64_u64_v2: + btreemap_v1_insert_blob_1024_16: total: - instructions: 234571046 - heap_increase: 0 - stable_memory_increase: 0 + instructions: 5028292822 + heap_increase: 1 + stable_memory_increase: 241 scopes: {} - btreemap_contains_u64_u64_v2_mem_manager: + btreemap_v1_insert_blob_1024_256: total: - instructions: 312538209 + instructions: 5026555704 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 292 scopes: {} - btreemap_contains_u64_vec_512_v2_mem_manager: + btreemap_v1_insert_blob_1024_32: total: - instructions: 390417972 + instructions: 5010649863 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 239 scopes: {} - btreemap_contains_u64_vec_8_v2: + btreemap_v1_insert_blob_1024_4: total: - instructions: 231389818 + instructions: 5019150317 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 235 scopes: {} - btreemap_contains_vec_1024_128_v2: + btreemap_v1_insert_blob_1024_512: total: - instructions: 2831338815 + instructions: 5080393216 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 348 scopes: {} - btreemap_contains_vec_1024_16_v2: + btreemap_v1_insert_blob_1024_64: total: - instructions: 2846038490 + instructions: 5060085474 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 250 scopes: {} - btreemap_contains_vec_1024_256_v2: + btreemap_v1_insert_blob_1024_8: total: - instructions: 2959184349 + instructions: 5000808591 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 237 scopes: {} - btreemap_contains_vec_1024_32_v2: + btreemap_v1_insert_blob_128_1024: total: - instructions: 2811608296 + instructions: 1178017150 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 260 scopes: {} - btreemap_contains_vec_1024_4_v2: + btreemap_v1_insert_blob_16_1024: total: - instructions: 2821905627 + instructions: 552825157 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 215 scopes: {} - btreemap_contains_vec_1024_512_v2: + btreemap_v1_insert_blob_256_1024: total: - instructions: 3020833972 + instructions: 1754389880 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 292 scopes: {} - btreemap_contains_vec_1024_64_v2: + btreemap_v1_insert_blob_32_1024: total: - instructions: 2709714173 + instructions: 586970666 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 230 scopes: {} - btreemap_contains_vec_1024_8_v2: + btreemap_v1_insert_blob_4_1024: total: - instructions: 2810204001 + instructions: 497160150 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 123 scopes: {} - btreemap_contains_vec_128_1024_v2: + btreemap_v1_insert_blob_512_1024: total: - instructions: 814724920 + instructions: 2884865378 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 351 scopes: {} - btreemap_contains_vec_16_1024_v2: + btreemap_v1_insert_blob_64_1024: total: - instructions: 517258665 + instructions: 829845537 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 245 scopes: {} - btreemap_contains_vec_256_1024_v2: + btreemap_v1_insert_blob_8_1024: total: - instructions: 1244168553 + instructions: 523376468 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 183 scopes: {} - btreemap_contains_vec_32_1024_v2: + btreemap_v1_insert_u64_blob8: total: - instructions: 577978742 + instructions: 339738737 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 7 scopes: {} - btreemap_contains_vec_4_1024_v2: + btreemap_v1_insert_u64_u64: total: - instructions: 472658300 + instructions: 345319699 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 7 scopes: {} - btreemap_contains_vec_512_1024_v2: + btreemap_v1_pop_first_blob8_u64: total: - instructions: 1872953819 + instructions: 444701759 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_vec_512_u64_v2_mem_manager: + btreemap_v1_pop_first_blob_1024_128: total: - instructions: 1749726676 + instructions: 9261568801 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_vec_64_1024_v2: + btreemap_v1_pop_first_blob_1024_16: total: - instructions: 635476669 + instructions: 9328030570 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_vec_8_1024_v2: + btreemap_v1_pop_first_blob_1024_256: total: - instructions: 476082704 + instructions: 9341547136 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_vec_8_u64_v2: + btreemap_v1_pop_first_blob_1024_32: total: - instructions: 363865474 + instructions: 9403739620 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_10mib_values_v2: + btreemap_v1_pop_first_blob_1024_4: total: - instructions: 1227438335 + instructions: 9305128854 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_1024_128_v1: + btreemap_v1_pop_first_blob_1024_512: total: - instructions: 4894778854 + instructions: 9427090606 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_1024_128_v2: + btreemap_v1_pop_first_blob_1024_64: total: - instructions: 4951787511 + instructions: 9482575998 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_1024_16_v1: + btreemap_v1_pop_first_blob_1024_8: total: - instructions: 4905268570 + instructions: 9372654485 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_1024_16_v2: + btreemap_v1_pop_first_blob_128_1024: total: - instructions: 4947627319 + instructions: 2086100298 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_1024_256_v1: + btreemap_v1_pop_first_blob_16_1024: total: - instructions: 4831291228 + instructions: 843356103 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_1024_256_v2: + btreemap_v1_pop_first_blob_256_1024: total: - instructions: 4898319044 + instructions: 3142976220 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_1024_32_v1: + btreemap_v1_pop_first_blob_32_1024: total: - instructions: 4824264421 + instructions: 959847828 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_1024_32_v2: + btreemap_v1_pop_first_blob_4_1024: total: - instructions: 4882460691 + instructions: 407363392 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_1024_4_v1: + btreemap_v1_pop_first_blob_512_1024: total: - instructions: 5000601367 + instructions: 5295483250 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_1024_4_v2: + btreemap_v1_pop_first_blob_64_1024: total: - instructions: 5027560434 + instructions: 1435171876 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_1024_512_v1: + btreemap_v1_pop_first_blob_8_1024: total: - instructions: 4859933014 + instructions: 685514410 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_1024_512_v2: + btreemap_v1_pop_first_u64_blob8: total: - instructions: 4937469682 + instructions: 556486284 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_1024_64_v1: + btreemap_v1_pop_first_u64_u64: total: - instructions: 4569337426 + instructions: 559253008 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_1024_64_v2: + btreemap_v1_pop_last_blob8_u64: total: - instructions: 4633617579 + instructions: 430116592 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_1024_8_v1: + btreemap_v1_pop_last_blob_1024_128: total: - instructions: 4859604499 + instructions: 9063791834 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_1024_8_v2: + btreemap_v1_pop_last_blob_1024_16: total: - instructions: 4947405187 + instructions: 9120287777 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_128_1024_v1: + btreemap_v1_pop_last_blob_1024_256: total: - instructions: 871377876 + instructions: 9045790381 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_128_1024_v2: + btreemap_v1_pop_last_blob_1024_32: total: - instructions: 952392232 + instructions: 9041569762 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_16_1024_v1: + btreemap_v1_pop_last_blob_1024_4: total: - instructions: 246862999 + instructions: 9141453888 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_16_1024_v2: + btreemap_v1_pop_last_blob_1024_512: total: - instructions: 322886246 + instructions: 9253062372 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_256_1024_v1: + btreemap_v1_pop_last_blob_1024_64: total: - instructions: 1438374032 + instructions: 9304533659 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_256_1024_v2: + btreemap_v1_pop_last_blob_1024_8: total: - instructions: 1522510073 + instructions: 9042228189 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_32_1024_v1: + btreemap_v1_pop_last_blob_128_1024: total: - instructions: 280106753 + instructions: 2031729139 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_32_1024_v2: + btreemap_v1_pop_last_blob_16_1024: total: - instructions: 358059333 + instructions: 817230046 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_4_1024_v1: + btreemap_v1_pop_last_blob_256_1024: total: - instructions: 183878301 + instructions: 3088595377 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_4_1024_v2: + btreemap_v1_pop_last_blob_32_1024: total: - instructions: 268405509 + instructions: 938469562 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_512_1024_v1: + btreemap_v1_pop_last_blob_4_1024: total: - instructions: 2574022258 + instructions: 401390503 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_512_1024_v2: + btreemap_v1_pop_last_blob_512_1024: total: - instructions: 2652896326 + instructions: 5189818383 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_512_u64_v2_mem_manager: + btreemap_v1_pop_last_blob_64_1024: total: - instructions: 2752362123 + instructions: 1403273842 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_64_1024_v1: + btreemap_v1_pop_last_blob_8_1024: total: - instructions: 522452995 + instructions: 677330739 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_64_1024_v2: + btreemap_v1_pop_last_u64_blob8: total: - instructions: 602470701 + instructions: 544202288 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_8_1024_v1: + btreemap_v1_pop_last_u64_u64: total: - instructions: 217400958 + instructions: 546009865 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_8_1024_v2: + btreemap_v1_remove_blob8_u64: total: - instructions: 299709230 + instructions: 438600480 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_8_u64_v1: + btreemap_v1_remove_blob_1024_128: total: - instructions: 200831001 + instructions: 6358931604 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_8_u64_v2: + btreemap_v1_remove_blob_1024_16: total: - instructions: 297434310 + instructions: 6316937914 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_u64_blob_512_v2_mem_manager: + btreemap_v1_remove_blob_1024_256: total: - instructions: 333198984 + instructions: 6393797546 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_u64_blob_8_v1: + btreemap_v1_remove_blob_1024_32: total: - instructions: 175701037 + instructions: 6290940701 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_u64_blob_8_v2: + btreemap_v1_remove_blob_1024_4: total: - instructions: 250017565 + instructions: 6324468042 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_u64_u64_v1: + btreemap_v1_remove_blob_1024_512: total: - instructions: 176409011 + instructions: 6512440385 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_u64_u64_v2: + btreemap_v1_remove_blob_1024_64: total: - instructions: 256706265 + instructions: 6394294842 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_u64_u64_v2_mem_manager: + btreemap_v1_remove_blob_1024_8: total: - instructions: 336204098 + instructions: 6335644027 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_u64_vec_512_v2_mem_manager: + btreemap_v1_remove_blob_128_1024: total: - instructions: 427374471 + instructions: 1574675940 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_u64_vec_8_v2: + btreemap_v1_remove_blob_16_1024: total: - instructions: 251930098 + instructions: 758136944 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_vec_1024_128_v2: + btreemap_v1_remove_blob_256_1024: total: - instructions: 2856597689 + instructions: 2279163553 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_vec_1024_16_v2: + btreemap_v1_remove_blob_32_1024: total: - instructions: 2872453451 + instructions: 827599093 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_vec_1024_256_v2: + btreemap_v1_remove_blob_4_1024: total: - instructions: 2977865537 + instructions: 486469240 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_vec_1024_32_v2: + btreemap_v1_remove_blob_512_1024: total: - instructions: 2847838344 + instructions: 3748993388 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_vec_1024_4_v2: + btreemap_v1_remove_blob_64_1024: total: - instructions: 2859810076 + instructions: 1141008090 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_vec_1024_512_v2: + btreemap_v1_remove_blob_8_1024: total: - instructions: 3048462843 + instructions: 644735138 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_vec_1024_64_v2: + btreemap_v1_remove_u64_blob8: total: - instructions: 2743478946 + instructions: 485748982 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_vec_1024_8_v2: + btreemap_v1_remove_u64_u64: total: - instructions: 2836135831 + instructions: 498934285 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_vec_128_1024_v2: + btreemap_v2_contains_10mib_values: total: - instructions: 849857473 + instructions: 142172404 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_vec_16_1024_v2: + btreemap_v2_contains_blob8_u64: total: - instructions: 545476822 + instructions: 274472580 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_vec_256_1024_v2: + btreemap_v2_contains_blob_1024_128: total: - instructions: 1273898725 + instructions: 4888113392 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_vec_32_1024_v2: + btreemap_v2_contains_blob_1024_16: total: - instructions: 599978021 + instructions: 4885400370 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_vec_4_1024_v2: + btreemap_v2_contains_blob_1024_256: total: - instructions: 499596844 + instructions: 4833964902 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_vec_512_1024_v2: + btreemap_v2_contains_blob_1024_32: total: - instructions: 1901150140 + instructions: 4819640354 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_vec_512_u64_v2_mem_manager: + btreemap_v2_contains_blob_1024_4: total: - instructions: 1787291841 + instructions: 4968337672 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_vec_64_1024_v2: + btreemap_v2_contains_blob_1024_512: total: - instructions: 672281492 + instructions: 4871879643 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_vec_8_1024_v2: + btreemap_v2_contains_blob_1024_64: total: - instructions: 502950891 + instructions: 4570333507 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_vec_8_u64_v2: + btreemap_v2_contains_blob_1024_8: total: - instructions: 374122015 + instructions: 4886245198 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_insert_10mib_values_v2: + btreemap_v2_contains_blob_128_1024: total: - instructions: 5239411147 - heap_increase: 322 - stable_memory_increase: 3613 + instructions: 920304158 + heap_increase: 0 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_128_v1: + btreemap_v2_contains_blob_16_1024: total: - instructions: 5015453786 + instructions: 297154911 heap_increase: 0 - stable_memory_increase: 262 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_128_v2: + btreemap_v2_contains_blob_256_1024: total: - instructions: 5106726267 + instructions: 1485301557 heap_increase: 0 - stable_memory_increase: 196 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_16_v1: + btreemap_v2_contains_blob_32_1024: total: - instructions: 5028292822 - heap_increase: 1 - stable_memory_increase: 241 + instructions: 331723097 + heap_increase: 0 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_16_v2: + btreemap_v2_contains_blob_4_1024: total: - instructions: 5115180811 - heap_increase: 1 - stable_memory_increase: 181 + instructions: 246601950 + heap_increase: 0 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_256_v1: + btreemap_v2_contains_blob_512_1024: total: - instructions: 5026555704 + instructions: 2605423069 heap_increase: 0 - stable_memory_increase: 292 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_256_v2: + btreemap_v2_contains_blob_64_1024: total: - instructions: 5120265704 + instructions: 572958074 heap_increase: 0 - stable_memory_increase: 219 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_32_v1: + btreemap_v2_contains_blob_8_1024: total: - instructions: 5010649863 + instructions: 273235952 heap_increase: 0 - stable_memory_increase: 239 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_32_v2: + btreemap_v2_contains_u64_blob8: total: - instructions: 5108875913 + instructions: 231389818 heap_increase: 0 - stable_memory_increase: 180 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_4_v1: + btreemap_v2_contains_u64_u64: total: - instructions: 5019150317 + instructions: 234571046 heap_increase: 0 - stable_memory_increase: 235 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_4_v2: + btreemap_v2_contains_u64_vec8: total: - instructions: 5098062004 + instructions: 231389818 heap_increase: 0 - stable_memory_increase: 176 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_512_v1: + btreemap_v2_contains_vec8_u64: total: - instructions: 5080393216 + instructions: 363865474 heap_increase: 0 - stable_memory_increase: 348 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_512_v2: + btreemap_v2_contains_vec_1024_128: total: - instructions: 5179936939 + instructions: 2831338815 heap_increase: 0 - stable_memory_increase: 261 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_64_v1: + btreemap_v2_contains_vec_1024_16: total: - instructions: 5060085474 + instructions: 2846038490 heap_increase: 0 - stable_memory_increase: 250 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_64_v2: + btreemap_v2_contains_vec_1024_256: total: - instructions: 5159014982 + instructions: 2959184349 heap_increase: 0 - stable_memory_increase: 188 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_8_v1: + btreemap_v2_contains_vec_1024_32: total: - instructions: 5000808591 + instructions: 2811608296 heap_increase: 0 - stable_memory_increase: 237 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_1024_8_v2: + btreemap_v2_contains_vec_1024_4: total: - instructions: 5103017728 + instructions: 2821905627 heap_increase: 0 - stable_memory_increase: 178 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_128_1024_v1: + btreemap_v2_contains_vec_1024_512: total: - instructions: 1178017150 + instructions: 3020833972 heap_increase: 0 - stable_memory_increase: 260 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_128_1024_v2: + btreemap_v2_contains_vec_1024_64: total: - instructions: 1278102996 + instructions: 2709714173 heap_increase: 0 - stable_memory_increase: 195 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_16_1024_v1: + btreemap_v2_contains_vec_1024_8: total: - instructions: 552825157 + instructions: 2810204001 heap_increase: 0 - stable_memory_increase: 215 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_16_1024_v2: + btreemap_v2_contains_vec_128_1024: total: - instructions: 647475677 + instructions: 814724920 heap_increase: 0 - stable_memory_increase: 161 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_256_1024_v1: + btreemap_v2_contains_vec_16_1024: total: - instructions: 1754389880 + instructions: 517258665 heap_increase: 0 - stable_memory_increase: 292 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_256_1024_v2: + btreemap_v2_contains_vec_256_1024: total: - instructions: 1852405490 + instructions: 1244168553 heap_increase: 0 - stable_memory_increase: 219 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_32_1024_v1: + btreemap_v2_contains_vec_32_1024: total: - instructions: 586970666 + instructions: 577978742 heap_increase: 0 - stable_memory_increase: 230 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_32_1024_v2: + btreemap_v2_contains_vec_4_1024: total: - instructions: 684264479 + instructions: 472658300 heap_increase: 0 - stable_memory_increase: 173 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_4_1024_v1: + btreemap_v2_contains_vec_512_1024: total: - instructions: 497160150 + instructions: 1872953819 heap_increase: 0 - stable_memory_increase: 123 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_4_1024_v2: + btreemap_v2_contains_vec_64_1024: total: - instructions: 593732538 + instructions: 635476669 heap_increase: 0 - stable_memory_increase: 92 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_512_1024_v1: + btreemap_v2_contains_vec_8_1024: total: - instructions: 2884865378 + instructions: 476082704 heap_increase: 0 - stable_memory_increase: 351 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_512_1024_v2: + btreemap_v2_get_10mib_values: total: - instructions: 2978766142 + instructions: 1227438335 heap_increase: 0 - stable_memory_increase: 263 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_512_u64_v2_mem_manager: + btreemap_v2_get_blob8_u64: total: - instructions: 2955935009 + instructions: 297434310 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_64_1024_v1: + btreemap_v2_get_blob_1024_128: total: - instructions: 829845537 + instructions: 4951787511 heap_increase: 0 - stable_memory_increase: 245 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_64_1024_v2: + btreemap_v2_get_blob_1024_16: total: - instructions: 925813019 + instructions: 4947627319 heap_increase: 0 - stable_memory_increase: 183 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_8_1024_v1: + btreemap_v2_get_blob_1024_256: total: - instructions: 523376468 + instructions: 4898319044 heap_increase: 0 - stable_memory_increase: 183 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_8_1024_v2: + btreemap_v2_get_blob_1024_32: total: - instructions: 625100458 + instructions: 4882460691 heap_increase: 0 - stable_memory_increase: 138 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_8_u64_v1: + btreemap_v2_get_blob_1024_4: total: - instructions: 330179833 + instructions: 5027560434 heap_increase: 0 - stable_memory_increase: 6 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_8_u64_v2: + btreemap_v2_get_blob_1024_512: total: - instructions: 441009397 + instructions: 4937469682 heap_increase: 0 - stable_memory_increase: 4 + stable_memory_increase: 0 scopes: {} - btreemap_insert_u64_blob_512_v2_mem_manager: + btreemap_v2_get_blob_1024_64: total: - instructions: 644441819 + instructions: 4633617579 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_insert_u64_blob_8_v1: + btreemap_v2_get_blob_1024_8: total: - instructions: 339738737 + instructions: 4947405187 heap_increase: 0 - stable_memory_increase: 7 + stable_memory_increase: 0 scopes: {} - btreemap_insert_u64_blob_8_v2: + btreemap_v2_get_blob_128_1024: total: - instructions: 420138321 + instructions: 952392232 heap_increase: 0 - stable_memory_increase: 5 + stable_memory_increase: 0 scopes: {} - btreemap_insert_u64_u64_v1: + btreemap_v2_get_blob_16_1024: total: - instructions: 345319699 + instructions: 322886246 heap_increase: 0 - stable_memory_increase: 7 + stable_memory_increase: 0 scopes: {} - btreemap_insert_u64_u64_v2: + btreemap_v2_get_blob_256_1024: total: - instructions: 428754946 + instructions: 1522510073 heap_increase: 0 - stable_memory_increase: 6 + stable_memory_increase: 0 scopes: {} - btreemap_insert_u64_u64_v2_mem_manager: + btreemap_v2_get_blob_32_1024: total: - instructions: 557964960 + instructions: 358059333 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_insert_u64_vec_512_v2_mem_manager: + btreemap_v2_get_blob_4_1024: total: - instructions: 891415932 + instructions: 268405509 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_insert_u64_vec_8_v2: + btreemap_v2_get_blob_512_1024: total: - instructions: 425713956 + instructions: 2652896326 heap_increase: 0 - stable_memory_increase: 21 + stable_memory_increase: 0 scopes: {} - btreemap_insert_vec_1024_128_v2: + btreemap_v2_get_blob_64_1024: total: - instructions: 3315448237 + instructions: 602470701 heap_increase: 0 - stable_memory_increase: 193 + stable_memory_increase: 0 scopes: {} - btreemap_insert_vec_1024_16_v2: + btreemap_v2_get_blob_8_1024: total: - instructions: 3315968588 - heap_increase: 1 - stable_memory_increase: 180 + instructions: 299709230 + heap_increase: 0 + stable_memory_increase: 0 scopes: {} - btreemap_insert_vec_1024_256_v2: + btreemap_v2_get_u64_blob8: total: - instructions: 3358500614 + instructions: 250017565 heap_increase: 0 - stable_memory_increase: 210 + stable_memory_increase: 0 scopes: {} - btreemap_insert_vec_1024_32_v2: + btreemap_v2_get_u64_u64: total: - instructions: 3332839138 + instructions: 256706265 heap_increase: 0 - stable_memory_increase: 179 + stable_memory_increase: 0 scopes: {} - btreemap_insert_vec_1024_4_v2: + btreemap_v2_get_u64_vec8: total: - instructions: 3314554499 + instructions: 251930098 heap_increase: 0 - stable_memory_increase: 179 + stable_memory_increase: 0 scopes: {} - btreemap_insert_vec_1024_512_v2: + btreemap_v2_get_vec8_u64: total: - instructions: 3467612167 + instructions: 374122015 heap_increase: 0 - stable_memory_increase: 253 + stable_memory_increase: 0 scopes: {} - btreemap_insert_vec_1024_64_v2: + btreemap_v2_get_vec_1024_128: total: - instructions: 3327082541 + instructions: 2856597689 heap_increase: 0 - stable_memory_increase: 180 + stable_memory_increase: 0 scopes: {} - btreemap_insert_vec_1024_8_v2: + btreemap_v2_get_vec_1024_16: total: - instructions: 3303085278 + instructions: 2872453451 heap_increase: 0 - stable_memory_increase: 179 + stable_memory_increase: 0 scopes: {} - btreemap_insert_vec_128_1024_v2: + btreemap_v2_get_vec_1024_256: total: - instructions: 1487039111 + instructions: 2977865537 heap_increase: 0 - stable_memory_increase: 191 + stable_memory_increase: 0 scopes: {} - btreemap_insert_vec_16_1024_v2: + btreemap_v2_get_vec_1024_32: total: - instructions: 1150131140 + instructions: 2847838344 heap_increase: 0 - stable_memory_increase: 161 + stable_memory_increase: 0 scopes: {} - btreemap_insert_vec_256_1024_v2: + btreemap_v2_get_vec_1024_4: total: - instructions: 1938997627 + instructions: 2859810076 heap_increase: 0 - stable_memory_increase: 209 + stable_memory_increase: 0 scopes: {} - btreemap_insert_vec_32_1024_v2: + btreemap_v2_get_vec_1024_512: total: - instructions: 1221419468 + instructions: 3048462843 heap_increase: 0 - stable_memory_increase: 171 + stable_memory_increase: 0 scopes: {} - btreemap_insert_vec_4_1024_v2: + btreemap_v2_get_vec_1024_64: total: - instructions: 1020891918 + instructions: 2743478946 heap_increase: 0 - stable_memory_increase: 94 + stable_memory_increase: 0 scopes: {} - btreemap_insert_vec_512_1024_v2: + btreemap_v2_get_vec_1024_8: total: - instructions: 2521989177 + instructions: 2836135831 heap_increase: 0 - stable_memory_increase: 253 + stable_memory_increase: 0 scopes: {} - btreemap_insert_vec_512_u64_v2_mem_manager: + btreemap_v2_get_vec_128_1024: total: - instructions: 2227238424 + instructions: 849857473 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_insert_vec_64_1024_v2: + btreemap_v2_get_vec_16_1024: total: - instructions: 1311755313 + instructions: 545476822 heap_increase: 0 - stable_memory_increase: 176 + stable_memory_increase: 0 scopes: {} - btreemap_insert_vec_8_1024_v2: + btreemap_v2_get_vec_256_1024: total: - instructions: 1111244572 + instructions: 1273898725 heap_increase: 0 - stable_memory_increase: 139 + stable_memory_increase: 0 scopes: {} - btreemap_insert_vec_8_u64_v2: + btreemap_v2_get_vec_32_1024: total: - instructions: 579978908 + instructions: 599978021 heap_increase: 0 - stable_memory_increase: 16 + stable_memory_increase: 0 scopes: {} - btreemap_pop_first_blob_1024_128_v1: + btreemap_v2_get_vec_4_1024: total: - instructions: 9261568801 + instructions: 499596844 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_blob_1024_128_v2: + btreemap_v2_get_vec_512_1024: total: - instructions: 9400851440 + instructions: 1901150140 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_blob_1024_16_v1: + btreemap_v2_get_vec_64_1024: total: - instructions: 9328030570 + instructions: 672281492 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_blob_1024_16_v2: + btreemap_v2_get_vec_8_1024: total: - instructions: 9438122841 + instructions: 502950891 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_blob_1024_256_v1: + btreemap_v2_insert_10mib_values: total: - instructions: 9341547136 + instructions: 5239411147 + heap_increase: 322 + stable_memory_increase: 3613 + scopes: {} + btreemap_v2_insert_blob8_u64: + total: + instructions: 441009397 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 4 scopes: {} - btreemap_pop_first_blob_1024_256_v2: + btreemap_v2_insert_blob_1024_128: total: - instructions: 9461876208 + instructions: 5106726267 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 196 scopes: {} - btreemap_pop_first_blob_1024_32_v1: + btreemap_v2_insert_blob_1024_16: total: - instructions: 9403739620 + instructions: 5115180811 + heap_increase: 1 + stable_memory_increase: 181 + scopes: {} + btreemap_v2_insert_blob_1024_256: + total: + instructions: 5120265704 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 219 scopes: {} - btreemap_pop_first_blob_1024_32_v2: + btreemap_v2_insert_blob_1024_32: total: - instructions: 9537411251 + instructions: 5108875913 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 180 scopes: {} - btreemap_pop_first_blob_1024_4_v1: + btreemap_v2_insert_blob_1024_4: total: - instructions: 9305128854 + instructions: 5098062004 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 176 scopes: {} - btreemap_pop_first_blob_1024_4_v2: + btreemap_v2_insert_blob_1024_512: total: - instructions: 9441581485 + instructions: 5179936939 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 261 scopes: {} - btreemap_pop_first_blob_1024_512_v1: + btreemap_v2_insert_blob_1024_64: total: - instructions: 9427090606 + instructions: 5159014982 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 188 scopes: {} - btreemap_pop_first_blob_1024_512_v2: + btreemap_v2_insert_blob_1024_8: total: - instructions: 9552298128 + instructions: 5103017728 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 178 scopes: {} - btreemap_pop_first_blob_1024_64_v1: + btreemap_v2_insert_blob_128_1024: total: - instructions: 9482575998 + instructions: 1278102996 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 195 scopes: {} - btreemap_pop_first_blob_1024_64_v2: + btreemap_v2_insert_blob_16_1024: total: - instructions: 9625674110 + instructions: 647475677 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 161 scopes: {} - btreemap_pop_first_blob_1024_8_v1: + btreemap_v2_insert_blob_256_1024: total: - instructions: 9372654485 + instructions: 1852405490 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 219 scopes: {} - btreemap_pop_first_blob_1024_8_v2: + btreemap_v2_insert_blob_32_1024: total: - instructions: 9516940578 + instructions: 684264479 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 173 scopes: {} - btreemap_pop_first_blob_128_1024_v1: + btreemap_v2_insert_blob_4_1024: total: - instructions: 2086100298 + instructions: 593732538 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 92 scopes: {} - btreemap_pop_first_blob_128_1024_v2: + btreemap_v2_insert_blob_512_1024: total: - instructions: 2267026668 + instructions: 2978766142 + heap_increase: 0 + stable_memory_increase: 263 + scopes: {} + btreemap_v2_insert_blob_64_1024: + total: + instructions: 925813019 + heap_increase: 0 + stable_memory_increase: 183 + scopes: {} + btreemap_v2_insert_blob_8_1024: + total: + instructions: 625100458 + heap_increase: 0 + stable_memory_increase: 138 + scopes: {} + btreemap_v2_insert_u64_blob8: + total: + instructions: 420138321 + heap_increase: 0 + stable_memory_increase: 5 + scopes: {} + btreemap_v2_insert_u64_u64: + total: + instructions: 428754946 + heap_increase: 0 + stable_memory_increase: 6 + scopes: {} + btreemap_v2_insert_u64_vec8: + total: + instructions: 425713956 + heap_increase: 0 + stable_memory_increase: 21 + scopes: {} + btreemap_v2_insert_vec8_u64: + total: + instructions: 579978908 + heap_increase: 0 + stable_memory_increase: 16 + scopes: {} + btreemap_v2_insert_vec_1024_128: + total: + instructions: 3315448237 + heap_increase: 0 + stable_memory_increase: 193 + scopes: {} + btreemap_v2_insert_vec_1024_16: + total: + instructions: 3315968588 + heap_increase: 1 + stable_memory_increase: 180 + scopes: {} + btreemap_v2_insert_vec_1024_256: + total: + instructions: 3358500614 + heap_increase: 0 + stable_memory_increase: 210 + scopes: {} + btreemap_v2_insert_vec_1024_32: + total: + instructions: 3332839138 + heap_increase: 0 + stable_memory_increase: 179 + scopes: {} + btreemap_v2_insert_vec_1024_4: + total: + instructions: 3314554499 + heap_increase: 0 + stable_memory_increase: 179 + scopes: {} + btreemap_v2_insert_vec_1024_512: + total: + instructions: 3467612167 + heap_increase: 0 + stable_memory_increase: 253 + scopes: {} + btreemap_v2_insert_vec_1024_64: + total: + instructions: 3327082541 + heap_increase: 0 + stable_memory_increase: 180 + scopes: {} + btreemap_v2_insert_vec_1024_8: + total: + instructions: 3303085278 + heap_increase: 0 + stable_memory_increase: 179 + scopes: {} + btreemap_v2_insert_vec_128_1024: + total: + instructions: 1487039111 + heap_increase: 0 + stable_memory_increase: 191 + scopes: {} + btreemap_v2_insert_vec_16_1024: + total: + instructions: 1150131140 + heap_increase: 0 + stable_memory_increase: 161 + scopes: {} + btreemap_v2_insert_vec_256_1024: + total: + instructions: 1938997627 + heap_increase: 0 + stable_memory_increase: 209 + scopes: {} + btreemap_v2_insert_vec_32_1024: + total: + instructions: 1221419468 + heap_increase: 0 + stable_memory_increase: 171 + scopes: {} + btreemap_v2_insert_vec_4_1024: + total: + instructions: 1020891918 + heap_increase: 0 + stable_memory_increase: 94 + scopes: {} + btreemap_v2_insert_vec_512_1024: + total: + instructions: 2521989177 + heap_increase: 0 + stable_memory_increase: 253 + scopes: {} + btreemap_v2_insert_vec_64_1024: + total: + instructions: 1311755313 + heap_increase: 0 + stable_memory_increase: 176 + scopes: {} + btreemap_v2_insert_vec_8_1024: + total: + instructions: 1111244572 + heap_increase: 0 + stable_memory_increase: 139 + scopes: {} + btreemap_v2_mem_manager_contains_blob512_u64: + total: + instructions: 2707283290 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_blob_16_1024_v1: + btreemap_v2_mem_manager_contains_u64_blob512: total: - instructions: 843356103 + instructions: 308772545 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_blob_16_1024_v2: + btreemap_v2_mem_manager_contains_u64_u64: total: - instructions: 1000805582 + instructions: 312538209 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_blob_256_1024_v1: + btreemap_v2_mem_manager_contains_u64_vec512: total: - instructions: 3142976220 + instructions: 390417972 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_blob_256_1024_v2: + btreemap_v2_mem_manager_contains_vec512_u64: total: - instructions: 3321915903 + instructions: 1749726676 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_blob_32_1024_v1: + btreemap_v2_mem_manager_get_blob512_u64: total: - instructions: 959847828 + instructions: 2752362123 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_blob_32_1024_v2: + btreemap_v2_mem_manager_get_u64_blob512: total: - instructions: 1135687838 + instructions: 333198984 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_blob_4_1024_v1: + btreemap_v2_mem_manager_get_u64_u64: total: - instructions: 407363392 + instructions: 336204098 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_blob_4_1024_v2: + btreemap_v2_mem_manager_get_u64_vec512: total: - instructions: 501524415 + instructions: 427374471 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_blob_512_1024_v1: + btreemap_v2_mem_manager_get_vec512_u64: total: - instructions: 5295483250 + instructions: 1787291841 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_blob_512_1024_v2: + btreemap_v2_mem_manager_insert_blob512_u64: total: - instructions: 5461844680 + instructions: 2955935009 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_blob_64_1024_v1: + btreemap_v2_mem_manager_insert_u64_blob512: total: - instructions: 1435171876 + instructions: 644441819 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_blob_64_1024_v2: + btreemap_v2_mem_manager_insert_u64_u64: total: - instructions: 1613002699 + instructions: 557964960 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_blob_8_1024_v1: + btreemap_v2_mem_manager_insert_u64_vec512: total: - instructions: 685514410 + instructions: 891415932 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_blob_8_1024_v2: + btreemap_v2_mem_manager_insert_vec512_u64: total: - instructions: 834614348 + instructions: 2227238424 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_blob_8_u64_v1: + btreemap_v2_mem_manager_remove_blob512_u64: total: - instructions: 444701759 + instructions: 3835007839 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_blob_8_u64_v2: + btreemap_v2_mem_manager_remove_u64_blob512: total: - instructions: 617279143 + instructions: 948754885 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_u64_blob_8_v1: + btreemap_v2_mem_manager_remove_u64_u64: total: - instructions: 556486284 + instructions: 810683242 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_u64_blob_8_v2: + btreemap_v2_mem_manager_remove_u64_vec512: total: - instructions: 713870173 + instructions: 1282544441 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_u64_u64_v1: + btreemap_v2_mem_manager_remove_vec512_u64: total: - instructions: 559253008 + instructions: 3296920864 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_u64_u64_v2: + btreemap_v2_pop_first_blob8_u64: total: - instructions: 727949255 + instructions: 617279143 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_u64_vec_8_v2: + btreemap_v2_pop_first_blob_1024_128: total: - instructions: 719776851 + instructions: 9400851440 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_vec_1024_128_v2: + btreemap_v2_pop_first_blob_1024_16: total: - instructions: 5761991658 + instructions: 9438122841 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_vec_1024_16_v2: + btreemap_v2_pop_first_blob_1024_256: total: - instructions: 5717179787 + instructions: 9461876208 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_vec_1024_256_v2: + btreemap_v2_pop_first_blob_1024_32: total: - instructions: 5829657252 + instructions: 9537411251 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_vec_1024_32_v2: + btreemap_v2_pop_first_blob_1024_4: total: - instructions: 5810269597 + instructions: 9441581485 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_vec_1024_4_v2: + btreemap_v2_pop_first_blob_1024_512: total: - instructions: 5742300942 + instructions: 9552298128 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_vec_1024_512_v2: + btreemap_v2_pop_first_blob_1024_64: total: - instructions: 5986020811 + instructions: 9625674110 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_vec_1024_64_v2: + btreemap_v2_pop_first_blob_1024_8: total: - instructions: 5811504893 + instructions: 9516940578 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_vec_1024_8_v2: + btreemap_v2_pop_first_blob_128_1024: total: - instructions: 5754711207 + instructions: 2267026668 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_vec_128_1024_v2: + btreemap_v2_pop_first_blob_16_1024: total: - instructions: 2291883874 + instructions: 1000805582 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_vec_16_1024_v2: + btreemap_v2_pop_first_blob_256_1024: total: - instructions: 1607117801 + instructions: 3321915903 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_vec_256_1024_v2: + btreemap_v2_pop_first_blob_32_1024: total: - instructions: 2998053927 + instructions: 1135687838 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_vec_32_1024_v2: + btreemap_v2_pop_first_blob_4_1024: total: - instructions: 1813506621 + instructions: 501524415 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_vec_4_1024_v2: + btreemap_v2_pop_first_blob_512_1024: total: - instructions: 890314532 + instructions: 5461844680 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_vec_512_1024_v2: + btreemap_v2_pop_first_blob_64_1024: total: - instructions: 4111225415 + instructions: 1613002699 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_vec_64_1024_v2: + btreemap_v2_pop_first_blob_8_1024: total: - instructions: 1994569641 + instructions: 834614348 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_vec_8_1024_v2: + btreemap_v2_pop_first_u64_blob8: total: - instructions: 1377353608 + instructions: 713870173 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_first_vec_8_u64_v2: + btreemap_v2_pop_first_u64_u64: total: - instructions: 785947853 + instructions: 727949255 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_1024_128_v1: + btreemap_v2_pop_first_u64_vec8: total: - instructions: 9063791834 + instructions: 719776851 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_1024_128_v2: + btreemap_v2_pop_first_vec8_u64: total: - instructions: 9216988013 + instructions: 785947853 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_1024_16_v1: + btreemap_v2_pop_first_vec_1024_128: total: - instructions: 9120287777 + instructions: 5761991658 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_1024_16_v2: + btreemap_v2_pop_first_vec_1024_16: total: - instructions: 9265619121 + instructions: 5717179787 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_1024_256_v1: + btreemap_v2_pop_first_vec_1024_256: total: - instructions: 9045790381 + instructions: 5829657252 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_1024_256_v2: + btreemap_v2_pop_first_vec_1024_32: total: - instructions: 9184646821 + instructions: 5810269597 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_1024_32_v1: + btreemap_v2_pop_first_vec_1024_4: total: - instructions: 9041569762 + instructions: 5742300942 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_1024_32_v2: + btreemap_v2_pop_first_vec_1024_512: total: - instructions: 9214347063 + instructions: 5986020811 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_1024_4_v1: + btreemap_v2_pop_first_vec_1024_64: total: - instructions: 9141453888 + instructions: 5811504893 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_1024_4_v2: + btreemap_v2_pop_first_vec_1024_8: total: - instructions: 9276743285 + instructions: 5754711207 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_1024_512_v1: + btreemap_v2_pop_first_vec_128_1024: total: - instructions: 9253062372 + instructions: 2291883874 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_1024_512_v2: + btreemap_v2_pop_first_vec_16_1024: total: - instructions: 9384603702 + instructions: 1607117801 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_1024_64_v1: + btreemap_v2_pop_first_vec_256_1024: total: - instructions: 9304533659 + instructions: 2998053927 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_1024_64_v2: + btreemap_v2_pop_first_vec_32_1024: total: - instructions: 9473867317 + instructions: 1813506621 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_1024_8_v1: + btreemap_v2_pop_first_vec_4_1024: total: - instructions: 9042228189 + instructions: 890314532 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_1024_8_v2: + btreemap_v2_pop_first_vec_512_1024: total: - instructions: 9202231505 + instructions: 4111225415 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_128_1024_v1: + btreemap_v2_pop_first_vec_64_1024: total: - instructions: 2031729139 + instructions: 1994569641 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_128_1024_v2: + btreemap_v2_pop_first_vec_8_1024: total: - instructions: 2214741972 + instructions: 1377353608 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_16_1024_v1: + btreemap_v2_pop_last_blob8_u64: total: - instructions: 817230046 + instructions: 600477753 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_16_1024_v2: + btreemap_v2_pop_last_blob_1024_128: total: - instructions: 984014890 + instructions: 9216988013 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_256_1024_v1: + btreemap_v2_pop_last_blob_1024_16: total: - instructions: 3088595377 + instructions: 9265619121 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_256_1024_v2: + btreemap_v2_pop_last_blob_1024_256: total: - instructions: 3267458376 + instructions: 9184646821 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_32_1024_v1: + btreemap_v2_pop_last_blob_1024_32: total: - instructions: 938469562 + instructions: 9214347063 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_32_1024_v2: + btreemap_v2_pop_last_blob_1024_4: total: - instructions: 1115373751 + instructions: 9276743285 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_4_1024_v1: + btreemap_v2_pop_last_blob_1024_512: total: - instructions: 401390503 + instructions: 9384603702 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_4_1024_v2: + btreemap_v2_pop_last_blob_1024_64: total: - instructions: 495470183 + instructions: 9473867317 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_512_1024_v1: + btreemap_v2_pop_last_blob_1024_8: total: - instructions: 5189818383 + instructions: 9202231505 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_512_1024_v2: + btreemap_v2_pop_last_blob_128_1024: total: - instructions: 5355362736 + instructions: 2214741972 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_64_1024_v1: + btreemap_v2_pop_last_blob_16_1024: total: - instructions: 1403273842 + instructions: 984014890 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_64_1024_v2: + btreemap_v2_pop_last_blob_256_1024: total: - instructions: 1586122208 + instructions: 3267458376 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_8_1024_v1: + btreemap_v2_pop_last_blob_32_1024: total: - instructions: 677330739 + instructions: 1115373751 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_8_1024_v2: + btreemap_v2_pop_last_blob_4_1024: total: - instructions: 826782675 + instructions: 495470183 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_8_u64_v1: + btreemap_v2_pop_last_blob_512_1024: total: - instructions: 430116592 + instructions: 5355362736 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_blob_8_u64_v2: + btreemap_v2_pop_last_blob_64_1024: total: - instructions: 600477753 + instructions: 1586122208 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_u64_blob_8_v1: + btreemap_v2_pop_last_blob_8_1024: total: - instructions: 544202288 + instructions: 826782675 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_u64_blob_8_v2: + btreemap_v2_pop_last_u64_blob8: total: instructions: 701494074 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_u64_u64_v1: + btreemap_v2_pop_last_u64_u64: total: - instructions: 546009865 + instructions: 714081947 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_u64_u64_v2: + btreemap_v2_pop_last_u64_vec8: total: - instructions: 714081947 + instructions: 705741826 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_u64_vec_8_v2: + btreemap_v2_pop_last_vec8_u64: total: - instructions: 705741826 + instructions: 766206340 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_vec_1024_128_v2: + btreemap_v2_pop_last_vec_1024_128: total: instructions: 6011533162 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_vec_1024_16_v2: + btreemap_v2_pop_last_vec_1024_16: total: instructions: 5989724884 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_vec_1024_256_v2: + btreemap_v2_pop_last_vec_1024_256: total: instructions: 6050160348 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_vec_1024_32_v2: + btreemap_v2_pop_last_vec_1024_32: total: instructions: 5993230156 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_vec_1024_4_v2: + btreemap_v2_pop_last_vec_1024_4: total: instructions: 6019019977 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_vec_1024_512_v2: + btreemap_v2_pop_last_vec_1024_512: total: instructions: 6247725686 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_vec_1024_64_v2: + btreemap_v2_pop_last_vec_1024_64: total: instructions: 6106283157 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_vec_1024_8_v2: + btreemap_v2_pop_last_vec_1024_8: total: instructions: 5962128160 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_vec_128_1024_v2: + btreemap_v2_pop_last_vec_128_1024: total: instructions: 2314319264 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_vec_16_1024_v2: + btreemap_v2_pop_last_vec_16_1024: total: instructions: 1595336286 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_vec_256_1024_v2: + btreemap_v2_pop_last_vec_256_1024: total: instructions: 3053468325 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_vec_32_1024_v2: + btreemap_v2_pop_last_vec_32_1024: total: instructions: 1808743752 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_vec_4_1024_v2: + btreemap_v2_pop_last_vec_4_1024: total: instructions: 884661229 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_vec_512_1024_v2: + btreemap_v2_pop_last_vec_512_1024: total: instructions: 4242078574 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_vec_64_1024_v2: + btreemap_v2_pop_last_vec_64_1024: total: instructions: 2001861757 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_vec_8_1024_v2: + btreemap_v2_pop_last_vec_8_1024: total: instructions: 1373780091 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_pop_last_vec_8_u64_v2: - total: - instructions: 766206340 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_range_count_1k_0b_v2: + btreemap_v2_range_count_1k_0b: total: instructions: 16983 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_range_count_1k_10kib_v2: + btreemap_v2_range_count_1k_10kib: total: instructions: 2453957 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_range_count_20_10mib_v2: + btreemap_v2_range_count_20_10mib: total: instructions: 20564624 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_range_key_sum_1k_0b_v2: + btreemap_v2_range_key_sum_1k_0b: total: instructions: 17617 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_range_key_sum_1k_10kib_v2: + btreemap_v2_range_key_sum_1k_10kib: total: instructions: 57293392 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_range_key_sum_20_10mib_v2: + btreemap_v2_range_key_sum_20_10mib: total: instructions: 1105818529 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_range_value_sum_1k_0b_v2: + btreemap_v2_range_value_sum_1k_0b: total: instructions: 17631 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_range_value_sum_1k_10kib_v2: + btreemap_v2_range_value_sum_1k_10kib: total: instructions: 57305388 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_range_value_sum_20_10mib_v2: + btreemap_v2_range_value_sum_20_10mib: total: instructions: 1105818765 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_10mib_values_v2: + btreemap_v2_remove_10mib_values: total: instructions: 5564361780 heap_increase: 0 stable_memory_increase: 657 scopes: {} - btreemap_remove_blob_1024_128_v1: + btreemap_v2_remove_blob8_u64: total: - instructions: 6358931604 + instructions: 587060364 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_1024_128_v2: + btreemap_v2_remove_blob_1024_128: total: instructions: 6476156404 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_1024_16_v1: - total: - instructions: 6316937914 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_remove_blob_1024_16_v2: + btreemap_v2_remove_blob_1024_16: total: instructions: 6430488735 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_1024_256_v1: - total: - instructions: 6393797546 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_remove_blob_1024_256_v2: + btreemap_v2_remove_blob_1024_256: total: instructions: 6510466761 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_1024_32_v1: - total: - instructions: 6290940701 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_remove_blob_1024_32_v2: + btreemap_v2_remove_blob_1024_32: total: instructions: 6416289543 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_1024_4_v1: - total: - instructions: 6324468042 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_remove_blob_1024_4_v2: + btreemap_v2_remove_blob_1024_4: total: instructions: 6428926805 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_1024_512_v1: - total: - instructions: 6512440385 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_remove_blob_1024_512_v2: + btreemap_v2_remove_blob_1024_512: total: instructions: 6628997702 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_1024_64_v1: - total: - instructions: 6394294842 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_remove_blob_1024_64_v2: + btreemap_v2_remove_blob_1024_64: total: instructions: 6499586873 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_1024_8_v1: - total: - instructions: 6335644027 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_remove_blob_1024_8_v2: + btreemap_v2_remove_blob_1024_8: total: instructions: 6447455642 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_128_1024_v1: - total: - instructions: 1574675940 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_remove_blob_128_1024_v2: + btreemap_v2_remove_blob_128_1024: total: instructions: 1717684218 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_16_1024_v1: - total: - instructions: 758136944 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_remove_blob_16_1024_v2: + btreemap_v2_remove_blob_16_1024: total: instructions: 895985762 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_256_1024_v1: - total: - instructions: 2279163553 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_remove_blob_256_1024_v2: + btreemap_v2_remove_blob_256_1024: total: instructions: 2417905594 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_32_1024_v1: - total: - instructions: 827599093 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_remove_blob_32_1024_v2: + btreemap_v2_remove_blob_32_1024: total: instructions: 966757633 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_4_1024_v1: - total: - instructions: 486469240 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_remove_blob_4_1024_v2: + btreemap_v2_remove_blob_4_1024: total: instructions: 600093407 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_512_1024_v1: - total: - instructions: 3748993388 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_remove_blob_512_1024_v2: + btreemap_v2_remove_blob_512_1024: total: instructions: 3878241779 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_512_u64_v2_mem_manager: - total: - instructions: 3835007839 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_remove_blob_64_1024_v1: - total: - instructions: 1141008090 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_remove_blob_64_1024_v2: + btreemap_v2_remove_blob_64_1024: total: instructions: 1280920638 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_8_1024_v1: - total: - instructions: 644735138 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_remove_blob_8_1024_v2: + btreemap_v2_remove_blob_8_1024: total: instructions: 776768069 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_8_u64_v1: - total: - instructions: 438600480 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_remove_blob_8_u64_v2: - total: - instructions: 587060364 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_remove_u64_blob_512_v2_mem_manager: - total: - instructions: 948754885 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_remove_u64_blob_8_v1: - total: - instructions: 485748982 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_remove_u64_blob_8_v2: + btreemap_v2_remove_u64_blob8: total: instructions: 601012747 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_u64_u64_v1: - total: - instructions: 498934285 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_remove_u64_u64_v2: + btreemap_v2_remove_u64_u64: total: instructions: 623495817 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_u64_u64_v2_mem_manager: - total: - instructions: 810683242 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_remove_u64_vec_512_v2_mem_manager: + btreemap_v2_remove_u64_vec8: total: - instructions: 1282544441 + instructions: 607735576 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_u64_vec_8_v2: + btreemap_v2_remove_vec8_u64: total: - instructions: 607735576 + instructions: 748888529 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_vec_1024_128_v2: + btreemap_v2_remove_vec_1024_128: total: instructions: 5035221138 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_vec_1024_16_v2: + btreemap_v2_remove_vec_1024_16: total: instructions: 4865772312 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_vec_1024_256_v2: + btreemap_v2_remove_vec_1024_256: total: instructions: 5272124100 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_vec_1024_32_v2: + btreemap_v2_remove_vec_1024_32: total: instructions: 4933428003 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_vec_1024_4_v2: + btreemap_v2_remove_vec_1024_4: total: instructions: 4900218523 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_vec_1024_512_v2: + btreemap_v2_remove_vec_1024_512: total: instructions: 5447497576 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_vec_1024_64_v2: + btreemap_v2_remove_vec_1024_64: total: instructions: 4969706493 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_vec_1024_8_v2: + btreemap_v2_remove_vec_1024_8: total: instructions: 4886477209 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_vec_128_1024_v2: + btreemap_v2_remove_vec_128_1024: total: instructions: 2163287854 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_vec_16_1024_v2: + btreemap_v2_remove_vec_16_1024: total: instructions: 1558378991 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_vec_256_1024_v2: + btreemap_v2_remove_vec_256_1024: total: instructions: 2831772215 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_vec_32_1024_v2: + btreemap_v2_remove_vec_32_1024: total: instructions: 1683024896 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_vec_4_1024_v2: + btreemap_v2_remove_vec_4_1024: total: instructions: 1103313327 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_vec_512_1024_v2: + btreemap_v2_remove_vec_512_1024: total: instructions: 3898865886 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_vec_512_u64_v2_mem_manager: - total: - instructions: 3296920864 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_remove_vec_64_1024_v2: + btreemap_v2_remove_vec_64_1024: total: instructions: 1878533979 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_vec_8_1024_v2: + btreemap_v2_remove_vec_8_1024: total: instructions: 1411377325 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_vec_8_u64_v2: - total: - instructions: 748888529 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_scan_iter_1k_0b_v2: + btreemap_v2_scan_iter_1k_0b: total: instructions: 1554259 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_scan_iter_1k_10kib_v2: + btreemap_v2_scan_iter_1k_10kib: total: instructions: 57130450 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_scan_iter_20_10mib_v2: + btreemap_v2_scan_iter_20_10mib: total: instructions: 1103720742 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_scan_iter_rev_1k_0b_v2: + btreemap_v2_scan_iter_rev_1k_0b: total: instructions: 1556497 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_scan_iter_rev_1k_10kib_v2: + btreemap_v2_scan_iter_rev_1k_10kib: total: instructions: 57108188 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_scan_iter_rev_20_10mib_v2: + btreemap_v2_scan_iter_rev_20_10mib: total: instructions: 1103720331 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_scan_keys_1k_0b_v2: + btreemap_v2_scan_keys_1k_0b: total: instructions: 984705 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_scan_keys_1k_10kib_v2: + btreemap_v2_scan_keys_1k_10kib: total: instructions: 2398023 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_scan_keys_20_10mib_v2: + btreemap_v2_scan_keys_20_10mib: total: instructions: 18466001 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_scan_keys_rev_1k_0b_v2: + btreemap_v2_scan_keys_rev_1k_0b: total: instructions: 985803 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_scan_keys_rev_1k_10kib_v2: + btreemap_v2_scan_keys_rev_1k_10kib: total: instructions: 2378116 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_scan_keys_rev_20_10mib_v2: + btreemap_v2_scan_keys_rev_20_10mib: total: instructions: 18466011 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_scan_values_1k_0b_v2: + btreemap_v2_scan_values_1k_0b: total: instructions: 1564425 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_scan_values_1k_10kib_v2: + btreemap_v2_scan_values_1k_10kib: total: instructions: 57140616 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_scan_values_20_10mib_v2: + btreemap_v2_scan_values_20_10mib: total: instructions: 1103720944 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_scan_values_rev_1k_0b_v2: + btreemap_v2_scan_values_rev_1k_0b: total: instructions: 1566269 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_scan_values_rev_1k_10kib_v2: + btreemap_v2_scan_values_rev_1k_10kib: total: instructions: 57117960 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_scan_values_rev_20_10mib_v2: + btreemap_v2_scan_values_rev_20_10mib: total: instructions: 1103720527 heap_increase: 0 From a635b6e5112f34a27bb320b8f3871cd8c1f60c20 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 16:35:51 +0200 Subject: [PATCH 30/68] lazy loaded keys --- src/btreemap.rs | 100 +++++++----- src/btreemap/iter.rs | 29 ++-- src/btreemap/node.rs | 344 ++++++++++++++++++++++++++++++---------- src/btreemap/node/v1.rs | 69 +++++--- src/btreemap/node/v2.rs | 65 ++++---- 5 files changed, 417 insertions(+), 190 deletions(-) diff --git a/src/btreemap.rs b/src/btreemap.rs index 7d7caa3a..e7e4c457 100644 --- a/src/btreemap.rs +++ b/src/btreemap.rs @@ -366,7 +366,7 @@ where let mut root = self.load_node(self.root_addr); // Check if the key already exists in the root. - if let Ok(idx) = root.search(&key) { + if let Ok(idx) = root.search(&key, self.memory()) { // The key exists. Overwrite it and return the previous value. let (_, previous_value) = root.swap_entry(idx, (key, value), self.memory()); self.save_node(&mut root); @@ -409,7 +409,7 @@ where assert!(!node.is_full()); // Look for the key in the node. - match node.search(&key) { + match node.search(&key, self.memory()) { Ok(idx) => { // The key is already in the node. // Overwrite it and return the previous value. @@ -442,7 +442,7 @@ where if child.is_full() { // Check if the key already exists in the child. - if let Ok(idx) = child.search(&key) { + if let Ok(idx) = child.search(&key, self.memory()) { // The key exists. Overwrite it and return the previous value. let (_, previous_value) = child.swap_entry(idx, (key, value), self.memory()); @@ -455,7 +455,7 @@ where // The children have now changed. Search again for // the child where we need to store the entry in. - let idx = node.search(&key).unwrap_or_else(|idx| idx); + let idx = node.search(&key, self.memory()).unwrap_or_else(|idx| idx); child = self.load_node(node.child(idx)); } @@ -469,7 +469,7 @@ where } } - /// Takes as input a nonfull internal `node` and index to its full child, then + /// Takes as input a non-full internal `node` and index to its full child, then /// splits this child into two, adding an additional child to `node`. /// /// Example: @@ -535,7 +535,7 @@ where { let node = self.load_node(node_addr); // Look for the key in the current node. - match node.search(key) { + match node.search(key, self.memory()) { Ok(idx) => Some(f(node, idx)), // Key found: apply `f`. Err(idx) => match node.node_type() { NodeType::Leaf => None, // At a leaf: key not present. @@ -652,7 +652,7 @@ where match node.node_type() { NodeType::Leaf => { - match node.search(key) { + match node.search(key, self.memory()) { Ok(idx) => { // Case 1: The node is a leaf node and the key exists in it. // This is the simplest case. The key is removed from the leaf. @@ -679,7 +679,7 @@ where } } NodeType::Internal => { - match node.search(key) { + match node.search(key, self.memory()) { Ok(idx) => { // Case 2: The node is an internal node and the key exists in it. @@ -1310,10 +1310,40 @@ mod test { } } - macro_rules! verify_and_run { - ($runner:ident, $K:ty, $V:ty) => {{ + /// Asserts that the associated `BOUND` for `$ty` is _not_ `Unbounded`. + macro_rules! assert_bounded { + ($ty:ty) => { + assert_ne!(<$ty>::BOUND, StorableBound::Unbounded, "Must be Bounded"); + }; + } + + /// Asserts that the associated `BOUND` for `$ty` _is_ `Unbounded`. + macro_rules! assert_unbounded { + ($ty:ty) => { + assert_eq!(<$ty>::BOUND, StorableBound::Unbounded, "Must be Unbounded"); + }; + } + + macro_rules! run_with_key { + ($runner:ident, $K:ty) => {{ verify_monotonic::<$K>(); - $runner::<$K, $V>(); + + // Empty value. + $runner::<$K, ()>(); + + // Bounded values. + assert_bounded!(u32); + $runner::<$K, u32>(); + + assert_bounded!(Blob<20>); + $runner::<$K, Blob<20>>(); + + // Unbounded values. + assert_unbounded!(MonotonicVec32); + $runner::<$K, MonotonicVec32>(); + + assert_unbounded!(MonotonicString32); + $runner::<$K, MonotonicString32>(); }}; } @@ -1322,37 +1352,19 @@ mod test { ($name:ident, $runner:ident) => { #[test] fn $name() { - use StorableBound::Unbounded; - - // Set, empty value, bounded. - { - type Value = (); - assert_ne!(::BOUND, Unbounded, "Must be Bounded"); - verify_and_run!($runner, u32, Value); - verify_and_run!($runner, Blob<10>, Value); - verify_and_run!($runner, MonotonicVec32, Value); - verify_and_run!($runner, MonotonicString32, Value); - } + // Bounded keys. + assert_bounded!(u32); + run_with_key!($runner, u32); - // Map, bounded value. - { - type Value = u32; - assert_ne!(Value::BOUND, Unbounded, "Must be Bounded"); - verify_and_run!($runner, u32, Value); - verify_and_run!($runner, Blob<10>, Value); - verify_and_run!($runner, MonotonicVec32, Value); - verify_and_run!($runner, MonotonicString32, Value); - } + assert_bounded!(Blob<10>); + run_with_key!($runner, Blob<10>); - // Map, unbounded value. - { - type Value = MonotonicVec32; - assert_eq!(Value::BOUND, Unbounded, "Must be Unbounded"); - verify_and_run!($runner, u32, Value); - verify_and_run!($runner, Blob<10>, Value); - verify_and_run!($runner, MonotonicVec32, Value); - verify_and_run!($runner, MonotonicString32, Value); - } + // Unbounded keys. + assert_unbounded!(MonotonicVec32); + run_with_key!($runner, MonotonicVec32); + + assert_unbounded!(MonotonicString32); + run_with_key!($runner, MonotonicString32); } }; } @@ -1440,7 +1452,7 @@ mod test { assert!(right_child.is_full()); let median_index = right_child.entries_len() / 2; let median_key = key(12); - assert_eq!(right_child.key(median_index), &median_key); + assert_eq!(right_child.key(median_index, btree.memory()), &median_key); // Overwrite the value of the median key. assert_eq!(btree.insert(median_key.clone(), value(123)), Some(value(0))); @@ -3089,7 +3101,7 @@ mod test { // [0, 1, 2, 3, 4, 5] [7, 8, 9, 10, 11] let root = btree.load_node(btree.root_addr); assert_eq!(root.node_type(), NodeType::Internal); - assert_eq!(root.keys(), vec![vec![6; 10_000]]); + assert_eq!(root.keys(btree.memory()), vec![vec![6; 10_000]]); assert_eq!(root.children_len(), 2); // Remove the element in the root. @@ -3101,7 +3113,7 @@ mod test { // [0, 1, 2, 3, 4] [7, 8, 9, 10, 11] let root = btree.load_node(btree.root_addr); assert_eq!(root.node_type(), NodeType::Internal); - assert_eq!(root.keys(), vec![vec![5; 10_000]]); + assert_eq!(root.keys(btree.memory()), vec![vec![5; 10_000]]); assert_eq!(root.children_len(), 2); // Remove the element in the root. This triggers the case where the root @@ -3113,7 +3125,7 @@ mod test { let root = btree.load_node(btree.root_addr); assert_eq!(root.node_type(), NodeType::Leaf); assert_eq!( - root.keys(), + root.keys(btree.memory()), vec![ vec![0; 10_000], vec![1; 10_000], diff --git a/src/btreemap/iter.rs b/src/btreemap/iter.rs index 82869508..1e653e16 100644 --- a/src/btreemap/iter.rs +++ b/src/btreemap/iter.rs @@ -94,7 +94,7 @@ where Bound::Included(key) | Bound::Excluded(key) => { let mut node = self.map.load_node(self.map.root_addr); loop { - match node.search(key) { + match node.search(key, self.map.memory()) { Ok(idx) => { if let Bound::Included(_) = self.range.start_bound() { // We found the key exactly matching the left bound. @@ -115,7 +115,7 @@ where }; if idx + 1 < node.entries_len() - && self.range.contains(node.key(idx + 1)) + && self.range.contains(node.key(idx + 1, self.map.memory())) { self.forward_cursors.push(Cursor::Node { node, @@ -152,7 +152,9 @@ where NodeType::Leaf => None, }; - if idx < node.entries_len() && self.range.contains(node.key(idx)) { + if idx < node.entries_len() + && self.range.contains(node.key(idx, self.map.memory())) + { self.forward_cursors.push(Cursor::Node { node, next: Index::Entry(idx), @@ -188,7 +190,7 @@ where Bound::Included(key) | Bound::Excluded(key) => { let mut node = self.map.load_node(self.map.root_addr); loop { - match node.search(key) { + match node.search(key, self.map.memory()) { Ok(idx) => { if let Bound::Included(_) = self.range.end_bound() { // We found the key exactly matching the right bound. @@ -208,7 +210,9 @@ where NodeType::Leaf => None, }; - if idx > 0 && self.range.contains(node.key(idx - 1)) { + if idx > 0 + && self.range.contains(node.key(idx - 1, self.map.memory())) + { self.backward_cursors.push(Cursor::Node { node, next: Index::Entry(idx - 1), @@ -243,7 +247,8 @@ where NodeType::Leaf => None, }; - if idx > 0 && self.range.contains(node.key(idx - 1)) { + if idx > 0 && self.range.contains(node.key(idx - 1, self.map.memory())) + { self.backward_cursors.push(Cursor::Node { node, next: Index::Entry(idx - 1), @@ -320,7 +325,7 @@ where next: Index::Entry(entry_idx), } => { // If the key does not belong to the range, iteration stops. - if !self.range.contains(node.key(entry_idx)) { + if !self.range.contains(node.key(entry_idx, self.map.memory())) { // Clear all cursors to avoid needless work in subsequent calls. self.forward_cursors = vec![]; self.backward_cursors = vec![]; @@ -328,7 +333,7 @@ where } let res = map(&node, entry_idx); - self.range.0 = Bound::Excluded(node.key(entry_idx).clone()); + self.range.0 = Bound::Excluded(node.key(entry_idx, self.map.memory()).clone()); let next = match node.node_type() { // If this is an internal node, add the next child to the cursors. @@ -403,7 +408,7 @@ where next: Index::Entry(entry_idx), } => { // If the key does not belong to the range, iteration stops. - if !self.range.contains(node.key(entry_idx)) { + if !self.range.contains(node.key(entry_idx, self.map.memory())) { // Clear all cursors to avoid needless work in subsequent calls. self.forward_cursors = vec![]; self.backward_cursors = vec![]; @@ -411,7 +416,7 @@ where } let res = map(&node, entry_idx); - self.range.1 = Bound::Excluded(node.key(entry_idx).clone()); + self.range.1 = Bound::Excluded(node.key(entry_idx, self.map.memory()).clone()); if let Some(next) = match node.node_type() { // If this is an internal node, add the previous child to the cursors. @@ -497,7 +502,7 @@ where fn next(&mut self) -> Option { self.0 - .next_map(|node, entry_idx| node.key(entry_idx).clone()) + .next_map(|node, entry_idx| node.key(entry_idx, self.0.map.memory()).clone()) } fn count(mut self) -> usize @@ -516,7 +521,7 @@ where { fn next_back(&mut self) -> Option { self.0 - .next_back_map(|node, entry_idx| node.key(entry_idx).clone()) + .next_back_map(|node, entry_idx| node.key(entry_idx, self.0.map.memory()).clone()) } } diff --git a/src/btreemap/node.rs b/src/btreemap/node.rs index 50af80e0..7079d7f0 100644 --- a/src/btreemap/node.rs +++ b/src/btreemap/node.rs @@ -39,6 +39,8 @@ pub enum NodeType { pub type Entry = (K, Vec); pub type EntryRef<'a, K> = (&'a K, &'a [u8]); +type LazyEntry = (LazyKey, LazyValue); + /// A node of a B-Tree. /// /// There are two versions of a `Node`: @@ -52,7 +54,7 @@ pub struct Node { address: Address, // List of tuples consisting of a key and the encoded value. // INVARIANT: the list is sorted by key. - keys_and_encoded_values: Vec<(K, Value)>, + keys_and_encoded_values: Vec>, // For the key at position I, children[I] points to the left // child of this key and children[I + 1] points to the right child. children: Vec
, @@ -106,14 +108,13 @@ impl Node { pub fn get_max(&self, memory: &M) -> Entry { match self.node_type { NodeType::Leaf => { - let last_idx = self.keys_and_encoded_values.len() - 1; + let entry = self + .keys_and_encoded_values + .last() + .expect("A node can never be empty"); ( - self.keys_and_encoded_values - .last() - .expect("A node can never be empty") - .0 - .clone(), - self.value(last_idx, memory).to_vec(), + self.get_key(entry, memory).clone(), + self.get_value(entry, memory).to_vec(), ) } NodeType::Internal => { @@ -164,32 +165,94 @@ impl Node { ) -> Entry { let (old_key, old_value) = core::mem::replace( &mut self.keys_and_encoded_values[idx], - (key, Value::by_value(value)), + (LazyKey::by_value(key), LazyValue::by_value(value)), ); - (old_key, self.extract_value(old_value, memory)) + ( + self.extract_key(old_key, memory), + self.extract_value(old_value, memory), + ) } /// Returns a reference to the entry at the specified index. pub fn entry(&self, idx: usize, memory: &M) -> EntryRef { - ( - &self.keys_and_encoded_values[idx].0, - self.value(idx, memory), - ) + (self.key(idx, memory), self.value(idx, memory)) + } + + /// Returns a reference to the cached key and loads it from memory if needed. + #[inline] + fn get_key<'a, M: Memory>(&'a self, (k, _): &'a LazyEntry, memory: &M) -> &'a K { + k.get_or_load(|offset| self.load_key_from_memory(offset, memory)) + } + + /// Returns a reference to the cached value and loads it from memory if needed. + #[inline] + fn get_value<'a, M: Memory>(&'a self, (_, v): &'a LazyEntry, memory: &M) -> &'a [u8] { + v.get_or_load(|offset| self.load_value_from_memory(offset, memory)) + } + + /// Returns a reference to the key at the specified index. + pub fn key(&self, idx: usize, memory: &M) -> &K { + self.get_key(&self.keys_and_encoded_values[idx], memory) } /// Returns a reference to the encoded value at the specified index. pub fn value(&self, idx: usize, memory: &M) -> &[u8] { - // Load and cache the value from the underlying memory if needed. - self.keys_and_encoded_values[idx] - .1 - .get_or_load(|offset| self.load_value_from_memory(offset, memory)) + self.get_value(&self.keys_and_encoded_values[idx], memory) + } + + /// Extracts the contents of key (by loading it first if it's not loaded yet). + fn extract_key(&self, key: LazyKey, memory: &M) -> K { + key.take_or_load(|offset| self.load_key_from_memory(offset, memory)) } /// Extracts the contents of value (by loading it first if it's not loaded yet). - fn extract_value(&self, value: Value, memory: &M) -> Vec { + fn extract_value(&self, value: LazyValue, memory: &M) -> Vec { value.take_or_load(|offset| self.load_value_from_memory(offset, memory)) } + /// Loads a key from stable memory at the given offset of this node. + fn load_key_from_memory(&self, mut offset: Bytes, memory: &M) -> K { + let reader = NodeReader { + address: self.address, + overflows: &self.overflows, + page_size: self.page_size(), + memory, + }; + + // Retrieve the key's size. + let key_offset = Address::from(offset.get()); + let key_size = match self.version { + Version::V1(_) => { + // In V1, the key's size is always stored in memory. + offset += U32_SIZE; + read_u32(&reader, key_offset) + } + Version::V2(_) => { + // In V2, if the key is fixed-size, use the maximum bound; + // otherwise, read its size from memory. + if K::BOUND.is_fixed_size() { + K::BOUND.max_size() + } else { + offset += U32_SIZE; + read_u32(&reader, key_offset) + } + } + }; + + let mut bytes = vec![]; + read_to_vec( + &reader, + Address::from((offset).get()), + &mut bytes, + key_size as usize, + ); + //println!("ABC load key_size: {key_size:?}"); + //println!("ABC load key: {bytes:?}"); + let key = K::from_bytes(Cow::Borrowed(&bytes)); + + key + } + /// Loads a value from stable memory at the given offset of this node. fn load_value_from_memory(&self, offset: Bytes, memory: &M) -> Vec { let reader = NodeReader { @@ -199,13 +262,13 @@ impl Node { memory, }; - let value_len = read_u32(&reader, Address::from(offset.get())) as usize; + let value_size = read_u32(&reader, Address::from(offset.get())) as usize; let mut bytes = vec![]; read_to_vec( &reader, Address::from((offset + U32_SIZE).get()), &mut bytes, - value_len, + value_size, ); bytes @@ -215,11 +278,6 @@ impl Node { self.version.page_size() } - /// Returns a reference to the key at the specified index. - pub fn key(&self, idx: usize) -> &K { - &self.keys_and_encoded_values[idx].0 - } - /// Returns the child's address at the given index. pub fn child(&self, idx: usize) -> Address { self.children[idx] @@ -251,28 +309,41 @@ impl Node { } /// Inserts a new entry at the specified index. - pub fn insert_entry(&mut self, idx: usize, (key, encoded_value): Entry) { + pub fn insert_entry(&mut self, idx: usize, (key, value): Entry) { self.keys_and_encoded_values - .insert(idx, (key, Value::by_value(encoded_value))); + .insert(idx, (LazyKey::by_value(key), LazyValue::by_value(value))); + // let keys: Vec<_> = self + // .keys_and_encoded_values + // .iter() + // .map(|(key, _)| format!("{key:?}")) + // .collect(); + //println!("ABC insert_entry: {:?}", keys); } /// Returns the entry at the specified index while consuming this node. pub fn into_entry(mut self, idx: usize, memory: &M) -> Entry { let keys_and_encoded_values = core::mem::take(&mut self.keys_and_encoded_values); let (key, value) = keys_and_encoded_values.into_iter().nth(idx).unwrap(); - (key, self.extract_value(value, memory)) + ( + self.extract_key(key, memory), + self.extract_value(value, memory), + ) } /// Removes the entry at the specified index. pub fn remove_entry(&mut self, idx: usize, memory: &M) -> Entry { let (key, value) = self.keys_and_encoded_values.remove(idx); - (key, self.extract_value(value, memory)) + //println!("ABC remove_entry: {:?}", key); + ( + self.extract_key(key, memory), + self.extract_value(value, memory), + ) } /// Adds a new entry at the back of the node. - pub fn push_entry(&mut self, (key, encoded_value): Entry) { + pub fn push_entry(&mut self, (key, value): Entry) { self.keys_and_encoded_values - .push((key, Value::by_value(encoded_value))); + .push((LazyKey::by_value(key), LazyValue::by_value(value))); } /// Removes an entry from the back of the node. @@ -282,12 +353,15 @@ impl Node { return None; } - let (key, last_value) = self + let (key, value) = self .keys_and_encoded_values .pop() .expect("node must not be empty"); - Some((key, self.extract_value(last_value, memory))) + Some(( + self.extract_key(key, memory), + self.extract_value(value, memory), + )) } /// Merges the entries and children of the `source` node into self, along with the median entry. @@ -307,19 +381,32 @@ impl Node { median: Entry, allocator: &mut Allocator, ) { - // Load all the values from the source node first, as they will be moved out. + // let self_keys: Vec<_> = self + // .keys_and_encoded_values + // .iter() + // .map(|(k, _)| format!("{k:?}")) + // .collect(); + + // let source_keys: Vec<_> = source + // .keys_and_encoded_values + // .iter() + // .map(|(k, _)| format!("{k:?}\n")) + // .collect(); + //println!("ABC merge\n self : {self_keys:?}\n source : {source_keys:?} \n"); + + // Load all the entries from the source node first, as they will be moved out. for i in 0..source.entries_len() { - source.value(i, allocator.memory()); + let _e = source.entry(i, allocator.memory()); } - if source.key(0) > self.key(0) { + if source.key(0, allocator.memory()) > self.key(0, allocator.memory()) { // The source node has keys that are greater than self. // Append the source node into self. - Self::append(self, &mut source, median); + Self::append(self, &mut source, median, allocator.memory()); } else { // self has keys that are greater than the source node. // Append self into the source node (which more efficient). - Self::append(&mut source, self, median); + Self::append(&mut source, self, median, allocator.memory()); // Move the entries and children into self. self.keys_and_encoded_values = core::mem::take(&mut source.keys_and_encoded_values); @@ -340,14 +427,14 @@ impl Node { /// /// POSTCONDITION: /// * `b` is empty. - fn append(a: &mut Node, b: &mut Node, median: Entry) { + fn append(a: &mut Node, b: &mut Node, median: Entry, memory: &M) { // Assert preconditions. let a_len = a.entries_len(); assert_eq!(a.node_type(), b.node_type()); assert!(b.entries_len() > 0); assert!(a_len > 0); - assert!(a.key(a_len - 1) < &median.0); - assert!(&median.0 < b.key(0)); + assert!(a.key(a_len - 1, memory) < &median.0); + assert!(&median.0 < b.key(0, memory)); a.push_entry(median); @@ -364,18 +451,15 @@ impl Node { #[cfg(test)] pub fn entries(&self, memory: &M) -> Vec> { - self.keys_and_encoded_values - .iter() - .enumerate() - .map(|(idx, (key, _))| (key.clone(), self.value(idx, memory).to_vec())) + (0..self.keys_and_encoded_values.len()) + .map(|i| (self.key(i, memory).clone(), self.value(i, memory).to_vec())) .collect() } #[cfg(test)] - pub fn keys(&self) -> Vec { - self.keys_and_encoded_values - .iter() - .map(|(key, _)| key.clone()) + pub fn keys(&self, memory: &M) -> Vec { + (0..self.keys_and_encoded_values.len()) + .map(|i| self.key(i, memory).clone()) .collect() } @@ -395,9 +479,26 @@ impl Node { /// of the matching key. If the value is not found then `Result::Err` is /// returned, containing the index where a matching key could be inserted /// while maintaining sorted order. - pub fn search(&self, key: &K) -> Result { - self.keys_and_encoded_values - .binary_search_by_key(&key, |entry| &entry.0) + pub fn search(&self, key: &K, memory: &M) -> Result { + // let self_keys: Vec<_> = self + // .keys_and_encoded_values + // .iter() + // .map(|(k, _)| format!("{k:?}")) + // .collect(); + // println!("\nABC search BEFORE: {self_keys:?}"); + + let result = self + .keys_and_encoded_values + .binary_search_by_key(&key, |entry| self.get_key(entry, memory)); + + // let self_keys: Vec<_> = self + // .keys_and_encoded_values + // .iter() + // .map(|(k, _)| format!("{k:?}")) + // .collect(); + //println!("ABC search AFTER : {self_keys:?}"); + + result } /// Returns the maximum size a node can be if it has bounded keys and values. @@ -422,9 +523,9 @@ impl Node { pub fn split(&mut self, sibling: &mut Node, memory: &M) -> Entry { debug_assert!(self.is_full()); - // Load the values that will be moved out of the node and into the new sibling. + // Load the entries that will be moved out of the node and into the new sibling. for idx in B..self.entries_len() { - self.value(idx, memory); + let _e = self.entry(idx, memory); } // Move the entries and children above the median into the new sibling. @@ -463,53 +564,134 @@ impl NodeHeader { } } -/// The value in a K/V pair. +struct LazyKey(LazyObject); + +impl LazyKey { + /// Create a lazy key with a memory offset. + #[inline] + pub fn by_ref(offset: Bytes) -> Self { + Self(LazyObject::by_ref(offset)) + } + + /// Create a lazy key from a key. + #[inline] + pub fn by_value(key: K) -> Self { + Self(LazyObject::by_value(key)) + } + + /// Returns a reference to the key, loading it if necessary. + #[inline] + pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> K) -> &K { + self.0.get_or_load(load) + } + + /// Consumes self and returns the key, loading it if necessary. + #[inline] + pub fn take_or_load(self, load: impl FnOnce(Bytes) -> K) -> K { + self.0.take_or_load(load) + } +} + +impl std::fmt::Debug for LazyKey { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match &self.0 { + LazyObject::ByVal(ref key) => { + let bytes = key.to_bytes_checked(); + f.debug_tuple("LazyKey") + .field(&format_args!("LazyKey::ByVal({:?})", bytes)) + .finish() + } + LazyObject::ByRef { offset, loaded } => match loaded.get() { + Some(key) => { + let bytes = key.to_bytes_checked(); + f.debug_tuple("LazyKey") + .field(&format_args!("LazyKey::ByRef(loaded:{:?})", bytes)) + .finish() + } + None => f + .debug_tuple("LazyKey") + .field(&format_args!("LazyKey::ByRef(offset: {:?})", offset)) + .finish(), + }, + } + } +} + +type Blob = Vec; + +#[derive(Debug)] +struct LazyValue(LazyObject); + +impl LazyValue { + /// Create a lazy value with a memory offset. + #[inline] + pub fn by_ref(offset: Bytes) -> Self { + Self(LazyObject::by_ref(offset)) + } + + /// Create a lazy value from a value. + #[inline] + pub fn by_value(value: Blob) -> Self { + Self(LazyObject::by_value(value)) + } + + /// Returns a reference to the key, loading it if necessary. + #[inline] + pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> Blob) -> &Blob { + self.0.get_or_load(load) + } + + /// Consumes self and returns the key, loading it if necessary. + #[inline] + pub fn take_or_load(self, load: impl FnOnce(Bytes) -> Blob) -> Blob { + self.0.take_or_load(load) + } +} + +/// A lazy-loaded object. #[derive(Debug)] -enum Value { - /// The value's encoded bytes. - ByVal(Vec), +enum LazyObject { + /// Object stored by value. + ByVal(T), + /// Object stored by reference, loaded on demand. ByRef { - /// The value's offset in the node. + /// Memory offset of the object. offset: Bytes, - /// The lazily loaded encoded bytes. - loaded_value: OnceCell>, + /// Cache for the lazily loaded object. + loaded: OnceCell, }, } -impl Value { +impl LazyObject { + /// Create a lazy object with a memory offset. pub fn by_ref(offset: Bytes) -> Self { Self::ByRef { offset, - loaded_value: Default::default(), + loaded: Default::default(), } } - pub fn by_value(value: Vec) -> Self { + /// Create a lazy object from a value. + pub fn by_value(value: T) -> Self { Self::ByVal(value) } - /// Returns a reference to the value if the value has been loaded or runs the given function to - /// load the value. - pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> Vec) -> &[u8] { + /// Get a reference to the object, loading it if necessary. + pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> T) -> &T { match self { - Value::ByVal(v) => &v[..], - Value::ByRef { - offset, - loaded_value: value, - } => value.get_or_init(|| load(*offset)), + LazyObject::ByVal(v) => v, + LazyObject::ByRef { offset, loaded } => loaded.get_or_init(|| load(*offset)), } } - /// Extracts the value while consuming self if the value has been loaded or runs the given - /// function to load the value. - pub fn take_or_load(self, load: impl FnOnce(Bytes) -> Vec) -> Vec { + /// Consume self and return the object, loading it if necessary. + pub fn take_or_load(self, load: impl FnOnce(Bytes) -> T) -> T { match self { - Value::ByVal(v) => v, - Value::ByRef { - offset, - loaded_value: value, - } => value.into_inner().unwrap_or_else(|| load(offset)), + LazyObject::ByVal(v) => v, + LazyObject::ByRef { offset, loaded } => { + loaded.into_inner().unwrap_or_else(|| load(offset)) + } } } } diff --git a/src/btreemap/node/v1.rs b/src/btreemap/node/v1.rs index 2dc02857..ddaf20aa 100644 --- a/src/btreemap/node/v1.rs +++ b/src/btreemap/node/v1.rs @@ -15,9 +15,13 @@ //! ---------------------------------------- //! # Entries (k) ↕ 2 bytes //! ---------------------------------------- <-- Entries (upto `CAPACITY` entries) -//! Key(0) +//! Key(0) size ↕ 4 bytes //! ---------------------------------------- -//! Value(0) +//! Key(0) ↕ `max_key_size` bytes +//! ---------------------------------------- +//! Value(0) size ↕ 4 bytes +//! ---------------------------------------- +//! Value(0) ↕ `max_value_size` bytes //! ---------------------------------------- //! Key(1) size ↕ 4 bytes //! ---------------------------------------- @@ -59,26 +63,37 @@ impl Node { max_value_size: u32, memory: &M, ) -> Self { - #[cfg(feature = "canbench")] - let _p = canbench::profile("node_load_v1"); - // Load the entries. let mut keys_encoded_values = Vec::with_capacity(header.num_entries as usize); let mut offset = NodeHeader::size(); - let mut buf = vec![]; + //const LOAD_SIZE_THRESHOLD: u32 = 8; + //let mut buf = vec![]; for _ in 0..header.num_entries { - // Read the key's size. - let key_size = read_u32(memory, address + offset); + let key_offset = offset; + //let key_size = read_u32(memory, address + offset); offset += U32_SIZE; - - // Read the key. - read_to_vec(memory, address + offset, &mut buf, key_size as usize); + // let key = if key_size <= LOAD_SIZE_THRESHOLD { + // read_to_vec(memory, address + offset, &mut buf, key_size as usize); + // LazyKey::by_value(K::from_bytes(Cow::Borrowed(&buf))) + // } else { + // LazyKey::by_ref(key_offset) + // }; + let key = LazyKey::by_ref(key_offset); offset += Bytes::from(max_key_size); - let key = K::from_bytes(Cow::Borrowed(&buf)); - // Values are loaded lazily. Store a reference and skip loading it. - keys_encoded_values.push((key, Value::by_ref(offset))); - offset += U32_SIZE + Bytes::from(max_value_size); + let value_offset = offset; + // let value_size = read_u32(memory, address + offset); + offset += U32_SIZE; + // let value = if value_size <= LOAD_SIZE_THRESHOLD { + // read_to_vec(memory, address + offset, &mut buf, value_size as usize); + // LazyValue::by_value(buf.to_vec()) + // } else { + // LazyValue::by_ref(value_offset) + // }; + let value = LazyValue::by_ref(value_offset); + offset += Bytes::from(max_value_size); + + keys_encoded_values.push((key, value)); } // Load children if this is an internal node. @@ -113,9 +128,6 @@ impl Node { } pub(super) fn save_v1(&self, memory: &M) { - #[cfg(feature = "canbench")] - let _p = canbench::profile("node_save_v1"); - match self.node_type { NodeType::Leaf => { assert!(self.children.is_empty()); @@ -129,10 +141,17 @@ impl Node { assert!(!self.keys_and_encoded_values.is_empty() || !self.children.is_empty()); // Assert entries are sorted in strictly increasing order. + + // TODO: remove debug code. + // let entries: Vec<_> = (0..self.entries_len()) + // .map(|i| (i, self.key(i, memory).to_bytes(), self.value(i, memory))) + // .collect(); + //println!("ABC: entries: {:?}", entries); + assert!(self .keys_and_encoded_values .windows(2) - .all(|e| e[0].0 < e[1].0)); + .all(|arr| self.get_key(&arr[0], memory) < self.get_key(&arr[1], memory))); let (max_key_size, max_value_size) = match self.version { Version::V1(DerivedPageSize { @@ -156,16 +175,16 @@ impl Node { let mut offset = NodeHeader::size(); - // Load all the values. This is necessary so that we don't overwrite referenced - // values when writing the entries to the node. + // Load all the entries. This is necessary so that we don't overwrite referenced + // entries when writing the entries to the node. for i in 0..self.keys_and_encoded_values.len() { - self.value(i, memory); + self.entry(i, memory); } // Write the entries. - for (idx, (key, _)) in self.keys_and_encoded_values.iter().enumerate() { + for i in 0..self.keys_and_encoded_values.len() { // Write the size of the key. - let key_bytes = key.to_bytes_checked(); + let key_bytes = self.key(i, memory).to_bytes_checked(); write_u32(memory, self.address + offset, key_bytes.len() as u32); offset += U32_SIZE; @@ -174,7 +193,7 @@ impl Node { offset += Bytes::from(max_key_size); // Write the size of the value. - let value = self.value(idx, memory); + let value = self.value(i, memory); write_u32(memory, self.address + offset, value.len() as u32); offset += U32_SIZE; diff --git a/src/btreemap/node/v2.rs b/src/btreemap/node/v2.rs index f559d777..c6a0555b 100644 --- a/src/btreemap/node/v2.rs +++ b/src/btreemap/node/v2.rs @@ -111,9 +111,6 @@ impl Node { header: NodeHeader, memory: &M, ) -> Self { - #[cfg(feature = "canbench")] - let _p = canbench::profile("node_load_v2"); - // Load the node, including any overflows, into a buffer. let overflows = read_overflows(address, memory); @@ -151,32 +148,49 @@ impl Node { // Load the keys. let mut keys_encoded_values = Vec::with_capacity(num_entries); - let mut buf = vec![]; + //const LOAD_SIZE_THRESHOLD: u32 = 8; + //let mut buf = vec![]; for _ in 0..num_entries { - // Load the key's size. + let key_offset = Bytes::from(offset.get()); + + // Advance offset by the key_size type size if applicable. let key_size = if K::BOUND.is_fixed_size() { // Key is fixed in size. The size of the key is always its max size. K::BOUND.max_size() } else { // Key is not fixed in size. Read the size from memory. - let value = read_u32(&reader, offset); + let key_size = read_u32(&reader, offset); + //println!("ABC read key_size: {:?}", key_size); offset += U32_SIZE; - value + key_size }; - - // Load the key. - read_to_vec(&reader, offset, &mut buf, key_size as usize); - let key = K::from_bytes(Cow::Borrowed(&buf)); + // let key = if key_size <= LOAD_SIZE_THRESHOLD { + // read_to_vec(&reader, offset, &mut buf, key_size as usize); + // LazyKey::by_value(K::from_bytes(Cow::Borrowed(&buf))) + // } else { + // LazyKey::by_ref(key_offset) + // }; + let key = LazyKey::by_ref(key_offset); + + // Advance offset by the size of the key. offset += Bytes::from(key_size); - keys_encoded_values.push((key, Value::by_ref(Bytes::from(0usize)))); + + keys_encoded_values.push((key, LazyValue::by_ref(Bytes::from(0usize)))); } // Load the values for (_key, value) in keys_encoded_values.iter_mut() { - // Load the values lazily. - *value = Value::by_ref(Bytes::from(offset.get())); - let value_size = read_u32(&reader, offset) as usize; - offset += U32_SIZE + Bytes::from(value_size as u64); + let value_offset = Bytes::from(offset.get()); + let value_size = read_u32(&reader, offset); + offset += U32_SIZE; + // *value = if value_size <= LOAD_SIZE_THRESHOLD { + // read_to_vec(&reader, offset, &mut buf, value_size as usize); + // LazyValue::by_value(buf.to_vec()) + // } else { + // LazyValue::by_ref(value_offset) + // }; + *value = LazyValue::by_ref(value_offset); + offset += Bytes::from(value_size as u64); } Self { @@ -191,17 +205,14 @@ impl Node { // Saves the node to memory. pub(super) fn save_v2(&mut self, allocator: &mut Allocator) { - #[cfg(feature = "canbench")] - let _p = canbench::profile("node_save_v2"); - let page_size = self.version.page_size().get(); assert!(page_size >= MINIMUM_PAGE_SIZE); - // Load all the values. This is necessary so that we don't overwrite referenced - // values when writing the entries to the node. - for i in 0..self.keys_and_encoded_values.len() { - self.value(i, allocator.memory()); - } + // Load all the entry. This is necessary so that we don't overwrite referenced + // entry when writing the entries to the node. + let entries: Vec<_> = (0..self.keys_and_encoded_values.len()) + .map(|i| self.entry(i, allocator.memory())) + .collect(); // Initialize a NodeWriter. The NodeWriter takes care of allocating/deallocating // overflow pages as needed. @@ -239,9 +250,8 @@ impl Node { } // Write the keys. - for (key, _) in self.keys_and_encoded_values.iter() { + for (key, _) in &entries { let key_bytes = key.to_bytes_checked(); - // Write the size of the key if it isn't fixed in size. if !K::BOUND.is_fixed_size() { writer.write_u32(offset, key_bytes.len() as u32); @@ -254,9 +264,8 @@ impl Node { } // Write the values. - for idx in 0..self.entries_len() { + for (_, value) in &entries { // Write the size of the value. - let value = self.value(idx, writer.memory()); writer.write_u32(offset, value.len() as u32); offset += U32_SIZE; From 617b4b296995f23febbfc61a27416e714534cad2 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Wed, 23 Apr 2025 20:41:19 +0200 Subject: [PATCH 31/68] add parse_benchmarks.py --- parse_benchmarks.py | 237 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 237 insertions(+) create mode 100755 parse_benchmarks.py diff --git a/parse_benchmarks.py b/parse_benchmarks.py new file mode 100755 index 00000000..a3ebe838 --- /dev/null +++ b/parse_benchmarks.py @@ -0,0 +1,237 @@ +#!/usr/bin/env python3 +import re +import sys +import csv +import logging +from itertools import product + +CHANGE_RE = re.compile(r'^(improved|regressed)\s+by\s+([\d.]+)%\s*$', re.IGNORECASE) +def parse_change(text): + m = CHANGE_RE.match(text or '') + if not m: + return 0.0 + direction, fraction = m.group(1).lower(), float(m.group(2)) / 100.0 + return -fraction if direction == 'improved' else fraction + + +METRIC_RE = re.compile( + r'^\s*(?P[^:]+):\s*' + r'(?P[\d.]+)\s*(?P\w+)' + r'(?:\s*\((?P[^)]+)\))?' +) +def parse_metric(line): + m = METRIC_RE.match(line) + if m: + change = m.group('change') + #print(change) + return ( + m.group('name').strip(), + float(m.group('value')), + m.group('unit'), + parse_change(change) + ) + + +BENCHMARK_RE = re.compile(r'^\s*Benchmark:\s+(?P.+?)(\s*\(new\))?\s*$') +UNIT_MULTIPLIERS = {'K': 10**3, 'M': 10**6, 'B': 10**9} +METRICS = { + 'instructions': ('instructions', UNIT_MULTIPLIERS), + 'heap_increase': ('heap_increase', 1), + 'stable_memory_increase': ('stable_memory_increase', 1), +} +def parse_bench_blocks(lines): + benchmarks = [] + current = None + + for line in lines: + bm = BENCHMARK_RE.match(line) + if bm: + if current: + benchmarks.append(current) + current = {'name': bm.group('name').strip()} + continue + + if not current: + continue + + parsed = parse_metric(line) + if not parsed: + continue + + name, val, unit, change = parsed + info = METRICS.get(name) + if not info: + continue + + field, mult = info + factor = mult.get(unit, 1) if isinstance(mult, dict) else mult + value = int(val * factor) + + if value: + current[field] = {'value': value, 'change': change} + + if current: + benchmarks.append(current) + return benchmarks + +BENCH_PREFIX_RE = re.compile( + r'btreemap_v(?P\d+)' + r'(?P_mem_manager)*' + r'_(?P\w+)' +) +FUNCTIONS = [ + 'insert', 'remove', 'get', 'contains', 'scan', 'pop_first', 'pop_last' +] +_FUNCS_PATTERN = "|".join(map(re.escape, FUNCTIONS)) +BENCH_FUNC_RE = re.compile( + rf"(?P{_FUNCS_PATTERN})_(?P\w+)?" +) +BENCH_TYPE_KEY_VALUE_RE = re.compile( + r'(?Pblob|vec)' + r'_(?P\d+)' + r'_(?P\d+)' +) +BENCH_TYPES_A_B_RE = re.compile( + r'(?Pu\d+|blob\d+|vec\d+)' + r'_(?Pu\d+|blob\d+|vec\d+)' +) + + +def parse_bench_by_name(bench): + m = BENCH_PREFIX_RE.match(bench['name']) + if m: + data = { + 'name': bench['name'], + 'version': int(m.group('version')), + 'mem_manager': len(m.group('mem_manager') or '') > 0, + 'instructions': bench['instructions']['value'], + 'instructions_change': bench['instructions']['change'], + } + + m = BENCH_FUNC_RE.match(m.group('remaining')) + if m: + data['func'] = m.group('func') + + remaining = m.group('remaining') + m = BENCH_TYPE_KEY_VALUE_RE.match(remaining) + if m: + data.update({ + 'schema': 'type-key-value', + 'type': m.group('type'), + 'key_size': int(m.group('k_size')), + 'value_size': int(m.group('v_size')), + }) + return data + + m = BENCH_TYPES_A_B_RE.match(remaining) + if m: + data.update({ + 'schema': 'types-a-b', + 'type_a': m.group('type_a'), + 'type_b': m.group('type_b'), + }) + return data + + +def load_benchmarks(path, verbose=False, logger=None): + logger = logger or logging.getLogger(__name__) + out = [] + with open(path) as f: + for block in parse_bench_blocks(f): + parsed = parse_bench_by_name(block) + if parsed: + out.append(parsed) + if verbose: + logger.info(f"Parsed: {parsed}") + elif verbose: + logger.warning(f"Failed to parse: {block['name'].strip()!r}") + return out + + +def save_all_tables(tables, sizes, filename, scientific=False, sci_fmt="{:.2e}"): + fmt_instr = lambda v: "" if v is None else (sci_fmt.format(v) if scientific else str(v)) + fmt_change = lambda v: "" if v is None else '{:.1f}%'.format(v * 100.0) + + with open(filename, 'w', newline='') as f: + writer = csv.writer(f, delimiter='\t') + for tbl in tables: + writer.writerow([tbl['name']]) + writer.writerow([''] + sizes + [''] + sizes) + instr, change = tbl['instructions'], tbl['instructions_change'] + for r in sizes: + writer.writerow( + [r] + + [fmt_instr(instr[r][c]) for c in sizes] + + [''] + + [fmt_change(change[r][c]) for c in sizes] + ) + writer.writerow([]) + + +def main(): + if len(sys.argv) != 2: + print(f"Usage: {sys.argv[0]} ") + sys.exit(1) + + logging.basicConfig(level=logging.ERROR, format="%(levelname)s: %(message)s") + logger = logging.getLogger(__name__) + benchmarks = load_benchmarks(sys.argv[1], verbose=True, logger=logger) + + used = set() + all_tables = [] + for version, func, type_ in product( + [2, 1], + FUNCTIONS, + ['blob', 'vec'], + ): + size_grid = [4, 8, 16, 32, 64, 128, 256, 512, 1024] + name = f'btreemap_v{version}_{func}_{type_}' + table = { + 'name': name, + 'columns': 'key_size', + 'rows': 'value_size', + 'instructions': {r: {c: None for c in size_grid} for r in size_grid}, + 'instructions_change': {r: {c: None for c in size_grid} for r in size_grid} + } + for key_size in size_grid: + for value_size in size_grid: + filters = { + 'version': version, + 'mem_manager': False, + 'func': func, + 'schema': 'type-key-value', + 'type': type_, + 'key_size': key_size, + 'value_size': value_size, + } + selected = [ + b for b in benchmarks + if all(b.get(k) == v for k, v in filters.items()) + ] + if len(selected) == 0: + continue + if len(selected) > 1: + logger.error(f"Multiple matches for {filters}: {selected}") + continue + data = selected[0] if selected else None + table['instructions'][value_size][key_size] = data['instructions'] if data else None + table['instructions_change'][value_size][key_size] = data['instructions_change'] if data else None + used.add(data['name']) if data else None + + has_any = any( + cell is not None + for row in table['instructions'].values() + for cell in row.values() + ) + if has_any: + all_tables.append(table) + + for bench in benchmarks: + if bench['name'] not in used: + logger.warning(f"Unused benchmark: {bench['name']}") + + save_all_tables(all_tables, size_grid, './tmp/all_benchmarks.csv', scientific=True) + + +if __name__ == '__main__': + main() From 5257c29072b041b590224672103e05a8991ee274 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Thu, 24 Apr 2025 10:09:44 +0200 Subject: [PATCH 32/68] add key 32 --- benchmarks/src/btreemap.rs | 198 +++++++++++++++++++++++++++++++++++++ parse_benchmarks.py | 6 +- 2 files changed, 201 insertions(+), 3 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index e59941b7..34faecaf 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -71,6 +71,16 @@ fn generate_random_blocks(count: usize, block_size: usize, rng: &mut Rng) -> Vec bench_tests! { // === V1 === + // V1 blob K x 32 + btreemap_v1_insert_blob_4_32, insert_helper_v1, Blob4, Blob32; + btreemap_v1_insert_blob_8_32, insert_helper_v1, Blob8, Blob32; + btreemap_v1_insert_blob_16_32, insert_helper_v1, Blob16, Blob32; + btreemap_v1_insert_blob_32_32, insert_helper_v1, Blob32, Blob32; + btreemap_v1_insert_blob_64_32, insert_helper_v1, Blob64, Blob32; + btreemap_v1_insert_blob_128_32, insert_helper_v1, Blob128, Blob32; + btreemap_v1_insert_blob_256_32, insert_helper_v1, Blob256, Blob32; + btreemap_v1_insert_blob_512_32, insert_helper_v1, Blob512, Blob32; + // V1 blob K x 1024 btreemap_v1_insert_blob_4_1024, insert_helper_v1, Blob4, Blob1024; btreemap_v1_insert_blob_8_1024, insert_helper_v1, Blob8, Blob1024; @@ -90,6 +100,7 @@ bench_tests! { btreemap_v1_insert_blob_1024_128, insert_helper_v1, Blob1024, Blob128; btreemap_v1_insert_blob_1024_256, insert_helper_v1, Blob1024, Blob256; btreemap_v1_insert_blob_1024_512, insert_helper_v1, Blob1024, Blob512; + btreemap_v1_insert_blob_1024_1024, insert_helper_v1, Blob1024, Blob1024; // V1 u64 / blob8 btreemap_v1_insert_u64_u64, insert_helper_v1, u64, u64; @@ -98,6 +109,16 @@ bench_tests! { // === V2 === + // V2 blob K x 32 + btreemap_v2_insert_blob_4_32, insert_helper_v2, Blob4, Blob32; + btreemap_v2_insert_blob_8_32, insert_helper_v2, Blob8, Blob32; + btreemap_v2_insert_blob_16_32, insert_helper_v2, Blob16, Blob32; + btreemap_v2_insert_blob_32_32, insert_helper_v2, Blob32, Blob32; + btreemap_v2_insert_blob_64_32, insert_helper_v2, Blob64, Blob32; + btreemap_v2_insert_blob_128_32, insert_helper_v2, Blob128, Blob32; + btreemap_v2_insert_blob_256_32, insert_helper_v2, Blob256, Blob32; + btreemap_v2_insert_blob_512_32, insert_helper_v2, Blob512, Blob32; + // V2 blob K x 1024 btreemap_v2_insert_blob_4_1024, insert_helper_v2, Blob4, Blob1024; btreemap_v2_insert_blob_8_1024, insert_helper_v2, Blob8, Blob1024; @@ -117,6 +138,17 @@ bench_tests! { btreemap_v2_insert_blob_1024_128, insert_helper_v2, Blob1024, Blob128; btreemap_v2_insert_blob_1024_256, insert_helper_v2, Blob1024, Blob256; btreemap_v2_insert_blob_1024_512, insert_helper_v2, Blob1024, Blob512; + btreemap_v2_insert_blob_1024_1024, insert_helper_v2, Blob1024, Blob512; + + // V2 vec K x 32 + btreemap_v2_insert_vec_4_32, insert_helper_v2, FixedVec4, FixedVec32; + btreemap_v2_insert_vec_8_32, insert_helper_v2, FixedVec8, FixedVec32; + btreemap_v2_insert_vec_16_32, insert_helper_v2, FixedVec16, FixedVec32; + btreemap_v2_insert_vec_32_32, insert_helper_v2, FixedVec32, FixedVec32; + btreemap_v2_insert_vec_64_32, insert_helper_v2, FixedVec64, FixedVec32; + btreemap_v2_insert_vec_128_32, insert_helper_v2, FixedVec128, FixedVec32; + btreemap_v2_insert_vec_256_32, insert_helper_v2, FixedVec256, FixedVec32; + btreemap_v2_insert_vec_512_32, insert_helper_v2, FixedVec512, FixedVec32; // V2 vec K x 1024 btreemap_v2_insert_vec_4_1024, insert_helper_v2, FixedVec4, FixedVec1024; @@ -137,6 +169,7 @@ bench_tests! { btreemap_v2_insert_vec_1024_128, insert_helper_v2, FixedVec1024, FixedVec128; btreemap_v2_insert_vec_1024_256, insert_helper_v2, FixedVec1024, FixedVec256; btreemap_v2_insert_vec_1024_512, insert_helper_v2, FixedVec1024, FixedVec512; + btreemap_v2_insert_vec_1024_1024, insert_helper_v2, FixedVec1024, FixedVec1024; // V2 u64 / blob8 / vec8 btreemap_v2_insert_u64_u64, insert_helper_v2, u64, u64; @@ -201,6 +234,16 @@ pub fn btreemap_v2_insert_10mib_values() -> BenchResult { bench_tests! { // === V1 === + // V1 blob K x 32 + btreemap_v1_remove_blob_4_32, remove_helper_v1, Blob4, Blob32; + btreemap_v1_remove_blob_8_32, remove_helper_v1, Blob8, Blob32; + btreemap_v1_remove_blob_16_32, remove_helper_v1, Blob16, Blob32; + btreemap_v1_remove_blob_32_32, remove_helper_v1, Blob32, Blob32; + btreemap_v1_remove_blob_64_32, remove_helper_v1, Blob64, Blob32; + btreemap_v1_remove_blob_128_32, remove_helper_v1, Blob128, Blob32; + btreemap_v1_remove_blob_256_32, remove_helper_v1, Blob256, Blob32; + btreemap_v1_remove_blob_512_32, remove_helper_v1, Blob512, Blob32; + // V1 blob K x 1024 btreemap_v1_remove_blob_4_1024, remove_helper_v1, Blob4, Blob1024; btreemap_v1_remove_blob_8_1024, remove_helper_v1, Blob8, Blob1024; @@ -220,6 +263,7 @@ bench_tests! { btreemap_v1_remove_blob_1024_128, remove_helper_v1, Blob1024, Blob128; btreemap_v1_remove_blob_1024_256, remove_helper_v1, Blob1024, Blob256; btreemap_v1_remove_blob_1024_512, remove_helper_v1, Blob1024, Blob512; + btreemap_v1_remove_blob_1024_1024, remove_helper_v1, Blob1024, Blob1024; // V1 u64 / blob8 btreemap_v1_remove_u64_u64, remove_helper_v1, u64, u64; @@ -228,6 +272,16 @@ bench_tests! { // === V2 === + // V2 blob K x 32 + btreemap_v2_remove_blob_4_32, remove_helper_v2, Blob4, Blob32; + btreemap_v2_remove_blob_8_32, remove_helper_v2, Blob8, Blob32; + btreemap_v2_remove_blob_16_32, remove_helper_v2, Blob16, Blob32; + btreemap_v2_remove_blob_32_32, remove_helper_v2, Blob32, Blob32; + btreemap_v2_remove_blob_64_32, remove_helper_v2, Blob64, Blob32; + btreemap_v2_remove_blob_128_32, remove_helper_v2, Blob128, Blob32; + btreemap_v2_remove_blob_256_32, remove_helper_v2, Blob256, Blob32; + btreemap_v2_remove_blob_512_32, remove_helper_v2, Blob512, Blob32; + // V2 blob K x 1024 btreemap_v2_remove_blob_4_1024, remove_helper_v2, Blob4, Blob1024; btreemap_v2_remove_blob_8_1024, remove_helper_v2, Blob8, Blob1024; @@ -247,6 +301,17 @@ bench_tests! { btreemap_v2_remove_blob_1024_128, remove_helper_v2, Blob1024, Blob128; btreemap_v2_remove_blob_1024_256, remove_helper_v2, Blob1024, Blob256; btreemap_v2_remove_blob_1024_512, remove_helper_v2, Blob1024, Blob512; + btreemap_v2_remove_blob_1024_1024, remove_helper_v2, Blob1024, Blob1024; + + // V2 vec K x 32 + btreemap_v2_remove_vec_4_32, remove_helper_v2, FixedVec4, FixedVec32; + btreemap_v2_remove_vec_8_32, remove_helper_v2, FixedVec8, FixedVec32; + btreemap_v2_remove_vec_16_32, remove_helper_v2, FixedVec16, FixedVec32; + btreemap_v2_remove_vec_32_32, remove_helper_v2, FixedVec32, FixedVec32; + btreemap_v2_remove_vec_64_32, remove_helper_v2, FixedVec64, FixedVec32; + btreemap_v2_remove_vec_128_32, remove_helper_v2, FixedVec128, FixedVec32; + btreemap_v2_remove_vec_256_32, remove_helper_v2, FixedVec256, FixedVec32; + btreemap_v2_remove_vec_512_32, remove_helper_v2, FixedVec512, FixedVec32; // V2 vec K x 1024 btreemap_v2_remove_vec_4_1024, remove_helper_v2, FixedVec4, FixedVec1024; @@ -267,6 +332,7 @@ bench_tests! { btreemap_v2_remove_vec_1024_128, remove_helper_v2, FixedVec1024, FixedVec128; btreemap_v2_remove_vec_1024_256, remove_helper_v2, FixedVec1024, FixedVec256; btreemap_v2_remove_vec_1024_512, remove_helper_v2, FixedVec1024, FixedVec512; + btreemap_v2_remove_vec_1024_1024, remove_helper_v2, FixedVec1024, FixedVec1024; // V2 u64 / blob8 / vec8 btreemap_v2_remove_u64_u64, remove_helper_v2, u64, u64; @@ -338,6 +404,16 @@ pub fn btreemap_v2_remove_10mib_values() -> BenchResult { bench_tests! { // === V1 === + // V1 blob K x 32 + btreemap_v1_get_blob_4_32, get_helper_v1, Blob4, Blob32; + btreemap_v1_get_blob_8_32, get_helper_v1, Blob8, Blob32; + btreemap_v1_get_blob_16_32, get_helper_v1, Blob16, Blob32; + btreemap_v1_get_blob_32_32, get_helper_v1, Blob32, Blob32; + btreemap_v1_get_blob_64_32, get_helper_v1, Blob64, Blob32; + btreemap_v1_get_blob_128_32, get_helper_v1, Blob128, Blob32; + btreemap_v1_get_blob_256_32, get_helper_v1, Blob256, Blob32; + btreemap_v1_get_blob_512_32, get_helper_v1, Blob512, Blob32; + // V1 blob K x 1024 btreemap_v1_get_blob_4_1024, get_helper_v1, Blob4, Blob1024; btreemap_v1_get_blob_8_1024, get_helper_v1, Blob8, Blob1024; @@ -357,6 +433,7 @@ bench_tests! { btreemap_v1_get_blob_1024_128, get_helper_v1, Blob1024, Blob128; btreemap_v1_get_blob_1024_256, get_helper_v1, Blob1024, Blob256; btreemap_v1_get_blob_1024_512, get_helper_v1, Blob1024, Blob512; + btreemap_v1_get_blob_1024_1024, get_helper_v1, Blob1024, Blob1024; // V1 u64 / blob8 btreemap_v1_get_u64_u64, get_helper_v1, u64, u64; @@ -365,6 +442,16 @@ bench_tests! { // === V2 === + // V2 blob K x 32 + btreemap_v2_get_blob_4_32, get_helper_v2, Blob4, Blob32; + btreemap_v2_get_blob_8_32, get_helper_v2, Blob8, Blob32; + btreemap_v2_get_blob_16_32, get_helper_v2, Blob16, Blob32; + btreemap_v2_get_blob_32_32, get_helper_v2, Blob32, Blob32; + btreemap_v2_get_blob_64_32, get_helper_v2, Blob64, Blob32; + btreemap_v2_get_blob_128_32, get_helper_v2, Blob128, Blob32; + btreemap_v2_get_blob_256_32, get_helper_v2, Blob256, Blob32; + btreemap_v2_get_blob_512_32, get_helper_v2, Blob512, Blob32; + // V2 blob K x 1024 btreemap_v2_get_blob_4_1024, get_helper_v2, Blob4, Blob1024; btreemap_v2_get_blob_8_1024, get_helper_v2, Blob8, Blob1024; @@ -384,6 +471,17 @@ bench_tests! { btreemap_v2_get_blob_1024_128, get_helper_v2, Blob1024, Blob128; btreemap_v2_get_blob_1024_256, get_helper_v2, Blob1024, Blob256; btreemap_v2_get_blob_1024_512, get_helper_v2, Blob1024, Blob512; + btreemap_v2_get_blob_1024_1024, get_helper_v2, Blob1024, Blob1024; + + // V2 vec K x 32 + btreemap_v2_get_vec_4_32, get_helper_v2, FixedVec4, FixedVec32; + btreemap_v2_get_vec_8_32, get_helper_v2, FixedVec8, FixedVec32; + btreemap_v2_get_vec_16_32, get_helper_v2, FixedVec16, FixedVec32; + btreemap_v2_get_vec_32_32, get_helper_v2, FixedVec32, FixedVec32; + btreemap_v2_get_vec_64_32, get_helper_v2, FixedVec64, FixedVec32; + btreemap_v2_get_vec_128_32, get_helper_v2, FixedVec128, FixedVec32; + btreemap_v2_get_vec_256_32, get_helper_v2, FixedVec256, FixedVec32; + btreemap_v2_get_vec_512_32, get_helper_v2, FixedVec512, FixedVec32; // V2 vec K x 1024 btreemap_v2_get_vec_4_1024, get_helper_v2, FixedVec4, FixedVec1024; @@ -404,6 +502,7 @@ bench_tests! { btreemap_v2_get_vec_1024_128, get_helper_v2, FixedVec1024, FixedVec128; btreemap_v2_get_vec_1024_256, get_helper_v2, FixedVec1024, FixedVec256; btreemap_v2_get_vec_1024_512, get_helper_v2, FixedVec1024, FixedVec512; + btreemap_v2_get_vec_1024_1024, get_helper_v2, FixedVec1024, FixedVec1024; // V2 u64 / blob8 / vec8 btreemap_v2_get_u64_u64, get_helper_v2, u64, u64; @@ -475,6 +574,16 @@ pub fn btreemap_v2_get_10mib_values() -> BenchResult { bench_tests! { // === V1 === + // V1 blob K x 32 + btreemap_v1_contains_blob_4_32, contains_helper_v1, Blob4, Blob32; + btreemap_v1_contains_blob_8_32, contains_helper_v1, Blob8, Blob32; + btreemap_v1_contains_blob_16_32, contains_helper_v1, Blob16, Blob32; + btreemap_v1_contains_blob_32_32, contains_helper_v1, Blob32, Blob32; + btreemap_v1_contains_blob_64_32, contains_helper_v1, Blob64, Blob32; + btreemap_v1_contains_blob_128_32, contains_helper_v1, Blob128, Blob32; + btreemap_v1_contains_blob_256_32, contains_helper_v1, Blob256, Blob32; + btreemap_v1_contains_blob_512_32, contains_helper_v1, Blob512, Blob32; + // V1 blob K x 1024 btreemap_v1_contains_blob_4_1024, contains_helper_v1, Blob4, Blob1024; btreemap_v1_contains_blob_8_1024, contains_helper_v1, Blob8, Blob1024; @@ -494,6 +603,7 @@ bench_tests! { btreemap_v1_contains_blob_1024_128, contains_helper_v1, Blob1024, Blob128; btreemap_v1_contains_blob_1024_256, contains_helper_v1, Blob1024, Blob256; btreemap_v1_contains_blob_1024_512, contains_helper_v1, Blob1024, Blob512; + btreemap_v1_contains_blob_1024_1024, contains_helper_v1, Blob1024, Blob1024; // V1 u64 / blob8 btreemap_v1_contains_u64_u64, contains_helper_v1, u64, u64; @@ -502,6 +612,16 @@ bench_tests! { // === V2 === + // V2 blob K x 32 + btreemap_v2_contains_blob_4_32, contains_helper_v2, Blob4, Blob32; + btreemap_v2_contains_blob_8_32, contains_helper_v2, Blob8, Blob32; + btreemap_v2_contains_blob_16_32, contains_helper_v2, Blob16, Blob32; + btreemap_v2_contains_blob_32_32, contains_helper_v2, Blob32, Blob32; + btreemap_v2_contains_blob_64_32, contains_helper_v2, Blob64, Blob32; + btreemap_v2_contains_blob_128_32, contains_helper_v2, Blob128, Blob32; + btreemap_v2_contains_blob_256_32, contains_helper_v2, Blob256, Blob32; + btreemap_v2_contains_blob_512_32, contains_helper_v2, Blob512, Blob32; + // V2 blob K x 1024 btreemap_v2_contains_blob_4_1024, contains_helper_v2, Blob4, Blob1024; btreemap_v2_contains_blob_8_1024, contains_helper_v2, Blob8, Blob1024; @@ -521,6 +641,17 @@ bench_tests! { btreemap_v2_contains_blob_1024_128, contains_helper_v2, Blob1024, Blob128; btreemap_v2_contains_blob_1024_256, contains_helper_v2, Blob1024, Blob256; btreemap_v2_contains_blob_1024_512, contains_helper_v2, Blob1024, Blob512; + btreemap_v2_contains_blob_1024_1024, contains_helper_v2, Blob1024, Blob1024; + + // V2 vec K x 32 + btreemap_v2_contains_vec_4_32, contains_helper_v2, FixedVec4, FixedVec32; + btreemap_v2_contains_vec_8_32, contains_helper_v2, FixedVec8, FixedVec32; + btreemap_v2_contains_vec_16_32, contains_helper_v2, FixedVec16, FixedVec32; + btreemap_v2_contains_vec_32_32, contains_helper_v2, FixedVec32, FixedVec32; + btreemap_v2_contains_vec_64_32, contains_helper_v2, FixedVec64, FixedVec32; + btreemap_v2_contains_vec_128_32, contains_helper_v2, FixedVec128, FixedVec32; + btreemap_v2_contains_vec_256_32, contains_helper_v2, FixedVec256, FixedVec32; + btreemap_v2_contains_vec_512_32, contains_helper_v2, FixedVec512, FixedVec32; // V2 vec K x 1024 btreemap_v2_contains_vec_4_1024, contains_helper_v2, FixedVec4, FixedVec1024; @@ -541,6 +672,7 @@ bench_tests! { btreemap_v2_contains_vec_1024_128, contains_helper_v2, FixedVec1024, FixedVec128; btreemap_v2_contains_vec_1024_256, contains_helper_v2, FixedVec1024, FixedVec256; btreemap_v2_contains_vec_1024_512, contains_helper_v2, FixedVec1024, FixedVec512; + btreemap_v2_contains_vec_1024_1024, contains_helper_v2, FixedVec1024, FixedVec1024; // V2 u64 / blob8 / vec8 btreemap_v2_contains_u64_u64, contains_helper_v2, u64, u64; @@ -770,6 +902,16 @@ fn range_count_helper_v2(count: usize, size: usize) -> BenchResult { bench_tests! { // === V1 === + // V1 blob K x 32 + btreemap_v1_pop_first_blob_4_32, pop_first_helper_v1, Blob4, Blob32; + btreemap_v1_pop_first_blob_8_32, pop_first_helper_v1, Blob8, Blob32; + btreemap_v1_pop_first_blob_16_32, pop_first_helper_v1, Blob16, Blob32; + btreemap_v1_pop_first_blob_32_32, pop_first_helper_v1, Blob32, Blob32; + btreemap_v1_pop_first_blob_64_32, pop_first_helper_v1, Blob64, Blob32; + btreemap_v1_pop_first_blob_128_32, pop_first_helper_v1, Blob128, Blob32; + btreemap_v1_pop_first_blob_256_32, pop_first_helper_v1, Blob256, Blob32; + btreemap_v1_pop_first_blob_512_32, pop_first_helper_v1, Blob512, Blob32; + // V1 blob K x 1024 btreemap_v1_pop_first_blob_4_1024, pop_first_helper_v1, Blob4, Blob1024; btreemap_v1_pop_first_blob_8_1024, pop_first_helper_v1, Blob8, Blob1024; @@ -789,6 +931,7 @@ bench_tests! { btreemap_v1_pop_first_blob_1024_128, pop_first_helper_v1, Blob1024, Blob128; btreemap_v1_pop_first_blob_1024_256, pop_first_helper_v1, Blob1024, Blob256; btreemap_v1_pop_first_blob_1024_512, pop_first_helper_v1, Blob1024, Blob512; + btreemap_v1_pop_first_blob_1024_1024, pop_first_helper_v1, Blob1024, Blob1024; // V1 u64 / blob8 btreemap_v1_pop_first_u64_u64, pop_first_helper_v1, u64, u64; @@ -797,6 +940,16 @@ bench_tests! { // === V2 === + // V2 blob K x 32 + btreemap_v2_pop_first_blob_4_32, pop_first_helper_v2, Blob4, Blob32; + btreemap_v2_pop_first_blob_8_32, pop_first_helper_v2, Blob8, Blob32; + btreemap_v2_pop_first_blob_16_32, pop_first_helper_v2, Blob16, Blob32; + btreemap_v2_pop_first_blob_32_32, pop_first_helper_v2, Blob32, Blob32; + btreemap_v2_pop_first_blob_64_32, pop_first_helper_v2, Blob64, Blob32; + btreemap_v2_pop_first_blob_128_32, pop_first_helper_v2, Blob128, Blob32; + btreemap_v2_pop_first_blob_256_32, pop_first_helper_v2, Blob256, Blob32; + btreemap_v2_pop_first_blob_512_32, pop_first_helper_v2, Blob512, Blob32; + // V2 blob K x 1024 btreemap_v2_pop_first_blob_4_1024, pop_first_helper_v2, Blob4, Blob1024; btreemap_v2_pop_first_blob_8_1024, pop_first_helper_v2, Blob8, Blob1024; @@ -816,6 +969,17 @@ bench_tests! { btreemap_v2_pop_first_blob_1024_128, pop_first_helper_v2, Blob1024, Blob128; btreemap_v2_pop_first_blob_1024_256, pop_first_helper_v2, Blob1024, Blob256; btreemap_v2_pop_first_blob_1024_512, pop_first_helper_v2, Blob1024, Blob512; + btreemap_v2_pop_first_blob_1024_1024, pop_first_helper_v2, Blob1024, Blob1024; + + // V2 vec K x 32 + btreemap_v2_pop_first_vec_4_32, pop_first_helper_v2, FixedVec4, FixedVec32; + btreemap_v2_pop_first_vec_8_32, pop_first_helper_v2, FixedVec8, FixedVec32; + btreemap_v2_pop_first_vec_16_32, pop_first_helper_v2, FixedVec16, FixedVec32; + btreemap_v2_pop_first_vec_32_32, pop_first_helper_v2, FixedVec32, FixedVec32; + btreemap_v2_pop_first_vec_64_32, pop_first_helper_v2, FixedVec64, FixedVec32; + btreemap_v2_pop_first_vec_128_32, pop_first_helper_v2, FixedVec128, FixedVec32; + btreemap_v2_pop_first_vec_256_32, pop_first_helper_v2, FixedVec256, FixedVec32; + btreemap_v2_pop_first_vec_512_32, pop_first_helper_v2, FixedVec512, FixedVec32; // V2 vec K x 1024 btreemap_v2_pop_first_vec_4_1024, pop_first_helper_v2, FixedVec4, FixedVec1024; @@ -836,6 +1000,7 @@ bench_tests! { btreemap_v2_pop_first_vec_1024_128, pop_first_helper_v2, FixedVec1024, FixedVec128; btreemap_v2_pop_first_vec_1024_256, pop_first_helper_v2, FixedVec1024, FixedVec256; btreemap_v2_pop_first_vec_1024_512, pop_first_helper_v2, FixedVec1024, FixedVec512; + btreemap_v2_pop_first_vec_1024_1024, pop_first_helper_v2, FixedVec1024, FixedVec1024; // V2 u64 / blob8 / vec8 btreemap_v2_pop_first_u64_u64, pop_first_helper_v2, u64, u64; @@ -849,6 +1014,16 @@ bench_tests! { bench_tests! { // === V1 === + // V1 blob K x 32 + btreemap_v1_pop_last_blob_4_32, pop_last_helper_v1, Blob4, Blob32; + btreemap_v1_pop_last_blob_8_32, pop_last_helper_v1, Blob8, Blob32; + btreemap_v1_pop_last_blob_16_32, pop_last_helper_v1, Blob16, Blob32; + btreemap_v1_pop_last_blob_32_32, pop_last_helper_v1, Blob32, Blob32; + btreemap_v1_pop_last_blob_64_32, pop_last_helper_v1, Blob64, Blob32; + btreemap_v1_pop_last_blob_128_32, pop_last_helper_v1, Blob128, Blob32; + btreemap_v1_pop_last_blob_256_32, pop_last_helper_v1, Blob256, Blob32; + btreemap_v1_pop_last_blob_512_32, pop_last_helper_v1, Blob512, Blob32; + // V1 blob K x 1024 btreemap_v1_pop_last_blob_4_1024, pop_last_helper_v1, Blob4, Blob1024; btreemap_v1_pop_last_blob_8_1024, pop_last_helper_v1, Blob8, Blob1024; @@ -868,6 +1043,7 @@ bench_tests! { btreemap_v1_pop_last_blob_1024_128, pop_last_helper_v1, Blob1024, Blob128; btreemap_v1_pop_last_blob_1024_256, pop_last_helper_v1, Blob1024, Blob256; btreemap_v1_pop_last_blob_1024_512, pop_last_helper_v1, Blob1024, Blob512; + btreemap_v1_pop_last_blob_1024_1024, pop_last_helper_v1, Blob1024, Blob1024; // V1 u64 / blob8 btreemap_v1_pop_last_u64_u64, pop_last_helper_v1, u64, u64; @@ -876,6 +1052,16 @@ bench_tests! { // === V2 === + // V2 blob K x 32 + btreemap_v2_pop_last_blob_4_32, pop_last_helper_v2, Blob4, Blob32; + btreemap_v2_pop_last_blob_8_32, pop_last_helper_v2, Blob8, Blob32; + btreemap_v2_pop_last_blob_16_32, pop_last_helper_v2, Blob16, Blob32; + btreemap_v2_pop_last_blob_32_32, pop_last_helper_v2, Blob32, Blob32; + btreemap_v2_pop_last_blob_64_32, pop_last_helper_v2, Blob64, Blob32; + btreemap_v2_pop_last_blob_128_32, pop_last_helper_v2, Blob128, Blob32; + btreemap_v2_pop_last_blob_256_32, pop_last_helper_v2, Blob256, Blob32; + btreemap_v2_pop_last_blob_512_32, pop_last_helper_v2, Blob512, Blob32; + // V2 blob K x 1024 btreemap_v2_pop_last_blob_4_1024, pop_last_helper_v2, Blob4, Blob1024; btreemap_v2_pop_last_blob_8_1024, pop_last_helper_v2, Blob8, Blob1024; @@ -895,6 +1081,17 @@ bench_tests! { btreemap_v2_pop_last_blob_1024_128, pop_last_helper_v2, Blob1024, Blob128; btreemap_v2_pop_last_blob_1024_256, pop_last_helper_v2, Blob1024, Blob256; btreemap_v2_pop_last_blob_1024_512, pop_last_helper_v2, Blob1024, Blob512; + btreemap_v2_pop_last_blob_1024_1024, pop_last_helper_v2, Blob1024, Blob1024; + + // V2 vec K x 32 + btreemap_v2_pop_last_vec_4_32, pop_last_helper_v2, FixedVec4, FixedVec32; + btreemap_v2_pop_last_vec_8_32, pop_last_helper_v2, FixedVec8, FixedVec32; + btreemap_v2_pop_last_vec_16_32, pop_last_helper_v2, FixedVec16, FixedVec32; + btreemap_v2_pop_last_vec_32_32, pop_last_helper_v2, FixedVec32, FixedVec32; + btreemap_v2_pop_last_vec_64_32, pop_last_helper_v2, FixedVec64, FixedVec32; + btreemap_v2_pop_last_vec_128_32, pop_last_helper_v2, FixedVec128, FixedVec32; + btreemap_v2_pop_last_vec_256_32, pop_last_helper_v2, FixedVec256, FixedVec32; + btreemap_v2_pop_last_vec_512_32, pop_last_helper_v2, FixedVec512, FixedVec32; // V2 vec K x 1024 btreemap_v2_pop_last_vec_4_1024, pop_last_helper_v2, FixedVec4, FixedVec1024; @@ -915,6 +1112,7 @@ bench_tests! { btreemap_v2_pop_last_vec_1024_128, pop_last_helper_v2, FixedVec1024, FixedVec128; btreemap_v2_pop_last_vec_1024_256, pop_last_helper_v2, FixedVec1024, FixedVec256; btreemap_v2_pop_last_vec_1024_512, pop_last_helper_v2, FixedVec1024, FixedVec512; + btreemap_v2_pop_last_vec_1024_1024, pop_last_helper_v2, FixedVec1024, FixedVec1024; // V2 u64 / blob8 / vec8 btreemap_v2_pop_last_u64_u64, pop_last_helper_v2, u64, u64; diff --git a/parse_benchmarks.py b/parse_benchmarks.py index a3ebe838..f548d0e1 100755 --- a/parse_benchmarks.py +++ b/parse_benchmarks.py @@ -156,7 +156,7 @@ def save_all_tables(tables, sizes, filename, scientific=False, sci_fmt="{:.2e}") writer = csv.writer(f, delimiter='\t') for tbl in tables: writer.writerow([tbl['name']]) - writer.writerow([''] + sizes + [''] + sizes) + writer.writerow(['{} | {}'.format(tbl['rows'], tbl['columns'])] + sizes + [''] + sizes) instr, change = tbl['instructions'], tbl['instructions_change'] for r in sizes: writer.writerow( @@ -188,8 +188,8 @@ def main(): name = f'btreemap_v{version}_{func}_{type_}' table = { 'name': name, - 'columns': 'key_size', - 'rows': 'value_size', + 'columns': 'keys', + 'rows': 'values', 'instructions': {r: {c: None for c in size_grid} for r in size_grid}, 'instructions_change': {r: {c: None for c in size_grid} for r in size_grid} } From 1a112c0a2ec25dd29d2520d7a0f007f28fa797c5 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Thu, 24 Apr 2025 10:10:53 +0200 Subject: [PATCH 33/68] mv scan + range down --- benchmarks/src/btreemap.rs | 272 ++++++++++++++++++------------------- 1 file changed, 136 insertions(+), 136 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index 34faecaf..c4107f34 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -762,142 +762,6 @@ macro_rules! bench_traversal_tests { }; } -bench_traversal_tests! { - // === V1 === - // V1 does not support unbounded types, eg. Vec<_>. - - // === V2 === - // 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, -} - -/// 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]); - } - - 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() {}), - } -} - -/// 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) - } - )+ - }; -} - -bench_range_tests! { - // === V1 === - // V1 does not support unbounded types, eg. Vec<_>. - - // === V2 === - 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 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 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 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(|| { - btree - .range((Bound::Included(0), Bound::Included(size as u32))) - .filter(|(k, _)| k % 3 == 0) - .map(|(_, v)| v.len()) - .sum::() - }) -} - -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() - }) -} - // First bench_tests! { // === V1 === @@ -1173,3 +1037,139 @@ fn pop_helper( } }) } + +bench_traversal_tests! { + // === V1 === + // V1 does not support unbounded types, eg. Vec<_>. + + // === V2 === + // 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, +} + +/// 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]); + } + + 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() {}), + } +} + +/// 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) + } + )+ + }; +} + +bench_range_tests! { + // === V1 === + // V1 does not support unbounded types, eg. Vec<_>. + + // === V2 === + 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 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 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 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(|| { + btree + .range((Bound::Included(0), Bound::Included(size as u32))) + .filter(|(k, _)| k % 3 == 0) + .map(|(_, v)| v.len()) + .sum::() + }) +} + +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() + }) +} From 3dd75ebbec916e4d1cac0c50312e758dddff09d0 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Thu, 24 Apr 2025 10:17:45 +0200 Subject: [PATCH 34/68] comment some tests --- benchmarks/src/btreemap.rs | 862 ++++++++--------- canbench_results.yml | 1806 +++++++++++++++--------------------- 2 files changed, 1184 insertions(+), 1484 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index c4107f34..b04bebe8 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -742,434 +742,434 @@ pub fn btreemap_v2_contains_10mib_values() -> BenchResult { }) } -/// 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) - } - )+ - }; -} - -// First -bench_tests! { - // === V1 === - - // V1 blob K x 32 - btreemap_v1_pop_first_blob_4_32, pop_first_helper_v1, Blob4, Blob32; - btreemap_v1_pop_first_blob_8_32, pop_first_helper_v1, Blob8, Blob32; - btreemap_v1_pop_first_blob_16_32, pop_first_helper_v1, Blob16, Blob32; - btreemap_v1_pop_first_blob_32_32, pop_first_helper_v1, Blob32, Blob32; - btreemap_v1_pop_first_blob_64_32, pop_first_helper_v1, Blob64, Blob32; - btreemap_v1_pop_first_blob_128_32, pop_first_helper_v1, Blob128, Blob32; - btreemap_v1_pop_first_blob_256_32, pop_first_helper_v1, Blob256, Blob32; - btreemap_v1_pop_first_blob_512_32, pop_first_helper_v1, Blob512, Blob32; - - // V1 blob K x 1024 - btreemap_v1_pop_first_blob_4_1024, pop_first_helper_v1, Blob4, Blob1024; - btreemap_v1_pop_first_blob_8_1024, pop_first_helper_v1, Blob8, Blob1024; - btreemap_v1_pop_first_blob_16_1024, pop_first_helper_v1, Blob16, Blob1024; - btreemap_v1_pop_first_blob_32_1024, pop_first_helper_v1, Blob32, Blob1024; - btreemap_v1_pop_first_blob_64_1024, pop_first_helper_v1, Blob64, Blob1024; - btreemap_v1_pop_first_blob_128_1024, pop_first_helper_v1, Blob128, Blob1024; - btreemap_v1_pop_first_blob_256_1024, pop_first_helper_v1, Blob256, Blob1024; - btreemap_v1_pop_first_blob_512_1024, pop_first_helper_v1, Blob512, Blob1024; - - // V1 blob 1024 x V - btreemap_v1_pop_first_blob_1024_4, pop_first_helper_v1, Blob1024, Blob4; - btreemap_v1_pop_first_blob_1024_8, pop_first_helper_v1, Blob1024, Blob8; - btreemap_v1_pop_first_blob_1024_16, pop_first_helper_v1, Blob1024, Blob16; - btreemap_v1_pop_first_blob_1024_32, pop_first_helper_v1, Blob1024, Blob32; - btreemap_v1_pop_first_blob_1024_64, pop_first_helper_v1, Blob1024, Blob64; - btreemap_v1_pop_first_blob_1024_128, pop_first_helper_v1, Blob1024, Blob128; - btreemap_v1_pop_first_blob_1024_256, pop_first_helper_v1, Blob1024, Blob256; - btreemap_v1_pop_first_blob_1024_512, pop_first_helper_v1, Blob1024, Blob512; - btreemap_v1_pop_first_blob_1024_1024, pop_first_helper_v1, Blob1024, Blob1024; - - // V1 u64 / blob8 - btreemap_v1_pop_first_u64_u64, pop_first_helper_v1, u64, u64; - btreemap_v1_pop_first_u64_blob8, pop_first_helper_v1, u64, Blob8; - btreemap_v1_pop_first_blob8_u64, pop_first_helper_v1, Blob8, u64; - - // === V2 === - - // V2 blob K x 32 - btreemap_v2_pop_first_blob_4_32, pop_first_helper_v2, Blob4, Blob32; - btreemap_v2_pop_first_blob_8_32, pop_first_helper_v2, Blob8, Blob32; - btreemap_v2_pop_first_blob_16_32, pop_first_helper_v2, Blob16, Blob32; - btreemap_v2_pop_first_blob_32_32, pop_first_helper_v2, Blob32, Blob32; - btreemap_v2_pop_first_blob_64_32, pop_first_helper_v2, Blob64, Blob32; - btreemap_v2_pop_first_blob_128_32, pop_first_helper_v2, Blob128, Blob32; - btreemap_v2_pop_first_blob_256_32, pop_first_helper_v2, Blob256, Blob32; - btreemap_v2_pop_first_blob_512_32, pop_first_helper_v2, Blob512, Blob32; - - // V2 blob K x 1024 - btreemap_v2_pop_first_blob_4_1024, pop_first_helper_v2, Blob4, Blob1024; - btreemap_v2_pop_first_blob_8_1024, pop_first_helper_v2, Blob8, Blob1024; - btreemap_v2_pop_first_blob_16_1024, pop_first_helper_v2, Blob16, Blob1024; - btreemap_v2_pop_first_blob_32_1024, pop_first_helper_v2, Blob32, Blob1024; - btreemap_v2_pop_first_blob_64_1024, pop_first_helper_v2, Blob64, Blob1024; - btreemap_v2_pop_first_blob_128_1024, pop_first_helper_v2, Blob128, Blob1024; - btreemap_v2_pop_first_blob_256_1024, pop_first_helper_v2, Blob256, Blob1024; - btreemap_v2_pop_first_blob_512_1024, pop_first_helper_v2, Blob512, Blob1024; - - // V2 blob 1024 x V - btreemap_v2_pop_first_blob_1024_4, pop_first_helper_v2, Blob1024, Blob4; - btreemap_v2_pop_first_blob_1024_8, pop_first_helper_v2, Blob1024, Blob8; - btreemap_v2_pop_first_blob_1024_16, pop_first_helper_v2, Blob1024, Blob16; - btreemap_v2_pop_first_blob_1024_32, pop_first_helper_v2, Blob1024, Blob32; - btreemap_v2_pop_first_blob_1024_64, pop_first_helper_v2, Blob1024, Blob64; - btreemap_v2_pop_first_blob_1024_128, pop_first_helper_v2, Blob1024, Blob128; - btreemap_v2_pop_first_blob_1024_256, pop_first_helper_v2, Blob1024, Blob256; - btreemap_v2_pop_first_blob_1024_512, pop_first_helper_v2, Blob1024, Blob512; - btreemap_v2_pop_first_blob_1024_1024, pop_first_helper_v2, Blob1024, Blob1024; - - // V2 vec K x 32 - btreemap_v2_pop_first_vec_4_32, pop_first_helper_v2, FixedVec4, FixedVec32; - btreemap_v2_pop_first_vec_8_32, pop_first_helper_v2, FixedVec8, FixedVec32; - btreemap_v2_pop_first_vec_16_32, pop_first_helper_v2, FixedVec16, FixedVec32; - btreemap_v2_pop_first_vec_32_32, pop_first_helper_v2, FixedVec32, FixedVec32; - btreemap_v2_pop_first_vec_64_32, pop_first_helper_v2, FixedVec64, FixedVec32; - btreemap_v2_pop_first_vec_128_32, pop_first_helper_v2, FixedVec128, FixedVec32; - btreemap_v2_pop_first_vec_256_32, pop_first_helper_v2, FixedVec256, FixedVec32; - btreemap_v2_pop_first_vec_512_32, pop_first_helper_v2, FixedVec512, FixedVec32; - - // V2 vec K x 1024 - btreemap_v2_pop_first_vec_4_1024, pop_first_helper_v2, FixedVec4, FixedVec1024; - btreemap_v2_pop_first_vec_8_1024, pop_first_helper_v2, FixedVec8, FixedVec1024; - btreemap_v2_pop_first_vec_16_1024, pop_first_helper_v2, FixedVec16, FixedVec1024; - btreemap_v2_pop_first_vec_32_1024, pop_first_helper_v2, FixedVec32, FixedVec1024; - btreemap_v2_pop_first_vec_64_1024, pop_first_helper_v2, FixedVec64, FixedVec1024; - btreemap_v2_pop_first_vec_128_1024, pop_first_helper_v2, FixedVec128, FixedVec1024; - btreemap_v2_pop_first_vec_256_1024, pop_first_helper_v2, FixedVec256, FixedVec1024; - btreemap_v2_pop_first_vec_512_1024, pop_first_helper_v2, FixedVec512, FixedVec1024; - - // V2 vec 1024 x V - btreemap_v2_pop_first_vec_1024_4, pop_first_helper_v2, FixedVec1024, FixedVec4; - btreemap_v2_pop_first_vec_1024_8, pop_first_helper_v2, FixedVec1024, FixedVec8; - btreemap_v2_pop_first_vec_1024_16, pop_first_helper_v2, FixedVec1024, FixedVec16; - btreemap_v2_pop_first_vec_1024_32, pop_first_helper_v2, FixedVec1024, FixedVec32; - btreemap_v2_pop_first_vec_1024_64, pop_first_helper_v2, FixedVec1024, FixedVec64; - btreemap_v2_pop_first_vec_1024_128, pop_first_helper_v2, FixedVec1024, FixedVec128; - btreemap_v2_pop_first_vec_1024_256, pop_first_helper_v2, FixedVec1024, FixedVec256; - btreemap_v2_pop_first_vec_1024_512, pop_first_helper_v2, FixedVec1024, FixedVec512; - btreemap_v2_pop_first_vec_1024_1024, pop_first_helper_v2, FixedVec1024, FixedVec1024; - - // V2 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! { - // === V1 === - - // V1 blob K x 32 - btreemap_v1_pop_last_blob_4_32, pop_last_helper_v1, Blob4, Blob32; - btreemap_v1_pop_last_blob_8_32, pop_last_helper_v1, Blob8, Blob32; - btreemap_v1_pop_last_blob_16_32, pop_last_helper_v1, Blob16, Blob32; - btreemap_v1_pop_last_blob_32_32, pop_last_helper_v1, Blob32, Blob32; - btreemap_v1_pop_last_blob_64_32, pop_last_helper_v1, Blob64, Blob32; - btreemap_v1_pop_last_blob_128_32, pop_last_helper_v1, Blob128, Blob32; - btreemap_v1_pop_last_blob_256_32, pop_last_helper_v1, Blob256, Blob32; - btreemap_v1_pop_last_blob_512_32, pop_last_helper_v1, Blob512, Blob32; - - // V1 blob K x 1024 - btreemap_v1_pop_last_blob_4_1024, pop_last_helper_v1, Blob4, Blob1024; - btreemap_v1_pop_last_blob_8_1024, pop_last_helper_v1, Blob8, Blob1024; - btreemap_v1_pop_last_blob_16_1024, pop_last_helper_v1, Blob16, Blob1024; - btreemap_v1_pop_last_blob_32_1024, pop_last_helper_v1, Blob32, Blob1024; - btreemap_v1_pop_last_blob_64_1024, pop_last_helper_v1, Blob64, Blob1024; - btreemap_v1_pop_last_blob_128_1024, pop_last_helper_v1, Blob128, Blob1024; - btreemap_v1_pop_last_blob_256_1024, pop_last_helper_v1, Blob256, Blob1024; - btreemap_v1_pop_last_blob_512_1024, pop_last_helper_v1, Blob512, Blob1024; - - // V1 blob 1024 x V - btreemap_v1_pop_last_blob_1024_4, pop_last_helper_v1, Blob1024, Blob4; - btreemap_v1_pop_last_blob_1024_8, pop_last_helper_v1, Blob1024, Blob8; - btreemap_v1_pop_last_blob_1024_16, pop_last_helper_v1, Blob1024, Blob16; - btreemap_v1_pop_last_blob_1024_32, pop_last_helper_v1, Blob1024, Blob32; - btreemap_v1_pop_last_blob_1024_64, pop_last_helper_v1, Blob1024, Blob64; - btreemap_v1_pop_last_blob_1024_128, pop_last_helper_v1, Blob1024, Blob128; - btreemap_v1_pop_last_blob_1024_256, pop_last_helper_v1, Blob1024, Blob256; - btreemap_v1_pop_last_blob_1024_512, pop_last_helper_v1, Blob1024, Blob512; - btreemap_v1_pop_last_blob_1024_1024, pop_last_helper_v1, Blob1024, Blob1024; - - // V1 u64 / blob8 - btreemap_v1_pop_last_u64_u64, pop_last_helper_v1, u64, u64; - btreemap_v1_pop_last_u64_blob8, pop_last_helper_v1, u64, Blob8; - btreemap_v1_pop_last_blob8_u64, pop_last_helper_v1, Blob8, u64; - - // === V2 === - - // V2 blob K x 32 - btreemap_v2_pop_last_blob_4_32, pop_last_helper_v2, Blob4, Blob32; - btreemap_v2_pop_last_blob_8_32, pop_last_helper_v2, Blob8, Blob32; - btreemap_v2_pop_last_blob_16_32, pop_last_helper_v2, Blob16, Blob32; - btreemap_v2_pop_last_blob_32_32, pop_last_helper_v2, Blob32, Blob32; - btreemap_v2_pop_last_blob_64_32, pop_last_helper_v2, Blob64, Blob32; - btreemap_v2_pop_last_blob_128_32, pop_last_helper_v2, Blob128, Blob32; - btreemap_v2_pop_last_blob_256_32, pop_last_helper_v2, Blob256, Blob32; - btreemap_v2_pop_last_blob_512_32, pop_last_helper_v2, Blob512, Blob32; - - // V2 blob K x 1024 - btreemap_v2_pop_last_blob_4_1024, pop_last_helper_v2, Blob4, Blob1024; - btreemap_v2_pop_last_blob_8_1024, pop_last_helper_v2, Blob8, Blob1024; - btreemap_v2_pop_last_blob_16_1024, pop_last_helper_v2, Blob16, Blob1024; - btreemap_v2_pop_last_blob_32_1024, pop_last_helper_v2, Blob32, Blob1024; - btreemap_v2_pop_last_blob_64_1024, pop_last_helper_v2, Blob64, Blob1024; - btreemap_v2_pop_last_blob_128_1024, pop_last_helper_v2, Blob128, Blob1024; - btreemap_v2_pop_last_blob_256_1024, pop_last_helper_v2, Blob256, Blob1024; - btreemap_v2_pop_last_blob_512_1024, pop_last_helper_v2, Blob512, Blob1024; - - // V2 blob 1024 x V - btreemap_v2_pop_last_blob_1024_4, pop_last_helper_v2, Blob1024, Blob4; - btreemap_v2_pop_last_blob_1024_8, pop_last_helper_v2, Blob1024, Blob8; - btreemap_v2_pop_last_blob_1024_16, pop_last_helper_v2, Blob1024, Blob16; - btreemap_v2_pop_last_blob_1024_32, pop_last_helper_v2, Blob1024, Blob32; - btreemap_v2_pop_last_blob_1024_64, pop_last_helper_v2, Blob1024, Blob64; - btreemap_v2_pop_last_blob_1024_128, pop_last_helper_v2, Blob1024, Blob128; - btreemap_v2_pop_last_blob_1024_256, pop_last_helper_v2, Blob1024, Blob256; - btreemap_v2_pop_last_blob_1024_512, pop_last_helper_v2, Blob1024, Blob512; - btreemap_v2_pop_last_blob_1024_1024, pop_last_helper_v2, Blob1024, Blob1024; - - // V2 vec K x 32 - btreemap_v2_pop_last_vec_4_32, pop_last_helper_v2, FixedVec4, FixedVec32; - btreemap_v2_pop_last_vec_8_32, pop_last_helper_v2, FixedVec8, FixedVec32; - btreemap_v2_pop_last_vec_16_32, pop_last_helper_v2, FixedVec16, FixedVec32; - btreemap_v2_pop_last_vec_32_32, pop_last_helper_v2, FixedVec32, FixedVec32; - btreemap_v2_pop_last_vec_64_32, pop_last_helper_v2, FixedVec64, FixedVec32; - btreemap_v2_pop_last_vec_128_32, pop_last_helper_v2, FixedVec128, FixedVec32; - btreemap_v2_pop_last_vec_256_32, pop_last_helper_v2, FixedVec256, FixedVec32; - btreemap_v2_pop_last_vec_512_32, pop_last_helper_v2, FixedVec512, FixedVec32; - - // V2 vec K x 1024 - btreemap_v2_pop_last_vec_4_1024, pop_last_helper_v2, FixedVec4, FixedVec1024; - btreemap_v2_pop_last_vec_8_1024, pop_last_helper_v2, FixedVec8, FixedVec1024; - btreemap_v2_pop_last_vec_16_1024, pop_last_helper_v2, FixedVec16, FixedVec1024; - btreemap_v2_pop_last_vec_32_1024, pop_last_helper_v2, FixedVec32, FixedVec1024; - btreemap_v2_pop_last_vec_64_1024, pop_last_helper_v2, FixedVec64, FixedVec1024; - btreemap_v2_pop_last_vec_128_1024, pop_last_helper_v2, FixedVec128, FixedVec1024; - btreemap_v2_pop_last_vec_256_1024, pop_last_helper_v2, FixedVec256, FixedVec1024; - btreemap_v2_pop_last_vec_512_1024, pop_last_helper_v2, FixedVec512, FixedVec1024; - - // V2 vec 1024 x V - btreemap_v2_pop_last_vec_1024_4, pop_last_helper_v2, FixedVec1024, FixedVec4; - btreemap_v2_pop_last_vec_1024_8, pop_last_helper_v2, FixedVec1024, FixedVec8; - btreemap_v2_pop_last_vec_1024_16, pop_last_helper_v2, FixedVec1024, FixedVec16; - btreemap_v2_pop_last_vec_1024_32, pop_last_helper_v2, FixedVec1024, FixedVec32; - btreemap_v2_pop_last_vec_1024_64, pop_last_helper_v2, FixedVec1024, FixedVec64; - btreemap_v2_pop_last_vec_1024_128, pop_last_helper_v2, FixedVec1024, FixedVec128; - btreemap_v2_pop_last_vec_1024_256, pop_last_helper_v2, FixedVec1024, FixedVec256; - btreemap_v2_pop_last_vec_1024_512, pop_last_helper_v2, FixedVec1024, FixedVec512; - btreemap_v2_pop_last_vec_1024_1024, pop_last_helper_v2, FixedVec1024, FixedVec1024; - - // V2 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_v1() -> BenchResult { - pop_helper_v1::(Position::First) -} - -fn pop_last_helper_v1() -> BenchResult { - pop_helper_v1::(Position::Last) -} - -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_v1(position: Position) -> BenchResult { - let btree = BTreeMap::new_v1(DefaultMemoryImpl::default()); - pop_helper::(btree, position) -} - -fn pop_helper_v2(position: Position) -> BenchResult { - let btree = BTreeMap::new(DefaultMemoryImpl::default()); - pop_helper::(btree, position) -} - -enum Position { - First, - Last, -} - -fn pop_helper( - mut btree: BTreeMap, - position: Position, -) -> 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 { - btree.insert(k, v); - } - - bench_fn(|| { - for _ in 0..count { - match position { - Position::First => btree.pop_first(), - Position::Last => btree.pop_last(), - }; - } - }) -} - -bench_traversal_tests! { - // === V1 === - // V1 does not support unbounded types, eg. Vec<_>. - - // === V2 === - // 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, -} - -/// 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]); - } - - 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() {}), - } -} - -/// 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) - } - )+ - }; -} - -bench_range_tests! { - // === V1 === - // V1 does not support unbounded types, eg. Vec<_>. - - // === V2 === - 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 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 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 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(|| { - btree - .range((Bound::Included(0), Bound::Included(size as u32))) - .filter(|(k, _)| k % 3 == 0) - .map(|(_, v)| v.len()) - .sum::() - }) -} - -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() - }) -} +// /// 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) +// } +// )+ +// }; +// } + +// // First +// bench_tests! { +// // === V1 === + +// // V1 blob K x 32 +// btreemap_v1_pop_first_blob_4_32, pop_first_helper_v1, Blob4, Blob32; +// btreemap_v1_pop_first_blob_8_32, pop_first_helper_v1, Blob8, Blob32; +// btreemap_v1_pop_first_blob_16_32, pop_first_helper_v1, Blob16, Blob32; +// btreemap_v1_pop_first_blob_32_32, pop_first_helper_v1, Blob32, Blob32; +// btreemap_v1_pop_first_blob_64_32, pop_first_helper_v1, Blob64, Blob32; +// btreemap_v1_pop_first_blob_128_32, pop_first_helper_v1, Blob128, Blob32; +// btreemap_v1_pop_first_blob_256_32, pop_first_helper_v1, Blob256, Blob32; +// btreemap_v1_pop_first_blob_512_32, pop_first_helper_v1, Blob512, Blob32; + +// // V1 blob K x 1024 +// btreemap_v1_pop_first_blob_4_1024, pop_first_helper_v1, Blob4, Blob1024; +// btreemap_v1_pop_first_blob_8_1024, pop_first_helper_v1, Blob8, Blob1024; +// btreemap_v1_pop_first_blob_16_1024, pop_first_helper_v1, Blob16, Blob1024; +// btreemap_v1_pop_first_blob_32_1024, pop_first_helper_v1, Blob32, Blob1024; +// btreemap_v1_pop_first_blob_64_1024, pop_first_helper_v1, Blob64, Blob1024; +// btreemap_v1_pop_first_blob_128_1024, pop_first_helper_v1, Blob128, Blob1024; +// btreemap_v1_pop_first_blob_256_1024, pop_first_helper_v1, Blob256, Blob1024; +// btreemap_v1_pop_first_blob_512_1024, pop_first_helper_v1, Blob512, Blob1024; + +// // V1 blob 1024 x V +// btreemap_v1_pop_first_blob_1024_4, pop_first_helper_v1, Blob1024, Blob4; +// btreemap_v1_pop_first_blob_1024_8, pop_first_helper_v1, Blob1024, Blob8; +// btreemap_v1_pop_first_blob_1024_16, pop_first_helper_v1, Blob1024, Blob16; +// btreemap_v1_pop_first_blob_1024_32, pop_first_helper_v1, Blob1024, Blob32; +// btreemap_v1_pop_first_blob_1024_64, pop_first_helper_v1, Blob1024, Blob64; +// btreemap_v1_pop_first_blob_1024_128, pop_first_helper_v1, Blob1024, Blob128; +// btreemap_v1_pop_first_blob_1024_256, pop_first_helper_v1, Blob1024, Blob256; +// btreemap_v1_pop_first_blob_1024_512, pop_first_helper_v1, Blob1024, Blob512; +// btreemap_v1_pop_first_blob_1024_1024, pop_first_helper_v1, Blob1024, Blob1024; + +// // V1 u64 / blob8 +// btreemap_v1_pop_first_u64_u64, pop_first_helper_v1, u64, u64; +// btreemap_v1_pop_first_u64_blob8, pop_first_helper_v1, u64, Blob8; +// btreemap_v1_pop_first_blob8_u64, pop_first_helper_v1, Blob8, u64; + +// // === V2 === + +// // V2 blob K x 32 +// btreemap_v2_pop_first_blob_4_32, pop_first_helper_v2, Blob4, Blob32; +// btreemap_v2_pop_first_blob_8_32, pop_first_helper_v2, Blob8, Blob32; +// btreemap_v2_pop_first_blob_16_32, pop_first_helper_v2, Blob16, Blob32; +// btreemap_v2_pop_first_blob_32_32, pop_first_helper_v2, Blob32, Blob32; +// btreemap_v2_pop_first_blob_64_32, pop_first_helper_v2, Blob64, Blob32; +// btreemap_v2_pop_first_blob_128_32, pop_first_helper_v2, Blob128, Blob32; +// btreemap_v2_pop_first_blob_256_32, pop_first_helper_v2, Blob256, Blob32; +// btreemap_v2_pop_first_blob_512_32, pop_first_helper_v2, Blob512, Blob32; + +// // V2 blob K x 1024 +// btreemap_v2_pop_first_blob_4_1024, pop_first_helper_v2, Blob4, Blob1024; +// btreemap_v2_pop_first_blob_8_1024, pop_first_helper_v2, Blob8, Blob1024; +// btreemap_v2_pop_first_blob_16_1024, pop_first_helper_v2, Blob16, Blob1024; +// btreemap_v2_pop_first_blob_32_1024, pop_first_helper_v2, Blob32, Blob1024; +// btreemap_v2_pop_first_blob_64_1024, pop_first_helper_v2, Blob64, Blob1024; +// btreemap_v2_pop_first_blob_128_1024, pop_first_helper_v2, Blob128, Blob1024; +// btreemap_v2_pop_first_blob_256_1024, pop_first_helper_v2, Blob256, Blob1024; +// btreemap_v2_pop_first_blob_512_1024, pop_first_helper_v2, Blob512, Blob1024; + +// // V2 blob 1024 x V +// btreemap_v2_pop_first_blob_1024_4, pop_first_helper_v2, Blob1024, Blob4; +// btreemap_v2_pop_first_blob_1024_8, pop_first_helper_v2, Blob1024, Blob8; +// btreemap_v2_pop_first_blob_1024_16, pop_first_helper_v2, Blob1024, Blob16; +// btreemap_v2_pop_first_blob_1024_32, pop_first_helper_v2, Blob1024, Blob32; +// btreemap_v2_pop_first_blob_1024_64, pop_first_helper_v2, Blob1024, Blob64; +// btreemap_v2_pop_first_blob_1024_128, pop_first_helper_v2, Blob1024, Blob128; +// btreemap_v2_pop_first_blob_1024_256, pop_first_helper_v2, Blob1024, Blob256; +// btreemap_v2_pop_first_blob_1024_512, pop_first_helper_v2, Blob1024, Blob512; +// btreemap_v2_pop_first_blob_1024_1024, pop_first_helper_v2, Blob1024, Blob1024; + +// // V2 vec K x 32 +// btreemap_v2_pop_first_vec_4_32, pop_first_helper_v2, FixedVec4, FixedVec32; +// btreemap_v2_pop_first_vec_8_32, pop_first_helper_v2, FixedVec8, FixedVec32; +// btreemap_v2_pop_first_vec_16_32, pop_first_helper_v2, FixedVec16, FixedVec32; +// btreemap_v2_pop_first_vec_32_32, pop_first_helper_v2, FixedVec32, FixedVec32; +// btreemap_v2_pop_first_vec_64_32, pop_first_helper_v2, FixedVec64, FixedVec32; +// btreemap_v2_pop_first_vec_128_32, pop_first_helper_v2, FixedVec128, FixedVec32; +// btreemap_v2_pop_first_vec_256_32, pop_first_helper_v2, FixedVec256, FixedVec32; +// btreemap_v2_pop_first_vec_512_32, pop_first_helper_v2, FixedVec512, FixedVec32; + +// // V2 vec K x 1024 +// btreemap_v2_pop_first_vec_4_1024, pop_first_helper_v2, FixedVec4, FixedVec1024; +// btreemap_v2_pop_first_vec_8_1024, pop_first_helper_v2, FixedVec8, FixedVec1024; +// btreemap_v2_pop_first_vec_16_1024, pop_first_helper_v2, FixedVec16, FixedVec1024; +// btreemap_v2_pop_first_vec_32_1024, pop_first_helper_v2, FixedVec32, FixedVec1024; +// btreemap_v2_pop_first_vec_64_1024, pop_first_helper_v2, FixedVec64, FixedVec1024; +// btreemap_v2_pop_first_vec_128_1024, pop_first_helper_v2, FixedVec128, FixedVec1024; +// btreemap_v2_pop_first_vec_256_1024, pop_first_helper_v2, FixedVec256, FixedVec1024; +// btreemap_v2_pop_first_vec_512_1024, pop_first_helper_v2, FixedVec512, FixedVec1024; + +// // V2 vec 1024 x V +// btreemap_v2_pop_first_vec_1024_4, pop_first_helper_v2, FixedVec1024, FixedVec4; +// btreemap_v2_pop_first_vec_1024_8, pop_first_helper_v2, FixedVec1024, FixedVec8; +// btreemap_v2_pop_first_vec_1024_16, pop_first_helper_v2, FixedVec1024, FixedVec16; +// btreemap_v2_pop_first_vec_1024_32, pop_first_helper_v2, FixedVec1024, FixedVec32; +// btreemap_v2_pop_first_vec_1024_64, pop_first_helper_v2, FixedVec1024, FixedVec64; +// btreemap_v2_pop_first_vec_1024_128, pop_first_helper_v2, FixedVec1024, FixedVec128; +// btreemap_v2_pop_first_vec_1024_256, pop_first_helper_v2, FixedVec1024, FixedVec256; +// btreemap_v2_pop_first_vec_1024_512, pop_first_helper_v2, FixedVec1024, FixedVec512; +// btreemap_v2_pop_first_vec_1024_1024, pop_first_helper_v2, FixedVec1024, FixedVec1024; + +// // V2 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! { +// // === V1 === + +// // V1 blob K x 32 +// btreemap_v1_pop_last_blob_4_32, pop_last_helper_v1, Blob4, Blob32; +// btreemap_v1_pop_last_blob_8_32, pop_last_helper_v1, Blob8, Blob32; +// btreemap_v1_pop_last_blob_16_32, pop_last_helper_v1, Blob16, Blob32; +// btreemap_v1_pop_last_blob_32_32, pop_last_helper_v1, Blob32, Blob32; +// btreemap_v1_pop_last_blob_64_32, pop_last_helper_v1, Blob64, Blob32; +// btreemap_v1_pop_last_blob_128_32, pop_last_helper_v1, Blob128, Blob32; +// btreemap_v1_pop_last_blob_256_32, pop_last_helper_v1, Blob256, Blob32; +// btreemap_v1_pop_last_blob_512_32, pop_last_helper_v1, Blob512, Blob32; + +// // V1 blob K x 1024 +// btreemap_v1_pop_last_blob_4_1024, pop_last_helper_v1, Blob4, Blob1024; +// btreemap_v1_pop_last_blob_8_1024, pop_last_helper_v1, Blob8, Blob1024; +// btreemap_v1_pop_last_blob_16_1024, pop_last_helper_v1, Blob16, Blob1024; +// btreemap_v1_pop_last_blob_32_1024, pop_last_helper_v1, Blob32, Blob1024; +// btreemap_v1_pop_last_blob_64_1024, pop_last_helper_v1, Blob64, Blob1024; +// btreemap_v1_pop_last_blob_128_1024, pop_last_helper_v1, Blob128, Blob1024; +// btreemap_v1_pop_last_blob_256_1024, pop_last_helper_v1, Blob256, Blob1024; +// btreemap_v1_pop_last_blob_512_1024, pop_last_helper_v1, Blob512, Blob1024; + +// // V1 blob 1024 x V +// btreemap_v1_pop_last_blob_1024_4, pop_last_helper_v1, Blob1024, Blob4; +// btreemap_v1_pop_last_blob_1024_8, pop_last_helper_v1, Blob1024, Blob8; +// btreemap_v1_pop_last_blob_1024_16, pop_last_helper_v1, Blob1024, Blob16; +// btreemap_v1_pop_last_blob_1024_32, pop_last_helper_v1, Blob1024, Blob32; +// btreemap_v1_pop_last_blob_1024_64, pop_last_helper_v1, Blob1024, Blob64; +// btreemap_v1_pop_last_blob_1024_128, pop_last_helper_v1, Blob1024, Blob128; +// btreemap_v1_pop_last_blob_1024_256, pop_last_helper_v1, Blob1024, Blob256; +// btreemap_v1_pop_last_blob_1024_512, pop_last_helper_v1, Blob1024, Blob512; +// btreemap_v1_pop_last_blob_1024_1024, pop_last_helper_v1, Blob1024, Blob1024; + +// // V1 u64 / blob8 +// btreemap_v1_pop_last_u64_u64, pop_last_helper_v1, u64, u64; +// btreemap_v1_pop_last_u64_blob8, pop_last_helper_v1, u64, Blob8; +// btreemap_v1_pop_last_blob8_u64, pop_last_helper_v1, Blob8, u64; + +// // === V2 === + +// // V2 blob K x 32 +// btreemap_v2_pop_last_blob_4_32, pop_last_helper_v2, Blob4, Blob32; +// btreemap_v2_pop_last_blob_8_32, pop_last_helper_v2, Blob8, Blob32; +// btreemap_v2_pop_last_blob_16_32, pop_last_helper_v2, Blob16, Blob32; +// btreemap_v2_pop_last_blob_32_32, pop_last_helper_v2, Blob32, Blob32; +// btreemap_v2_pop_last_blob_64_32, pop_last_helper_v2, Blob64, Blob32; +// btreemap_v2_pop_last_blob_128_32, pop_last_helper_v2, Blob128, Blob32; +// btreemap_v2_pop_last_blob_256_32, pop_last_helper_v2, Blob256, Blob32; +// btreemap_v2_pop_last_blob_512_32, pop_last_helper_v2, Blob512, Blob32; + +// // V2 blob K x 1024 +// btreemap_v2_pop_last_blob_4_1024, pop_last_helper_v2, Blob4, Blob1024; +// btreemap_v2_pop_last_blob_8_1024, pop_last_helper_v2, Blob8, Blob1024; +// btreemap_v2_pop_last_blob_16_1024, pop_last_helper_v2, Blob16, Blob1024; +// btreemap_v2_pop_last_blob_32_1024, pop_last_helper_v2, Blob32, Blob1024; +// btreemap_v2_pop_last_blob_64_1024, pop_last_helper_v2, Blob64, Blob1024; +// btreemap_v2_pop_last_blob_128_1024, pop_last_helper_v2, Blob128, Blob1024; +// btreemap_v2_pop_last_blob_256_1024, pop_last_helper_v2, Blob256, Blob1024; +// btreemap_v2_pop_last_blob_512_1024, pop_last_helper_v2, Blob512, Blob1024; + +// // V2 blob 1024 x V +// btreemap_v2_pop_last_blob_1024_4, pop_last_helper_v2, Blob1024, Blob4; +// btreemap_v2_pop_last_blob_1024_8, pop_last_helper_v2, Blob1024, Blob8; +// btreemap_v2_pop_last_blob_1024_16, pop_last_helper_v2, Blob1024, Blob16; +// btreemap_v2_pop_last_blob_1024_32, pop_last_helper_v2, Blob1024, Blob32; +// btreemap_v2_pop_last_blob_1024_64, pop_last_helper_v2, Blob1024, Blob64; +// btreemap_v2_pop_last_blob_1024_128, pop_last_helper_v2, Blob1024, Blob128; +// btreemap_v2_pop_last_blob_1024_256, pop_last_helper_v2, Blob1024, Blob256; +// btreemap_v2_pop_last_blob_1024_512, pop_last_helper_v2, Blob1024, Blob512; +// btreemap_v2_pop_last_blob_1024_1024, pop_last_helper_v2, Blob1024, Blob1024; + +// // V2 vec K x 32 +// btreemap_v2_pop_last_vec_4_32, pop_last_helper_v2, FixedVec4, FixedVec32; +// btreemap_v2_pop_last_vec_8_32, pop_last_helper_v2, FixedVec8, FixedVec32; +// btreemap_v2_pop_last_vec_16_32, pop_last_helper_v2, FixedVec16, FixedVec32; +// btreemap_v2_pop_last_vec_32_32, pop_last_helper_v2, FixedVec32, FixedVec32; +// btreemap_v2_pop_last_vec_64_32, pop_last_helper_v2, FixedVec64, FixedVec32; +// btreemap_v2_pop_last_vec_128_32, pop_last_helper_v2, FixedVec128, FixedVec32; +// btreemap_v2_pop_last_vec_256_32, pop_last_helper_v2, FixedVec256, FixedVec32; +// btreemap_v2_pop_last_vec_512_32, pop_last_helper_v2, FixedVec512, FixedVec32; + +// // V2 vec K x 1024 +// btreemap_v2_pop_last_vec_4_1024, pop_last_helper_v2, FixedVec4, FixedVec1024; +// btreemap_v2_pop_last_vec_8_1024, pop_last_helper_v2, FixedVec8, FixedVec1024; +// btreemap_v2_pop_last_vec_16_1024, pop_last_helper_v2, FixedVec16, FixedVec1024; +// btreemap_v2_pop_last_vec_32_1024, pop_last_helper_v2, FixedVec32, FixedVec1024; +// btreemap_v2_pop_last_vec_64_1024, pop_last_helper_v2, FixedVec64, FixedVec1024; +// btreemap_v2_pop_last_vec_128_1024, pop_last_helper_v2, FixedVec128, FixedVec1024; +// btreemap_v2_pop_last_vec_256_1024, pop_last_helper_v2, FixedVec256, FixedVec1024; +// btreemap_v2_pop_last_vec_512_1024, pop_last_helper_v2, FixedVec512, FixedVec1024; + +// // V2 vec 1024 x V +// btreemap_v2_pop_last_vec_1024_4, pop_last_helper_v2, FixedVec1024, FixedVec4; +// btreemap_v2_pop_last_vec_1024_8, pop_last_helper_v2, FixedVec1024, FixedVec8; +// btreemap_v2_pop_last_vec_1024_16, pop_last_helper_v2, FixedVec1024, FixedVec16; +// btreemap_v2_pop_last_vec_1024_32, pop_last_helper_v2, FixedVec1024, FixedVec32; +// btreemap_v2_pop_last_vec_1024_64, pop_last_helper_v2, FixedVec1024, FixedVec64; +// btreemap_v2_pop_last_vec_1024_128, pop_last_helper_v2, FixedVec1024, FixedVec128; +// btreemap_v2_pop_last_vec_1024_256, pop_last_helper_v2, FixedVec1024, FixedVec256; +// btreemap_v2_pop_last_vec_1024_512, pop_last_helper_v2, FixedVec1024, FixedVec512; +// btreemap_v2_pop_last_vec_1024_1024, pop_last_helper_v2, FixedVec1024, FixedVec1024; + +// // V2 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_v1() -> BenchResult { +// pop_helper_v1::(Position::First) +// } + +// fn pop_last_helper_v1() -> BenchResult { +// pop_helper_v1::(Position::Last) +// } + +// 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_v1(position: Position) -> BenchResult { +// let btree = BTreeMap::new_v1(DefaultMemoryImpl::default()); +// pop_helper::(btree, position) +// } + +// fn pop_helper_v2(position: Position) -> BenchResult { +// let btree = BTreeMap::new(DefaultMemoryImpl::default()); +// pop_helper::(btree, position) +// } + +// enum Position { +// First, +// Last, +// } + +// fn pop_helper( +// mut btree: BTreeMap, +// position: Position, +// ) -> 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 { +// btree.insert(k, v); +// } + +// bench_fn(|| { +// for _ in 0..count { +// match position { +// Position::First => btree.pop_first(), +// Position::Last => btree.pop_last(), +// }; +// } +// }) +// } + +// bench_traversal_tests! { +// // === V1 === +// // V1 does not support unbounded types, eg. Vec<_>. + +// // === V2 === +// // 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, +// } + +// /// 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]); +// } + +// 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() {}), +// } +// } + +// /// 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) +// } +// )+ +// }; +// } + +// bench_range_tests! { +// // === V1 === +// // V1 does not support unbounded types, eg. Vec<_>. + +// // === V2 === +// 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 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 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 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(|| { +// btree +// .range((Bound::Included(0), Bound::Included(size as u32))) +// .filter(|(k, _)| k % 3 == 0) +// .map(|(_, v)| v.len()) +// .sum::() +// }) +// } + +// 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/canbench_results.yml b/canbench_results.yml index a0182e1f..9d17de8c 100644 --- a/canbench_results.yml +++ b/canbench_results.yml @@ -5,6 +5,12 @@ benches: heap_increase: 0 stable_memory_increase: 0 scopes: {} + btreemap_v1_contains_blob_1024_1024: + total: + instructions: 4860529539 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} btreemap_v1_contains_blob_1024_128: total: instructions: 4841087105 @@ -59,48 +65,96 @@ benches: heap_increase: 0 stable_memory_increase: 0 scopes: {} + btreemap_v1_contains_blob_128_32: + total: + instructions: 847210188 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} btreemap_v1_contains_blob_16_1024: total: instructions: 227336692 heap_increase: 0 stable_memory_increase: 0 scopes: {} + btreemap_v1_contains_blob_16_32: + total: + instructions: 229901238 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} btreemap_v1_contains_blob_256_1024: total: instructions: 1410857441 heap_increase: 0 stable_memory_increase: 0 scopes: {} + btreemap_v1_contains_blob_256_32: + total: + instructions: 1418047561 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} btreemap_v1_contains_blob_32_1024: total: instructions: 260366378 heap_increase: 0 stable_memory_increase: 0 scopes: {} + btreemap_v1_contains_blob_32_32: + total: + instructions: 261642152 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} btreemap_v1_contains_blob_4_1024: total: instructions: 166001914 heap_increase: 0 stable_memory_increase: 0 scopes: {} + btreemap_v1_contains_blob_4_32: + total: + instructions: 169172932 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} btreemap_v1_contains_blob_512_1024: total: instructions: 2534138636 heap_increase: 0 stable_memory_increase: 0 scopes: {} + btreemap_v1_contains_blob_512_32: + total: + instructions: 2550685104 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} btreemap_v1_contains_blob_64_1024: total: instructions: 500287451 heap_increase: 0 stable_memory_increase: 0 scopes: {} + btreemap_v1_contains_blob_64_32: + total: + instructions: 496382037 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} btreemap_v1_contains_blob_8_1024: total: instructions: 197009901 heap_increase: 0 stable_memory_increase: 0 scopes: {} + btreemap_v1_contains_blob_8_32: + total: + instructions: 192622129 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} btreemap_v1_contains_u64_blob8: total: instructions: 168557358 @@ -119,6 +173,12 @@ benches: heap_increase: 0 stable_memory_increase: 0 scopes: {} + btreemap_v1_get_blob_1024_1024: + total: + instructions: 4920163981 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} btreemap_v1_get_blob_1024_128: total: instructions: 4894778854 @@ -173,48 +233,96 @@ benches: heap_increase: 0 stable_memory_increase: 0 scopes: {} + btreemap_v1_get_blob_128_32: + total: + instructions: 862501243 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} btreemap_v1_get_blob_16_1024: total: instructions: 246862999 heap_increase: 0 stable_memory_increase: 0 scopes: {} + btreemap_v1_get_blob_16_32: + total: + instructions: 240218315 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} btreemap_v1_get_blob_256_1024: total: instructions: 1438374032 heap_increase: 0 stable_memory_increase: 0 scopes: {} + btreemap_v1_get_blob_256_32: + total: + instructions: 1441456515 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} btreemap_v1_get_blob_32_1024: total: instructions: 280106753 heap_increase: 0 stable_memory_increase: 0 scopes: {} + btreemap_v1_get_blob_32_32: + total: + instructions: 269854309 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} btreemap_v1_get_blob_4_1024: total: instructions: 183878301 heap_increase: 0 stable_memory_increase: 0 scopes: {} + btreemap_v1_get_blob_4_32: + total: + instructions: 180420263 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} btreemap_v1_get_blob_512_1024: total: instructions: 2574022258 heap_increase: 0 stable_memory_increase: 0 scopes: {} + btreemap_v1_get_blob_512_32: + total: + instructions: 2584087654 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} btreemap_v1_get_blob_64_1024: total: instructions: 522452995 heap_increase: 0 stable_memory_increase: 0 scopes: {} + btreemap_v1_get_blob_64_32: + total: + instructions: 508142908 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} btreemap_v1_get_blob_8_1024: total: instructions: 217400958 heap_increase: 0 stable_memory_increase: 0 scopes: {} + btreemap_v1_get_blob_8_32: + total: + instructions: 204994047 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} btreemap_v1_get_u64_blob8: total: instructions: 175701037 @@ -229,1144 +337,1348 @@ benches: scopes: {} btreemap_v1_insert_blob8_u64: total: - instructions: 330179833 + instructions: 330197598 heap_increase: 0 stable_memory_increase: 6 scopes: {} + btreemap_v1_insert_blob_1024_1024: + total: + instructions: 5207709950 + heap_increase: 1 + stable_memory_increase: 465 + scopes: {} btreemap_v1_insert_blob_1024_128: total: - instructions: 5015453786 + instructions: 5015476464 heap_increase: 0 stable_memory_increase: 262 scopes: {} btreemap_v1_insert_blob_1024_16: total: - instructions: 5028292822 + instructions: 5028315925 heap_increase: 1 stable_memory_increase: 241 scopes: {} btreemap_v1_insert_blob_1024_256: total: - instructions: 5026555704 + instructions: 5026578552 heap_increase: 0 stable_memory_increase: 292 scopes: {} btreemap_v1_insert_blob_1024_32: total: - instructions: 5010649863 + instructions: 5010672456 heap_increase: 0 stable_memory_increase: 239 scopes: {} btreemap_v1_insert_blob_1024_4: total: - instructions: 5019150317 + instructions: 5019173114 heap_increase: 0 stable_memory_increase: 235 scopes: {} btreemap_v1_insert_blob_1024_512: total: - instructions: 5080393216 + instructions: 5080415945 heap_increase: 0 stable_memory_increase: 348 scopes: {} btreemap_v1_insert_blob_1024_64: total: - instructions: 5060085474 + instructions: 5060108441 heap_increase: 0 stable_memory_increase: 250 scopes: {} btreemap_v1_insert_blob_1024_8: total: - instructions: 5000808591 + instructions: 5000831473 heap_increase: 0 stable_memory_increase: 237 scopes: {} btreemap_v1_insert_blob_128_1024: total: - instructions: 1178017150 + instructions: 1178039726 heap_increase: 0 stable_memory_increase: 260 scopes: {} + btreemap_v1_insert_blob_128_32: + total: + instructions: 1000903808 + heap_increase: 0 + stable_memory_increase: 39 + scopes: {} btreemap_v1_insert_blob_16_1024: total: - instructions: 552825157 + instructions: 552845744 heap_increase: 0 stable_memory_increase: 215 scopes: {} + btreemap_v1_insert_blob_16_32: + total: + instructions: 372670059 + heap_increase: 0 + stable_memory_increase: 13 + scopes: {} btreemap_v1_insert_blob_256_1024: total: - instructions: 1754389880 + instructions: 1754412728 heap_increase: 0 stable_memory_increase: 292 scopes: {} + btreemap_v1_insert_blob_256_32: + total: + instructions: 1572859598 + heap_increase: 0 + stable_memory_increase: 69 + scopes: {} btreemap_v1_insert_blob_32_1024: total: - instructions: 586970666 + instructions: 586992426 heap_increase: 0 stable_memory_increase: 230 scopes: {} + btreemap_v1_insert_blob_32_32: + total: + instructions: 408475463 + heap_increase: 0 + stable_memory_increase: 17 + scopes: {} btreemap_v1_insert_blob_4_1024: total: - instructions: 497160150 + instructions: 497172084 heap_increase: 0 stable_memory_increase: 123 scopes: {} + btreemap_v1_insert_blob_4_32: + total: + instructions: 293170759 + heap_increase: 0 + stable_memory_increase: 6 + scopes: {} btreemap_v1_insert_blob_512_1024: total: - instructions: 2884865378 + instructions: 2884888294 heap_increase: 0 stable_memory_increase: 351 scopes: {} + btreemap_v1_insert_blob_512_32: + total: + instructions: 2733695210 + heap_increase: 0 + stable_memory_increase: 126 + scopes: {} btreemap_v1_insert_blob_64_1024: total: - instructions: 829845537 + instructions: 829867960 heap_increase: 0 stable_memory_increase: 245 scopes: {} + btreemap_v1_insert_blob_64_32: + total: + instructions: 650075636 + heap_increase: 0 + stable_memory_increase: 25 + scopes: {} btreemap_v1_insert_blob_8_1024: total: - instructions: 523376468 + instructions: 523394199 heap_increase: 0 stable_memory_increase: 183 scopes: {} + btreemap_v1_insert_blob_8_32: + total: + instructions: 332173141 + heap_increase: 0 + stable_memory_increase: 10 + scopes: {} btreemap_v1_insert_u64_blob8: total: - instructions: 339738737 + instructions: 339761585 heap_increase: 0 stable_memory_increase: 7 scopes: {} btreemap_v1_insert_u64_u64: total: - instructions: 345319699 + instructions: 345342581 heap_increase: 0 stable_memory_increase: 7 scopes: {} - btreemap_v1_pop_first_blob8_u64: + btreemap_v1_remove_blob8_u64: total: - instructions: 444701759 + instructions: 438619290 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_first_blob_1024_128: + btreemap_v1_remove_blob_1024_1024: total: - instructions: 9261568801 + instructions: 6655617002 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_first_blob_1024_16: + btreemap_v1_remove_blob_1024_128: total: - instructions: 9328030570 + instructions: 6358955616 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_first_blob_1024_256: + btreemap_v1_remove_blob_1024_16: total: - instructions: 9341547136 + instructions: 6316962376 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_first_blob_1024_32: + btreemap_v1_remove_blob_1024_256: total: - instructions: 9403739620 + instructions: 6393821738 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_first_blob_1024_4: + btreemap_v1_remove_blob_1024_32: total: - instructions: 9305128854 + instructions: 6290964623 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_first_blob_1024_512: + btreemap_v1_remove_blob_1024_4: total: - instructions: 9427090606 + instructions: 6324492180 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_first_blob_1024_64: + btreemap_v1_remove_blob_1024_512: total: - instructions: 9482575998 + instructions: 6512464451 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_first_blob_1024_8: + btreemap_v1_remove_blob_1024_64: total: - instructions: 9372654485 + instructions: 6394319160 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_first_blob_128_1024: + btreemap_v1_remove_blob_1024_8: total: - instructions: 2086100298 + instructions: 6335668255 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_first_blob_16_1024: + btreemap_v1_remove_blob_128_1024: total: - instructions: 843356103 + instructions: 1574699844 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_first_blob_256_1024: + btreemap_v1_remove_blob_128_32: total: - instructions: 3142976220 + instructions: 1293638651 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_first_blob_32_1024: + btreemap_v1_remove_blob_16_1024: total: - instructions: 959847828 + instructions: 758158742 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_first_blob_4_1024: + btreemap_v1_remove_blob_16_32: total: - instructions: 407363392 + instructions: 493141553 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_first_blob_512_1024: + btreemap_v1_remove_blob_256_1024: total: - instructions: 5295483250 + instructions: 2279187745 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_first_blob_64_1024: + btreemap_v1_remove_blob_256_32: total: - instructions: 1435171876 + instructions: 2018514857 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_first_blob_8_1024: + btreemap_v1_remove_blob_32_1024: total: - instructions: 685514410 + instructions: 827622133 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_first_u64_blob8: + btreemap_v1_remove_blob_32_32: total: - instructions: 556486284 + instructions: 555889629 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_first_u64_u64: + btreemap_v1_remove_blob_4_1024: total: - instructions: 559253008 + instructions: 486481876 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_last_blob8_u64: + btreemap_v1_remove_blob_4_32: total: - instructions: 430116592 + instructions: 325522867 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_last_blob_1024_128: + btreemap_v1_remove_blob_512_1024: total: - instructions: 9063791834 + instructions: 3749017652 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_last_blob_1024_16: + btreemap_v1_remove_blob_512_32: total: - instructions: 9120287777 + instructions: 3421720215 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_last_blob_1024_256: + btreemap_v1_remove_blob_64_1024: total: - instructions: 9045790381 + instructions: 1141031832 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_last_blob_1024_32: + btreemap_v1_remove_blob_64_32: total: - instructions: 9041569762 + instructions: 858320710 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_last_blob_1024_4: + btreemap_v1_remove_blob_8_1024: total: - instructions: 9141453888 + instructions: 644753912 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_last_blob_1024_512: + btreemap_v1_remove_blob_8_32: total: - instructions: 9253062372 + instructions: 445568657 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_last_blob_1024_64: + btreemap_v1_remove_u64_blob8: total: - instructions: 9304533659 + instructions: 485773174 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_last_blob_1024_8: + btreemap_v1_remove_u64_u64: total: - instructions: 9042228189 + instructions: 498958513 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_last_blob_128_1024: + btreemap_v2_contains_10mib_values: total: - instructions: 2031729139 + instructions: 146956522 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_last_blob_16_1024: + btreemap_v2_contains_blob8_u64: total: - instructions: 817230046 + instructions: 274635776 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_last_blob_256_1024: + btreemap_v2_contains_blob_1024_1024: total: - instructions: 3088595377 + instructions: 4901945251 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_last_blob_32_1024: + btreemap_v2_contains_blob_1024_128: total: - instructions: 938469562 + instructions: 4888210734 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_last_blob_4_1024: + btreemap_v2_contains_blob_1024_16: total: - instructions: 401390503 + instructions: 4885497662 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_last_blob_512_1024: + btreemap_v2_contains_blob_1024_256: total: - instructions: 5189818383 + instructions: 4834062224 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_last_blob_64_1024: + btreemap_v2_contains_blob_1024_32: total: - instructions: 1403273842 + instructions: 4819737816 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_last_blob_8_1024: + btreemap_v2_contains_blob_1024_4: total: - instructions: 677330739 + instructions: 4968435000 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_last_u64_blob8: + btreemap_v2_contains_blob_1024_512: total: - instructions: 544202288 + instructions: 4871976979 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_pop_last_u64_u64: + btreemap_v2_contains_blob_1024_64: total: - instructions: 546009865 + instructions: 4570430815 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob8_u64: + btreemap_v2_contains_blob_1024_8: total: - instructions: 438600480 + instructions: 4886342514 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_1024_128: + btreemap_v2_contains_blob_128_1024: total: - instructions: 6358931604 + instructions: 920401506 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_1024_16: + btreemap_v2_contains_blob_128_32: total: - instructions: 6316937914 + instructions: 920406767 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_1024_256: + btreemap_v2_contains_blob_16_1024: total: - instructions: 6393797546 + instructions: 297252343 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_1024_32: + btreemap_v2_contains_blob_16_32: total: - instructions: 6290940701 + instructions: 299535476 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_1024_4: + btreemap_v2_contains_blob_256_1024: total: - instructions: 6324468042 + instructions: 1485398875 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_1024_512: + btreemap_v2_contains_blob_256_32: total: - instructions: 6512440385 + instructions: 1486209076 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_1024_64: + btreemap_v2_contains_blob_32_1024: total: - instructions: 6394294842 + instructions: 331820465 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_1024_8: + btreemap_v2_contains_blob_32_32: total: - instructions: 6335644027 + instructions: 333405546 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_128_1024: + btreemap_v2_contains_blob_4_1024: total: - instructions: 1574675940 + instructions: 246678966 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_16_1024: + btreemap_v2_contains_blob_4_32: total: - instructions: 758136944 + instructions: 250921142 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_256_1024: + btreemap_v2_contains_blob_512_1024: total: - instructions: 2279163553 + instructions: 2605520383 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_32_1024: + btreemap_v2_contains_blob_512_32: total: - instructions: 827599093 + instructions: 2628510013 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_4_1024: + btreemap_v2_contains_blob_64_1024: total: - instructions: 486469240 + instructions: 573055426 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_512_1024: + btreemap_v2_contains_blob_64_32: total: - instructions: 3748993388 + instructions: 574901596 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_64_1024: + btreemap_v2_contains_blob_8_1024: total: - instructions: 1141008090 + instructions: 273333290 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_8_1024: + btreemap_v2_contains_blob_8_32: total: - instructions: 644735138 + instructions: 269074480 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_u64_blob8: + btreemap_v2_contains_u64_blob8: total: - instructions: 485748982 + instructions: 231487140 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_u64_u64: + btreemap_v2_contains_u64_u64: total: - instructions: 498934285 + instructions: 234707484 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_10mib_values: + btreemap_v2_contains_u64_vec8: total: - instructions: 142172404 + instructions: 231487140 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob8_u64: + btreemap_v2_contains_vec8_u64: total: - instructions: 274472580 + instructions: 363962662 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_1024_128: + btreemap_v2_contains_vec_1024_1024: total: - instructions: 4888113392 + instructions: 2862621265 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_1024_16: + btreemap_v2_contains_vec_1024_128: total: - instructions: 4885400370 + instructions: 2832968121 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_1024_256: + btreemap_v2_contains_vec_1024_16: total: - instructions: 4833964902 + instructions: 2847560840 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_1024_32: + btreemap_v2_contains_vec_1024_256: total: - instructions: 4819640354 + instructions: 2960901927 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_1024_4: + btreemap_v2_contains_vec_1024_32: total: - instructions: 4968337672 + instructions: 2813130169 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_1024_512: + btreemap_v2_contains_vec_1024_4: total: - instructions: 4871879643 + instructions: 2823437181 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_1024_64: + btreemap_v2_contains_vec_1024_512: total: - instructions: 4570333507 + instructions: 3022836247 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_1024_8: + btreemap_v2_contains_vec_1024_64: total: - instructions: 4886245198 + instructions: 2711158448 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_128_1024: + btreemap_v2_contains_vec_1024_8: total: - instructions: 920304158 + instructions: 2811706575 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_16_1024: + btreemap_v2_contains_vec_128_1024: total: - instructions: 297154911 + instructions: 816346609 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_256_1024: + btreemap_v2_contains_vec_128_32: total: - instructions: 1485301557 + instructions: 686306102 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_32_1024: + btreemap_v2_contains_vec_16_1024: total: - instructions: 331723097 + instructions: 518731437 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_4_1024: + btreemap_v2_contains_vec_16_32: total: - instructions: 246601950 + instructions: 380387260 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_512_1024: + btreemap_v2_contains_vec_256_1024: total: - instructions: 2605423069 + instructions: 1245905664 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_64_1024: + btreemap_v2_contains_vec_256_32: total: - instructions: 572958074 + instructions: 1113328035 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_8_1024: + btreemap_v2_contains_vec_32_1024: total: - instructions: 273235952 + instructions: 579467615 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_u64_blob8: + btreemap_v2_contains_vec_32_32: total: - instructions: 231389818 + instructions: 405559998 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_u64_u64: + btreemap_v2_contains_vec_4_1024: total: - instructions: 234571046 + instructions: 474044633 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_u64_vec8: + btreemap_v2_contains_vec_4_32: total: - instructions: 231389818 + instructions: 357895719 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec8_u64: + btreemap_v2_contains_vec_512_1024: total: - instructions: 363865474 + instructions: 1874954825 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_1024_128: + btreemap_v2_contains_vec_512_32: total: - instructions: 2831338815 + instructions: 1762465969 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_1024_16: + btreemap_v2_contains_vec_64_1024: total: - instructions: 2846038490 + instructions: 636979765 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_1024_256: + btreemap_v2_contains_vec_64_32: total: - instructions: 2959184349 + instructions: 478802000 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_1024_32: + btreemap_v2_contains_vec_8_1024: total: - instructions: 2811608296 + instructions: 477523763 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_1024_4: + btreemap_v2_contains_vec_8_32: total: - instructions: 2821905627 + instructions: 359188931 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_1024_512: + btreemap_v2_get_10mib_values: total: - instructions: 3020833972 + instructions: 1232222453 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_1024_64: + btreemap_v2_get_blob8_u64: total: - instructions: 2709714173 + instructions: 297597506 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_1024_8: + btreemap_v2_get_blob_1024_1024: total: - instructions: 2810204001 + instructions: 4970104679 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_128_1024: + btreemap_v2_get_blob_1024_128: total: - instructions: 814724920 + instructions: 4951884853 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_16_1024: + btreemap_v2_get_blob_1024_16: total: - instructions: 517258665 + instructions: 4947724611 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_256_1024: + btreemap_v2_get_blob_1024_256: total: - instructions: 1244168553 + instructions: 4898416366 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_32_1024: + btreemap_v2_get_blob_1024_32: total: - instructions: 577978742 + instructions: 4882558153 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_4_1024: + btreemap_v2_get_blob_1024_4: total: - instructions: 472658300 + instructions: 5027657762 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_512_1024: + btreemap_v2_get_blob_1024_512: total: - instructions: 1872953819 + instructions: 4937567018 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_64_1024: + btreemap_v2_get_blob_1024_64: total: - instructions: 635476669 + instructions: 4633714887 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_8_1024: + btreemap_v2_get_blob_1024_8: total: - instructions: 476082704 + instructions: 4947502503 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_10mib_values: + btreemap_v2_get_blob_128_1024: total: - instructions: 1227438335 + instructions: 952489580 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob8_u64: + btreemap_v2_get_blob_128_32: total: - instructions: 297434310 + instructions: 947210703 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_1024_128: + btreemap_v2_get_blob_16_1024: total: - instructions: 4951787511 + instructions: 322983678 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_1024_16: + btreemap_v2_get_blob_16_32: total: - instructions: 4947627319 + instructions: 320241007 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_1024_256: + btreemap_v2_get_blob_256_1024: total: - instructions: 4898319044 + instructions: 1522607391 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_1024_32: + btreemap_v2_get_blob_256_32: total: - instructions: 4882460691 + instructions: 1518131665 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_1024_4: + btreemap_v2_get_blob_32_1024: total: - instructions: 5027560434 + instructions: 358156701 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_1024_512: + btreemap_v2_get_blob_32_32: total: - instructions: 4937469682 + instructions: 354316687 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_1024_64: + btreemap_v2_get_blob_4_1024: total: - instructions: 4633617579 + instructions: 268482525 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_1024_8: + btreemap_v2_get_blob_4_32: total: - instructions: 4947405187 + instructions: 268054016 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_128_1024: + btreemap_v2_get_blob_512_1024: total: - instructions: 952392232 + instructions: 2652993640 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_16_1024: + btreemap_v2_get_blob_512_32: total: - instructions: 322886246 + instructions: 2670661275 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_256_1024: + btreemap_v2_get_blob_64_1024: total: - instructions: 1522510073 + instructions: 602568053 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_32_1024: + btreemap_v2_get_blob_64_32: total: - instructions: 358059333 + instructions: 599067839 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_4_1024: + btreemap_v2_get_blob_8_1024: total: - instructions: 268405509 + instructions: 299806568 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_512_1024: + btreemap_v2_get_blob_8_32: total: - instructions: 2652896326 + instructions: 289733637 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_64_1024: + btreemap_v2_get_u64_blob8: total: - instructions: 602470701 + instructions: 250114887 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_8_1024: + btreemap_v2_get_u64_u64: total: - instructions: 299709230 + instructions: 256842703 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_u64_blob8: + btreemap_v2_get_u64_vec8: total: - instructions: 250017565 + instructions: 252027420 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_u64_u64: + btreemap_v2_get_vec8_u64: total: - instructions: 256706265 + instructions: 374219203 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_u64_vec8: - total: - instructions: 251930098 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_get_vec8_u64: + btreemap_v2_get_vec_1024_1024: total: - instructions: 374122015 + instructions: 2889476660 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_1024_128: total: - instructions: 2856597689 + instructions: 2858226995 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_1024_16: total: - instructions: 2872453451 + instructions: 2873975801 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_1024_256: total: - instructions: 2977865537 + instructions: 2979583115 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_1024_32: total: - instructions: 2847838344 + instructions: 2849360217 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_1024_4: total: - instructions: 2859810076 + instructions: 2861341630 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_1024_512: total: - instructions: 3048462843 + instructions: 3050465118 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_1024_64: total: - instructions: 2743478946 + instructions: 2744923221 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_1024_8: total: - instructions: 2836135831 + instructions: 2837638405 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_128_1024: total: - instructions: 849857473 + instructions: 851479162 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_128_32: + total: + instructions: 697241081 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_16_1024: total: - instructions: 545476822 + instructions: 546949594 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_16_32: + total: + instructions: 389500176 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_256_1024: total: - instructions: 1273898725 + instructions: 1275635836 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_256_32: + total: + instructions: 1177240972 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_1024: total: - instructions: 599978021 + instructions: 601466894 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_32_32: + total: + instructions: 413774110 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_4_1024: total: - instructions: 499596844 + instructions: 500983177 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_4_32: + total: + instructions: 367080455 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_512_1024: total: - instructions: 1901150140 + instructions: 1903151146 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_512_32: + total: + instructions: 1769754252 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_64_1024: total: - instructions: 672281492 + instructions: 673784588 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_64_32: + total: + instructions: 487241630 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_8_1024: total: - instructions: 502950891 + instructions: 504391950 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_8_32: + total: + instructions: 368123300 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_insert_10mib_values: total: - instructions: 5239411147 + instructions: 5252724364 heap_increase: 322 stable_memory_increase: 3613 scopes: {} btreemap_v2_insert_blob8_u64: total: - instructions: 441009397 + instructions: 441171094 heap_increase: 0 stable_memory_increase: 4 scopes: {} + btreemap_v2_insert_blob_1024_1024: + total: + instructions: 5180050332 + heap_increase: 0 + stable_memory_increase: 261 + scopes: {} btreemap_v2_insert_blob_1024_128: total: - instructions: 5106726267 + instructions: 5106840293 heap_increase: 0 stable_memory_increase: 196 scopes: {} btreemap_v2_insert_blob_1024_16: total: - instructions: 5115180811 + instructions: 5115294930 heap_increase: 1 stable_memory_increase: 181 scopes: {} btreemap_v2_insert_blob_1024_256: total: - instructions: 5120265704 + instructions: 5120379520 heap_increase: 0 stable_memory_increase: 219 scopes: {} btreemap_v2_insert_blob_1024_32: total: - instructions: 5108875913 + instructions: 5108988225 heap_increase: 0 stable_memory_increase: 180 scopes: {} btreemap_v2_insert_blob_1024_4: total: - instructions: 5098062004 + instructions: 5098176833 heap_increase: 0 stable_memory_increase: 176 scopes: {} btreemap_v2_insert_blob_1024_512: total: - instructions: 5179936939 + instructions: 5180050332 heap_increase: 0 stable_memory_increase: 261 scopes: {} btreemap_v2_insert_blob_1024_64: total: - instructions: 5159014982 + instructions: 5159128735 heap_increase: 0 stable_memory_increase: 188 scopes: {} btreemap_v2_insert_blob_1024_8: total: - instructions: 5103017728 + instructions: 5103131870 heap_increase: 0 stable_memory_increase: 178 scopes: {} btreemap_v2_insert_blob_128_1024: total: - instructions: 1278102996 + instructions: 1278216760 heap_increase: 0 stable_memory_increase: 195 scopes: {} + btreemap_v2_insert_blob_128_32: + total: + instructions: 1100595600 + heap_increase: 0 + stable_memory_increase: 30 + scopes: {} btreemap_v2_insert_blob_16_1024: total: - instructions: 647475677 + instructions: 647586576 heap_increase: 0 stable_memory_increase: 161 scopes: {} + btreemap_v2_insert_blob_16_32: + total: + instructions: 473655877 + heap_increase: 0 + stable_memory_increase: 10 + scopes: {} btreemap_v2_insert_blob_256_1024: total: - instructions: 1852405490 + instructions: 1852519260 heap_increase: 0 stable_memory_increase: 219 scopes: {} + btreemap_v2_insert_blob_256_32: + total: + instructions: 1672107290 + heap_increase: 0 + stable_memory_increase: 51 + scopes: {} btreemap_v2_insert_blob_32_1024: total: - instructions: 684264479 + instructions: 684377239 heap_increase: 0 stable_memory_increase: 173 scopes: {} + btreemap_v2_insert_blob_32_32: + total: + instructions: 511032338 + heap_increase: 0 + stable_memory_increase: 13 + scopes: {} btreemap_v2_insert_blob_4_1024: total: - instructions: 593732538 + instructions: 593823568 heap_increase: 0 stable_memory_increase: 92 scopes: {} + btreemap_v2_insert_blob_4_32: + total: + instructions: 392681017 + heap_increase: 0 + stable_memory_increase: 4 + scopes: {} btreemap_v2_insert_blob_512_1024: total: - instructions: 2978766142 + instructions: 2978880860 heap_increase: 0 stable_memory_increase: 263 scopes: {} + btreemap_v2_insert_blob_512_32: + total: + instructions: 2831388920 + heap_increase: 0 + stable_memory_increase: 94 + scopes: {} btreemap_v2_insert_blob_64_1024: total: - instructions: 925813019 + instructions: 925927362 heap_increase: 0 stable_memory_increase: 183 scopes: {} + btreemap_v2_insert_blob_64_32: + total: + instructions: 751244586 + heap_increase: 0 + stable_memory_increase: 18 + scopes: {} btreemap_v2_insert_blob_8_1024: total: - instructions: 625100458 + instructions: 625204149 heap_increase: 0 stable_memory_increase: 138 scopes: {} + btreemap_v2_insert_blob_8_32: + total: + instructions: 436268806 + heap_increase: 0 + stable_memory_increase: 7 + scopes: {} btreemap_v2_insert_u64_blob8: total: - instructions: 420138321 + instructions: 420258959 heap_increase: 0 stable_memory_increase: 5 scopes: {} btreemap_v2_insert_u64_u64: total: - instructions: 428754946 + instructions: 428901961 heap_increase: 0 stable_memory_increase: 6 scopes: {} btreemap_v2_insert_u64_vec8: total: - instructions: 425713956 + instructions: 425827518 heap_increase: 0 stable_memory_increase: 21 scopes: {} btreemap_v2_insert_vec8_u64: total: - instructions: 579978908 + instructions: 580082886 heap_increase: 0 stable_memory_increase: 16 scopes: {} + btreemap_v2_insert_vec_1024_1024: + total: + instructions: 3574266984 + heap_increase: 0 + stable_memory_increase: 338 + scopes: {} btreemap_v2_insert_vec_1024_128: total: - instructions: 3315448237 + instructions: 3317557144 heap_increase: 0 stable_memory_increase: 193 scopes: {} btreemap_v2_insert_vec_1024_16: total: - instructions: 3315968588 + instructions: 3317923328 heap_increase: 1 stable_memory_increase: 180 scopes: {} btreemap_v2_insert_vec_1024_256: total: - instructions: 3358500614 + instructions: 3360733153 heap_increase: 0 stable_memory_increase: 210 scopes: {} btreemap_v2_insert_vec_1024_32: total: - instructions: 3332839138 + instructions: 3334793749 heap_increase: 0 stable_memory_increase: 179 scopes: {} btreemap_v2_insert_vec_1024_4: total: - instructions: 3314554499 + instructions: 3316509978 heap_increase: 0 stable_memory_increase: 179 scopes: {} btreemap_v2_insert_vec_1024_512: total: - instructions: 3467612167 + instructions: 3470261607 heap_increase: 0 stable_memory_increase: 253 scopes: {} btreemap_v2_insert_vec_1024_64: total: - instructions: 3327082541 + instructions: 3329042185 heap_increase: 0 stable_memory_increase: 180 scopes: {} btreemap_v2_insert_vec_1024_8: total: - instructions: 3303085278 + instructions: 3305034354 heap_increase: 0 stable_memory_increase: 179 scopes: {} btreemap_v2_insert_vec_128_1024: total: - instructions: 1487039111 + instructions: 1489131860 heap_increase: 0 stable_memory_increase: 191 scopes: {} + btreemap_v2_insert_vec_128_32: + total: + instructions: 1029233881 + heap_increase: 0 + stable_memory_increase: 34 + scopes: {} btreemap_v2_insert_vec_16_1024: total: - instructions: 1150131140 + instructions: 1151995080 heap_increase: 0 stable_memory_increase: 161 scopes: {} + btreemap_v2_insert_vec_16_32: + total: + instructions: 622127676 + heap_increase: 0 + stable_memory_increase: 19 + scopes: {} btreemap_v2_insert_vec_256_1024: total: - instructions: 1938997627 + instructions: 1941235220 heap_increase: 0 stable_memory_increase: 209 scopes: {} + btreemap_v2_insert_vec_256_32: + total: + instructions: 1532612070 + heap_increase: 0 + stable_memory_increase: 57 + scopes: {} btreemap_v2_insert_vec_32_1024: total: - instructions: 1221419468 + instructions: 1223329953 heap_increase: 0 stable_memory_increase: 171 scopes: {} + btreemap_v2_insert_vec_32_32: + total: + instructions: 663365201 + heap_increase: 0 + stable_memory_increase: 20 + scopes: {} btreemap_v2_insert_vec_4_1024: total: - instructions: 1020891918 + instructions: 1022438177 heap_increase: 0 stable_memory_increase: 94 scopes: {} + btreemap_v2_insert_vec_4_32: + total: + instructions: 546203754 + heap_increase: 0 + stable_memory_increase: 11 + scopes: {} btreemap_v2_insert_vec_512_1024: total: - instructions: 2521989177 + instructions: 2524636327 heap_increase: 0 stable_memory_increase: 253 scopes: {} + btreemap_v2_insert_vec_512_32: + total: + instructions: 2145340675 + heap_increase: 0 + stable_memory_increase: 94 + scopes: {} btreemap_v2_insert_vec_64_1024: total: - instructions: 1311755313 + instructions: 1313690217 heap_increase: 0 stable_memory_increase: 176 scopes: {} + btreemap_v2_insert_vec_64_32: + total: + instructions: 762602515 + heap_increase: 0 + stable_memory_increase: 24 + scopes: {} btreemap_v2_insert_vec_8_1024: total: - instructions: 1111244572 + instructions: 1113016466 heap_increase: 0 stable_memory_increase: 139 scopes: {} + btreemap_v2_insert_vec_8_32: + total: + instructions: 595223082 + heap_increase: 0 + stable_memory_increase: 16 + scopes: {} btreemap_v2_mem_manager_contains_blob512_u64: total: instructions: 2707283290 @@ -1381,19 +1693,19 @@ benches: scopes: {} btreemap_v2_mem_manager_contains_u64_u64: total: - instructions: 312538209 + instructions: 312585153 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_contains_u64_vec512: total: - instructions: 390417972 + instructions: 391197453 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_contains_vec512_u64: total: - instructions: 1749726676 + instructions: 1750503502 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1411,1028 +1723,416 @@ benches: scopes: {} btreemap_v2_mem_manager_get_u64_u64: total: - instructions: 336204098 + instructions: 336251042 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_u64_vec512: total: - instructions: 427374471 + instructions: 428153952 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_vec512_u64: total: - instructions: 1787291841 + instructions: 1788068667 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_blob512_u64: total: - instructions: 2955935009 + instructions: 2955955234 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_u64_blob512: total: - instructions: 644441819 + instructions: 644462309 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_u64_u64: total: - instructions: 557964960 + instructions: 558023737 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_u64_vec512: total: - instructions: 891415932 + instructions: 892464403 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_vec512_u64: total: - instructions: 2227238424 + instructions: 2228280135 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_blob512_u64: total: - instructions: 3835007839 + instructions: 3835034843 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_u64_blob512: total: - instructions: 948754885 + instructions: 948782285 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_u64_u64: total: - instructions: 810683242 + instructions: 810762066 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_u64_vec512: total: - instructions: 1282544441 + instructions: 1283931285 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_vec512_u64: total: - instructions: 3296920864 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_blob8_u64: - total: - instructions: 617279143 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_blob_1024_128: - total: - instructions: 9400851440 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_blob_1024_16: - total: - instructions: 9438122841 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_blob_1024_256: - total: - instructions: 9461876208 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_blob_1024_32: - total: - instructions: 9537411251 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_blob_1024_4: - total: - instructions: 9441581485 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_blob_1024_512: - total: - instructions: 9552298128 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_blob_1024_64: - total: - instructions: 9625674110 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_blob_1024_8: - total: - instructions: 9516940578 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_blob_128_1024: - total: - instructions: 2267026668 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_blob_16_1024: - total: - instructions: 1000805582 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_blob_256_1024: - total: - instructions: 3321915903 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_blob_32_1024: - total: - instructions: 1135687838 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_blob_4_1024: - total: - instructions: 501524415 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_blob_512_1024: - total: - instructions: 5461844680 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_blob_64_1024: - total: - instructions: 1613002699 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_blob_8_1024: - total: - instructions: 834614348 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_u64_blob8: - total: - instructions: 713870173 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_u64_u64: - total: - instructions: 727949255 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_u64_vec8: - total: - instructions: 719776851 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_vec8_u64: - total: - instructions: 785947853 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_vec_1024_128: - total: - instructions: 5761991658 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_vec_1024_16: - total: - instructions: 5717179787 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_vec_1024_256: - total: - instructions: 5829657252 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_vec_1024_32: - total: - instructions: 5810269597 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_vec_1024_4: - total: - instructions: 5742300942 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_pop_first_vec_1024_512: - total: - instructions: 5986020811 + instructions: 3298308988 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_first_vec_1024_64: + btreemap_v2_remove_10mib_values: total: - instructions: 5811504893 + instructions: 5578668875 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 657 scopes: {} - btreemap_v2_pop_first_vec_1024_8: + btreemap_v2_remove_blob8_u64: total: - instructions: 5754711207 + instructions: 587236879 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_first_vec_128_1024: + btreemap_v2_remove_blob_1024_1024: total: - instructions: 2291883874 + instructions: 6766827490 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_first_vec_16_1024: + btreemap_v2_remove_blob_1024_128: total: - instructions: 1607117801 + instructions: 6476290578 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_first_vec_256_1024: + btreemap_v2_remove_blob_1024_16: total: - instructions: 2998053927 + instructions: 6430623071 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_first_vec_32_1024: + btreemap_v2_remove_blob_1024_256: total: - instructions: 1813506621 + instructions: 6510600309 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_first_vec_4_1024: + btreemap_v2_remove_blob_1024_32: total: - instructions: 890314532 + instructions: 6416422975 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_first_vec_512_1024: + btreemap_v2_remove_blob_1024_4: total: - instructions: 4111225415 + instructions: 6429060375 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_first_vec_64_1024: + btreemap_v2_remove_blob_1024_512: total: - instructions: 1994569641 + instructions: 6629131704 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_first_vec_8_1024: + btreemap_v2_remove_blob_1024_64: total: - instructions: 1377353608 + instructions: 6499721027 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_blob8_u64: + btreemap_v2_remove_blob_1024_8: total: - instructions: 600477753 + instructions: 6447589404 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_blob_1024_128: + btreemap_v2_remove_blob_128_1024: total: - instructions: 9216988013 + instructions: 1717818906 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_blob_1024_16: + btreemap_v2_remove_blob_128_32: total: - instructions: 9265619121 + instructions: 1439845922 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_blob_1024_256: + btreemap_v2_remove_blob_16_1024: total: - instructions: 9184646821 + instructions: 896115058 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_blob_1024_32: + btreemap_v2_remove_blob_16_32: total: - instructions: 9214347063 + instructions: 631590656 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_blob_1024_4: + btreemap_v2_remove_blob_256_1024: total: - instructions: 9276743285 + instructions: 2418039140 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_blob_1024_512: + btreemap_v2_remove_blob_256_32: total: - instructions: 9384603702 + instructions: 2163168803 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_blob_1024_64: + btreemap_v2_remove_blob_32_1024: total: - instructions: 9473867317 + instructions: 966888837 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_blob_1024_8: + btreemap_v2_remove_blob_32_32: total: - instructions: 9202231505 + instructions: 699191529 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_blob_128_1024: + btreemap_v2_remove_blob_4_1024: total: - instructions: 2214741972 + instructions: 600196229 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_blob_16_1024: + btreemap_v2_remove_blob_4_32: total: - instructions: 984014890 + instructions: 439955818 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_blob_256_1024: + btreemap_v2_remove_blob_512_1024: total: - instructions: 3267458376 + instructions: 3878377303 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_blob_32_1024: + btreemap_v2_remove_blob_512_32: total: - instructions: 1115373751 + instructions: 3554255614 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_blob_4_1024: + btreemap_v2_remove_blob_64_1024: total: - instructions: 495470183 + instructions: 1281053606 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_blob_512_1024: + btreemap_v2_remove_blob_64_32: total: - instructions: 5355362736 + instructions: 1001240129 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_blob_64_1024: + btreemap_v2_remove_blob_8_1024: total: - instructions: 1586122208 + instructions: 776888935 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_blob_8_1024: + btreemap_v2_remove_blob_8_32: total: - instructions: 826782675 + instructions: 584636996 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_u64_blob8: + btreemap_v2_remove_u64_blob8: total: - instructions: 701494074 + instructions: 601162893 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_u64_u64: + btreemap_v2_remove_u64_u64: total: - instructions: 714081947 + instructions: 623672283 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_u64_vec8: + btreemap_v2_remove_u64_vec8: total: - instructions: 705741826 + instructions: 607868912 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_vec8_u64: + btreemap_v2_remove_vec8_u64: total: - instructions: 766206340 + instructions: 749010887 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_vec_1024_128: + btreemap_v2_remove_vec_1024_1024: total: - instructions: 6011533162 + instructions: 5406640522 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_vec_1024_16: + btreemap_v2_remove_vec_1024_128: total: - instructions: 5989724884 + instructions: 5037694814 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_vec_1024_256: + btreemap_v2_remove_vec_1024_16: total: - instructions: 6050160348 + instructions: 4868102750 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_vec_1024_32: + btreemap_v2_remove_vec_1024_256: total: - instructions: 5993230156 + instructions: 5274752911 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_vec_1024_4: + btreemap_v2_remove_vec_1024_32: total: - instructions: 6019019977 + instructions: 4935757647 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_vec_1024_512: + btreemap_v2_remove_vec_1024_4: total: - instructions: 6247725686 + instructions: 4902549856 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_vec_1024_64: + btreemap_v2_remove_vec_1024_512: total: - instructions: 6106283157 + instructions: 5450776888 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_vec_1024_8: + btreemap_v2_remove_vec_1024_64: total: - instructions: 5962128160 + instructions: 4972052377 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_vec_128_1024: + btreemap_v2_remove_vec_1024_8: total: - instructions: 2314319264 + instructions: 4888808552 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_vec_16_1024: + btreemap_v2_remove_vec_128_1024: total: - instructions: 1595336286 + instructions: 2165768929 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_vec_256_1024: + btreemap_v2_remove_vec_128_32: total: - instructions: 3053468325 + instructions: 1345142821 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_vec_32_1024: + btreemap_v2_remove_vec_16_1024: total: - instructions: 1808743752 + instructions: 1560625043 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_vec_4_1024: + btreemap_v2_remove_vec_16_32: total: - instructions: 884661229 + instructions: 784497357 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_vec_512_1024: + btreemap_v2_remove_vec_256_1024: total: - instructions: 4242078574 + instructions: 2834399048 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_vec_64_1024: + btreemap_v2_remove_vec_256_32: total: - instructions: 2001861757 + instructions: 2221632160 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_pop_last_vec_8_1024: + btreemap_v2_remove_vec_32_1024: total: - instructions: 1373780091 + instructions: 1685299577 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_range_count_1k_0b: + btreemap_v2_remove_vec_32_32: total: - instructions: 16983 + instructions: 839278513 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_range_count_1k_10kib: + btreemap_v2_remove_vec_4_1024: total: - instructions: 2453957 + instructions: 1105122357 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_range_count_20_10mib: + btreemap_v2_remove_vec_4_32: total: - instructions: 20564624 + instructions: 594781301 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_range_key_sum_1k_0b: + btreemap_v2_remove_vec_512_1024: total: - instructions: 17617 + instructions: 3902171001 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_range_key_sum_1k_10kib: + btreemap_v2_remove_vec_512_32: total: - instructions: 57293392 + instructions: 3146897497 heap_increase: 0 - stable_memory_increase: 0 + stable_memory_increase: 1 scopes: {} - btreemap_v2_range_key_sum_20_10mib: + btreemap_v2_remove_vec_64_1024: total: - instructions: 1105818529 + instructions: 1880863164 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_range_value_sum_1k_0b: + btreemap_v2_remove_vec_64_32: total: - instructions: 17631 + instructions: 972971544 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_range_value_sum_1k_10kib: + btreemap_v2_remove_vec_8_1024: total: - instructions: 57305388 + instructions: 1413492230 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_range_value_sum_20_10mib: + btreemap_v2_remove_vec_8_32: total: - instructions: 1105818765 + instructions: 736017657 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_10mib_values: - total: - instructions: 5564361780 - heap_increase: 0 - stable_memory_increase: 657 - scopes: {} - btreemap_v2_remove_blob8_u64: - total: - instructions: 587060364 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_blob_1024_128: - total: - instructions: 6476156404 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_blob_1024_16: - total: - instructions: 6430488735 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_blob_1024_256: - total: - instructions: 6510466761 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_blob_1024_32: - total: - instructions: 6416289543 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_blob_1024_4: - total: - instructions: 6428926805 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_blob_1024_512: - total: - instructions: 6628997702 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_blob_1024_64: - total: - instructions: 6499586873 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_blob_1024_8: - total: - instructions: 6447455642 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_blob_128_1024: - total: - instructions: 1717684218 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_blob_16_1024: - total: - instructions: 895985762 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_blob_256_1024: - total: - instructions: 2417905594 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_blob_32_1024: - total: - instructions: 966757633 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_blob_4_1024: - total: - instructions: 600093407 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_blob_512_1024: - total: - instructions: 3878241779 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_blob_64_1024: - total: - instructions: 1280920638 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_blob_8_1024: - total: - instructions: 776768069 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_u64_blob8: - total: - instructions: 601012747 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_u64_u64: - total: - instructions: 623495817 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_u64_vec8: - total: - instructions: 607735576 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_vec8_u64: - total: - instructions: 748888529 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_vec_1024_128: - total: - instructions: 5035221138 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_vec_1024_16: - total: - instructions: 4865772312 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_vec_1024_256: - total: - instructions: 5272124100 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_vec_1024_32: - total: - instructions: 4933428003 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_vec_1024_4: - total: - instructions: 4900218523 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_vec_1024_512: - total: - instructions: 5447497576 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_vec_1024_64: - total: - instructions: 4969706493 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_vec_1024_8: - total: - instructions: 4886477209 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_vec_128_1024: - total: - instructions: 2163287854 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_vec_16_1024: - total: - instructions: 1558378991 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_vec_256_1024: - total: - instructions: 2831772215 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_vec_32_1024: - total: - instructions: 1683024896 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_vec_4_1024: - total: - instructions: 1103313327 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_vec_512_1024: - total: - instructions: 3898865886 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_vec_64_1024: - total: - instructions: 1878533979 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_remove_vec_8_1024: - total: - instructions: 1411377325 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_scan_iter_1k_0b: - total: - instructions: 1554259 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_scan_iter_1k_10kib: - total: - instructions: 57130450 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_scan_iter_20_10mib: - total: - instructions: 1103720742 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_scan_iter_rev_1k_0b: - total: - instructions: 1556497 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_scan_iter_rev_1k_10kib: - total: - instructions: 57108188 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_scan_iter_rev_20_10mib: - total: - instructions: 1103720331 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_scan_keys_1k_0b: - total: - instructions: 984705 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_scan_keys_1k_10kib: - total: - instructions: 2398023 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_scan_keys_20_10mib: - total: - instructions: 18466001 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_scan_keys_rev_1k_0b: - total: - instructions: 985803 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_scan_keys_rev_1k_10kib: - total: - instructions: 2378116 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_scan_keys_rev_20_10mib: - total: - instructions: 18466011 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_scan_values_1k_0b: - total: - instructions: 1564425 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_scan_values_1k_10kib: - total: - instructions: 57140616 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_scan_values_20_10mib: - total: - instructions: 1103720944 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_scan_values_rev_1k_0b: - total: - instructions: 1566269 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_scan_values_rev_1k_10kib: - total: - instructions: 57117960 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v2_scan_values_rev_20_10mib: - total: - instructions: 1103720527 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - memory_manager_baseline: - total: - instructions: 1176576907 - heap_increase: 0 - stable_memory_increase: 8000 - scopes: {} - memory_manager_grow: - total: - instructions: 346600495 - heap_increase: 2 - stable_memory_increase: 32000 - scopes: {} - memory_manager_overhead: - total: - instructions: 1181961433 - heap_increase: 0 - stable_memory_increase: 8320 - scopes: {} - vec_get_blob_128: - total: - instructions: 19216242 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - vec_get_blob_16: - total: - instructions: 6432226 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - vec_get_blob_32: - total: - instructions: 7151657 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - vec_get_blob_4: - total: - instructions: 4869627 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - vec_get_blob_4_mem_manager: - total: - instructions: 7236977 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - vec_get_blob_64: - total: - instructions: 11320056 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - vec_get_blob_64_mem_manager: - total: - instructions: 13640204 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - vec_get_blob_8: - total: - instructions: 5776205 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - vec_get_u64: - total: - instructions: 5330306 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - vec_insert_blob_128: - total: - instructions: 4151425 - heap_increase: 0 - stable_memory_increase: 19 - scopes: {} - vec_insert_blob_16: - total: - instructions: 3316228 - heap_increase: 0 - stable_memory_increase: 2 - scopes: {} - vec_insert_blob_32: - total: - instructions: 3435468 - heap_increase: 0 - stable_memory_increase: 5 - scopes: {} - vec_insert_blob_4: - total: - instructions: 3227469 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - vec_insert_blob_64: - total: - instructions: 3675805 - heap_increase: 0 - stable_memory_increase: 9 - scopes: {} - vec_insert_blob_8: - total: - instructions: 3256890 - heap_increase: 0 - stable_memory_increase: 1 - scopes: {} - vec_insert_u64: - total: - instructions: 5929433 - heap_increase: 0 - stable_memory_increase: 1 - scopes: {} version: 0.1.11 From f7f17625b2ffdb8db9b380a0b7fbe970eb25d76b Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 16:35:51 +0200 Subject: [PATCH 35/68] lazy loaded keys --- src/btreemap.rs | 100 +++++++----- src/btreemap/iter.rs | 29 ++-- src/btreemap/node.rs | 344 ++++++++++++++++++++++++++++++---------- src/btreemap/node/v1.rs | 69 +++++--- src/btreemap/node/v2.rs | 65 ++++---- 5 files changed, 417 insertions(+), 190 deletions(-) diff --git a/src/btreemap.rs b/src/btreemap.rs index 7d7caa3a..e7e4c457 100644 --- a/src/btreemap.rs +++ b/src/btreemap.rs @@ -366,7 +366,7 @@ where let mut root = self.load_node(self.root_addr); // Check if the key already exists in the root. - if let Ok(idx) = root.search(&key) { + if let Ok(idx) = root.search(&key, self.memory()) { // The key exists. Overwrite it and return the previous value. let (_, previous_value) = root.swap_entry(idx, (key, value), self.memory()); self.save_node(&mut root); @@ -409,7 +409,7 @@ where assert!(!node.is_full()); // Look for the key in the node. - match node.search(&key) { + match node.search(&key, self.memory()) { Ok(idx) => { // The key is already in the node. // Overwrite it and return the previous value. @@ -442,7 +442,7 @@ where if child.is_full() { // Check if the key already exists in the child. - if let Ok(idx) = child.search(&key) { + if let Ok(idx) = child.search(&key, self.memory()) { // The key exists. Overwrite it and return the previous value. let (_, previous_value) = child.swap_entry(idx, (key, value), self.memory()); @@ -455,7 +455,7 @@ where // The children have now changed. Search again for // the child where we need to store the entry in. - let idx = node.search(&key).unwrap_or_else(|idx| idx); + let idx = node.search(&key, self.memory()).unwrap_or_else(|idx| idx); child = self.load_node(node.child(idx)); } @@ -469,7 +469,7 @@ where } } - /// Takes as input a nonfull internal `node` and index to its full child, then + /// Takes as input a non-full internal `node` and index to its full child, then /// splits this child into two, adding an additional child to `node`. /// /// Example: @@ -535,7 +535,7 @@ where { let node = self.load_node(node_addr); // Look for the key in the current node. - match node.search(key) { + match node.search(key, self.memory()) { Ok(idx) => Some(f(node, idx)), // Key found: apply `f`. Err(idx) => match node.node_type() { NodeType::Leaf => None, // At a leaf: key not present. @@ -652,7 +652,7 @@ where match node.node_type() { NodeType::Leaf => { - match node.search(key) { + match node.search(key, self.memory()) { Ok(idx) => { // Case 1: The node is a leaf node and the key exists in it. // This is the simplest case. The key is removed from the leaf. @@ -679,7 +679,7 @@ where } } NodeType::Internal => { - match node.search(key) { + match node.search(key, self.memory()) { Ok(idx) => { // Case 2: The node is an internal node and the key exists in it. @@ -1310,10 +1310,40 @@ mod test { } } - macro_rules! verify_and_run { - ($runner:ident, $K:ty, $V:ty) => {{ + /// Asserts that the associated `BOUND` for `$ty` is _not_ `Unbounded`. + macro_rules! assert_bounded { + ($ty:ty) => { + assert_ne!(<$ty>::BOUND, StorableBound::Unbounded, "Must be Bounded"); + }; + } + + /// Asserts that the associated `BOUND` for `$ty` _is_ `Unbounded`. + macro_rules! assert_unbounded { + ($ty:ty) => { + assert_eq!(<$ty>::BOUND, StorableBound::Unbounded, "Must be Unbounded"); + }; + } + + macro_rules! run_with_key { + ($runner:ident, $K:ty) => {{ verify_monotonic::<$K>(); - $runner::<$K, $V>(); + + // Empty value. + $runner::<$K, ()>(); + + // Bounded values. + assert_bounded!(u32); + $runner::<$K, u32>(); + + assert_bounded!(Blob<20>); + $runner::<$K, Blob<20>>(); + + // Unbounded values. + assert_unbounded!(MonotonicVec32); + $runner::<$K, MonotonicVec32>(); + + assert_unbounded!(MonotonicString32); + $runner::<$K, MonotonicString32>(); }}; } @@ -1322,37 +1352,19 @@ mod test { ($name:ident, $runner:ident) => { #[test] fn $name() { - use StorableBound::Unbounded; - - // Set, empty value, bounded. - { - type Value = (); - assert_ne!(::BOUND, Unbounded, "Must be Bounded"); - verify_and_run!($runner, u32, Value); - verify_and_run!($runner, Blob<10>, Value); - verify_and_run!($runner, MonotonicVec32, Value); - verify_and_run!($runner, MonotonicString32, Value); - } + // Bounded keys. + assert_bounded!(u32); + run_with_key!($runner, u32); - // Map, bounded value. - { - type Value = u32; - assert_ne!(Value::BOUND, Unbounded, "Must be Bounded"); - verify_and_run!($runner, u32, Value); - verify_and_run!($runner, Blob<10>, Value); - verify_and_run!($runner, MonotonicVec32, Value); - verify_and_run!($runner, MonotonicString32, Value); - } + assert_bounded!(Blob<10>); + run_with_key!($runner, Blob<10>); - // Map, unbounded value. - { - type Value = MonotonicVec32; - assert_eq!(Value::BOUND, Unbounded, "Must be Unbounded"); - verify_and_run!($runner, u32, Value); - verify_and_run!($runner, Blob<10>, Value); - verify_and_run!($runner, MonotonicVec32, Value); - verify_and_run!($runner, MonotonicString32, Value); - } + // Unbounded keys. + assert_unbounded!(MonotonicVec32); + run_with_key!($runner, MonotonicVec32); + + assert_unbounded!(MonotonicString32); + run_with_key!($runner, MonotonicString32); } }; } @@ -1440,7 +1452,7 @@ mod test { assert!(right_child.is_full()); let median_index = right_child.entries_len() / 2; let median_key = key(12); - assert_eq!(right_child.key(median_index), &median_key); + assert_eq!(right_child.key(median_index, btree.memory()), &median_key); // Overwrite the value of the median key. assert_eq!(btree.insert(median_key.clone(), value(123)), Some(value(0))); @@ -3089,7 +3101,7 @@ mod test { // [0, 1, 2, 3, 4, 5] [7, 8, 9, 10, 11] let root = btree.load_node(btree.root_addr); assert_eq!(root.node_type(), NodeType::Internal); - assert_eq!(root.keys(), vec![vec![6; 10_000]]); + assert_eq!(root.keys(btree.memory()), vec![vec![6; 10_000]]); assert_eq!(root.children_len(), 2); // Remove the element in the root. @@ -3101,7 +3113,7 @@ mod test { // [0, 1, 2, 3, 4] [7, 8, 9, 10, 11] let root = btree.load_node(btree.root_addr); assert_eq!(root.node_type(), NodeType::Internal); - assert_eq!(root.keys(), vec![vec![5; 10_000]]); + assert_eq!(root.keys(btree.memory()), vec![vec![5; 10_000]]); assert_eq!(root.children_len(), 2); // Remove the element in the root. This triggers the case where the root @@ -3113,7 +3125,7 @@ mod test { let root = btree.load_node(btree.root_addr); assert_eq!(root.node_type(), NodeType::Leaf); assert_eq!( - root.keys(), + root.keys(btree.memory()), vec![ vec![0; 10_000], vec![1; 10_000], diff --git a/src/btreemap/iter.rs b/src/btreemap/iter.rs index 82869508..1e653e16 100644 --- a/src/btreemap/iter.rs +++ b/src/btreemap/iter.rs @@ -94,7 +94,7 @@ where Bound::Included(key) | Bound::Excluded(key) => { let mut node = self.map.load_node(self.map.root_addr); loop { - match node.search(key) { + match node.search(key, self.map.memory()) { Ok(idx) => { if let Bound::Included(_) = self.range.start_bound() { // We found the key exactly matching the left bound. @@ -115,7 +115,7 @@ where }; if idx + 1 < node.entries_len() - && self.range.contains(node.key(idx + 1)) + && self.range.contains(node.key(idx + 1, self.map.memory())) { self.forward_cursors.push(Cursor::Node { node, @@ -152,7 +152,9 @@ where NodeType::Leaf => None, }; - if idx < node.entries_len() && self.range.contains(node.key(idx)) { + if idx < node.entries_len() + && self.range.contains(node.key(idx, self.map.memory())) + { self.forward_cursors.push(Cursor::Node { node, next: Index::Entry(idx), @@ -188,7 +190,7 @@ where Bound::Included(key) | Bound::Excluded(key) => { let mut node = self.map.load_node(self.map.root_addr); loop { - match node.search(key) { + match node.search(key, self.map.memory()) { Ok(idx) => { if let Bound::Included(_) = self.range.end_bound() { // We found the key exactly matching the right bound. @@ -208,7 +210,9 @@ where NodeType::Leaf => None, }; - if idx > 0 && self.range.contains(node.key(idx - 1)) { + if idx > 0 + && self.range.contains(node.key(idx - 1, self.map.memory())) + { self.backward_cursors.push(Cursor::Node { node, next: Index::Entry(idx - 1), @@ -243,7 +247,8 @@ where NodeType::Leaf => None, }; - if idx > 0 && self.range.contains(node.key(idx - 1)) { + if idx > 0 && self.range.contains(node.key(idx - 1, self.map.memory())) + { self.backward_cursors.push(Cursor::Node { node, next: Index::Entry(idx - 1), @@ -320,7 +325,7 @@ where next: Index::Entry(entry_idx), } => { // If the key does not belong to the range, iteration stops. - if !self.range.contains(node.key(entry_idx)) { + if !self.range.contains(node.key(entry_idx, self.map.memory())) { // Clear all cursors to avoid needless work in subsequent calls. self.forward_cursors = vec![]; self.backward_cursors = vec![]; @@ -328,7 +333,7 @@ where } let res = map(&node, entry_idx); - self.range.0 = Bound::Excluded(node.key(entry_idx).clone()); + self.range.0 = Bound::Excluded(node.key(entry_idx, self.map.memory()).clone()); let next = match node.node_type() { // If this is an internal node, add the next child to the cursors. @@ -403,7 +408,7 @@ where next: Index::Entry(entry_idx), } => { // If the key does not belong to the range, iteration stops. - if !self.range.contains(node.key(entry_idx)) { + if !self.range.contains(node.key(entry_idx, self.map.memory())) { // Clear all cursors to avoid needless work in subsequent calls. self.forward_cursors = vec![]; self.backward_cursors = vec![]; @@ -411,7 +416,7 @@ where } let res = map(&node, entry_idx); - self.range.1 = Bound::Excluded(node.key(entry_idx).clone()); + self.range.1 = Bound::Excluded(node.key(entry_idx, self.map.memory()).clone()); if let Some(next) = match node.node_type() { // If this is an internal node, add the previous child to the cursors. @@ -497,7 +502,7 @@ where fn next(&mut self) -> Option { self.0 - .next_map(|node, entry_idx| node.key(entry_idx).clone()) + .next_map(|node, entry_idx| node.key(entry_idx, self.0.map.memory()).clone()) } fn count(mut self) -> usize @@ -516,7 +521,7 @@ where { fn next_back(&mut self) -> Option { self.0 - .next_back_map(|node, entry_idx| node.key(entry_idx).clone()) + .next_back_map(|node, entry_idx| node.key(entry_idx, self.0.map.memory()).clone()) } } diff --git a/src/btreemap/node.rs b/src/btreemap/node.rs index 50af80e0..7079d7f0 100644 --- a/src/btreemap/node.rs +++ b/src/btreemap/node.rs @@ -39,6 +39,8 @@ pub enum NodeType { pub type Entry = (K, Vec); pub type EntryRef<'a, K> = (&'a K, &'a [u8]); +type LazyEntry = (LazyKey, LazyValue); + /// A node of a B-Tree. /// /// There are two versions of a `Node`: @@ -52,7 +54,7 @@ pub struct Node { address: Address, // List of tuples consisting of a key and the encoded value. // INVARIANT: the list is sorted by key. - keys_and_encoded_values: Vec<(K, Value)>, + keys_and_encoded_values: Vec>, // For the key at position I, children[I] points to the left // child of this key and children[I + 1] points to the right child. children: Vec
, @@ -106,14 +108,13 @@ impl Node { pub fn get_max(&self, memory: &M) -> Entry { match self.node_type { NodeType::Leaf => { - let last_idx = self.keys_and_encoded_values.len() - 1; + let entry = self + .keys_and_encoded_values + .last() + .expect("A node can never be empty"); ( - self.keys_and_encoded_values - .last() - .expect("A node can never be empty") - .0 - .clone(), - self.value(last_idx, memory).to_vec(), + self.get_key(entry, memory).clone(), + self.get_value(entry, memory).to_vec(), ) } NodeType::Internal => { @@ -164,32 +165,94 @@ impl Node { ) -> Entry { let (old_key, old_value) = core::mem::replace( &mut self.keys_and_encoded_values[idx], - (key, Value::by_value(value)), + (LazyKey::by_value(key), LazyValue::by_value(value)), ); - (old_key, self.extract_value(old_value, memory)) + ( + self.extract_key(old_key, memory), + self.extract_value(old_value, memory), + ) } /// Returns a reference to the entry at the specified index. pub fn entry(&self, idx: usize, memory: &M) -> EntryRef { - ( - &self.keys_and_encoded_values[idx].0, - self.value(idx, memory), - ) + (self.key(idx, memory), self.value(idx, memory)) + } + + /// Returns a reference to the cached key and loads it from memory if needed. + #[inline] + fn get_key<'a, M: Memory>(&'a self, (k, _): &'a LazyEntry, memory: &M) -> &'a K { + k.get_or_load(|offset| self.load_key_from_memory(offset, memory)) + } + + /// Returns a reference to the cached value and loads it from memory if needed. + #[inline] + fn get_value<'a, M: Memory>(&'a self, (_, v): &'a LazyEntry, memory: &M) -> &'a [u8] { + v.get_or_load(|offset| self.load_value_from_memory(offset, memory)) + } + + /// Returns a reference to the key at the specified index. + pub fn key(&self, idx: usize, memory: &M) -> &K { + self.get_key(&self.keys_and_encoded_values[idx], memory) } /// Returns a reference to the encoded value at the specified index. pub fn value(&self, idx: usize, memory: &M) -> &[u8] { - // Load and cache the value from the underlying memory if needed. - self.keys_and_encoded_values[idx] - .1 - .get_or_load(|offset| self.load_value_from_memory(offset, memory)) + self.get_value(&self.keys_and_encoded_values[idx], memory) + } + + /// Extracts the contents of key (by loading it first if it's not loaded yet). + fn extract_key(&self, key: LazyKey, memory: &M) -> K { + key.take_or_load(|offset| self.load_key_from_memory(offset, memory)) } /// Extracts the contents of value (by loading it first if it's not loaded yet). - fn extract_value(&self, value: Value, memory: &M) -> Vec { + fn extract_value(&self, value: LazyValue, memory: &M) -> Vec { value.take_or_load(|offset| self.load_value_from_memory(offset, memory)) } + /// Loads a key from stable memory at the given offset of this node. + fn load_key_from_memory(&self, mut offset: Bytes, memory: &M) -> K { + let reader = NodeReader { + address: self.address, + overflows: &self.overflows, + page_size: self.page_size(), + memory, + }; + + // Retrieve the key's size. + let key_offset = Address::from(offset.get()); + let key_size = match self.version { + Version::V1(_) => { + // In V1, the key's size is always stored in memory. + offset += U32_SIZE; + read_u32(&reader, key_offset) + } + Version::V2(_) => { + // In V2, if the key is fixed-size, use the maximum bound; + // otherwise, read its size from memory. + if K::BOUND.is_fixed_size() { + K::BOUND.max_size() + } else { + offset += U32_SIZE; + read_u32(&reader, key_offset) + } + } + }; + + let mut bytes = vec![]; + read_to_vec( + &reader, + Address::from((offset).get()), + &mut bytes, + key_size as usize, + ); + //println!("ABC load key_size: {key_size:?}"); + //println!("ABC load key: {bytes:?}"); + let key = K::from_bytes(Cow::Borrowed(&bytes)); + + key + } + /// Loads a value from stable memory at the given offset of this node. fn load_value_from_memory(&self, offset: Bytes, memory: &M) -> Vec { let reader = NodeReader { @@ -199,13 +262,13 @@ impl Node { memory, }; - let value_len = read_u32(&reader, Address::from(offset.get())) as usize; + let value_size = read_u32(&reader, Address::from(offset.get())) as usize; let mut bytes = vec![]; read_to_vec( &reader, Address::from((offset + U32_SIZE).get()), &mut bytes, - value_len, + value_size, ); bytes @@ -215,11 +278,6 @@ impl Node { self.version.page_size() } - /// Returns a reference to the key at the specified index. - pub fn key(&self, idx: usize) -> &K { - &self.keys_and_encoded_values[idx].0 - } - /// Returns the child's address at the given index. pub fn child(&self, idx: usize) -> Address { self.children[idx] @@ -251,28 +309,41 @@ impl Node { } /// Inserts a new entry at the specified index. - pub fn insert_entry(&mut self, idx: usize, (key, encoded_value): Entry) { + pub fn insert_entry(&mut self, idx: usize, (key, value): Entry) { self.keys_and_encoded_values - .insert(idx, (key, Value::by_value(encoded_value))); + .insert(idx, (LazyKey::by_value(key), LazyValue::by_value(value))); + // let keys: Vec<_> = self + // .keys_and_encoded_values + // .iter() + // .map(|(key, _)| format!("{key:?}")) + // .collect(); + //println!("ABC insert_entry: {:?}", keys); } /// Returns the entry at the specified index while consuming this node. pub fn into_entry(mut self, idx: usize, memory: &M) -> Entry { let keys_and_encoded_values = core::mem::take(&mut self.keys_and_encoded_values); let (key, value) = keys_and_encoded_values.into_iter().nth(idx).unwrap(); - (key, self.extract_value(value, memory)) + ( + self.extract_key(key, memory), + self.extract_value(value, memory), + ) } /// Removes the entry at the specified index. pub fn remove_entry(&mut self, idx: usize, memory: &M) -> Entry { let (key, value) = self.keys_and_encoded_values.remove(idx); - (key, self.extract_value(value, memory)) + //println!("ABC remove_entry: {:?}", key); + ( + self.extract_key(key, memory), + self.extract_value(value, memory), + ) } /// Adds a new entry at the back of the node. - pub fn push_entry(&mut self, (key, encoded_value): Entry) { + pub fn push_entry(&mut self, (key, value): Entry) { self.keys_and_encoded_values - .push((key, Value::by_value(encoded_value))); + .push((LazyKey::by_value(key), LazyValue::by_value(value))); } /// Removes an entry from the back of the node. @@ -282,12 +353,15 @@ impl Node { return None; } - let (key, last_value) = self + let (key, value) = self .keys_and_encoded_values .pop() .expect("node must not be empty"); - Some((key, self.extract_value(last_value, memory))) + Some(( + self.extract_key(key, memory), + self.extract_value(value, memory), + )) } /// Merges the entries and children of the `source` node into self, along with the median entry. @@ -307,19 +381,32 @@ impl Node { median: Entry, allocator: &mut Allocator, ) { - // Load all the values from the source node first, as they will be moved out. + // let self_keys: Vec<_> = self + // .keys_and_encoded_values + // .iter() + // .map(|(k, _)| format!("{k:?}")) + // .collect(); + + // let source_keys: Vec<_> = source + // .keys_and_encoded_values + // .iter() + // .map(|(k, _)| format!("{k:?}\n")) + // .collect(); + //println!("ABC merge\n self : {self_keys:?}\n source : {source_keys:?} \n"); + + // Load all the entries from the source node first, as they will be moved out. for i in 0..source.entries_len() { - source.value(i, allocator.memory()); + let _e = source.entry(i, allocator.memory()); } - if source.key(0) > self.key(0) { + if source.key(0, allocator.memory()) > self.key(0, allocator.memory()) { // The source node has keys that are greater than self. // Append the source node into self. - Self::append(self, &mut source, median); + Self::append(self, &mut source, median, allocator.memory()); } else { // self has keys that are greater than the source node. // Append self into the source node (which more efficient). - Self::append(&mut source, self, median); + Self::append(&mut source, self, median, allocator.memory()); // Move the entries and children into self. self.keys_and_encoded_values = core::mem::take(&mut source.keys_and_encoded_values); @@ -340,14 +427,14 @@ impl Node { /// /// POSTCONDITION: /// * `b` is empty. - fn append(a: &mut Node, b: &mut Node, median: Entry) { + fn append(a: &mut Node, b: &mut Node, median: Entry, memory: &M) { // Assert preconditions. let a_len = a.entries_len(); assert_eq!(a.node_type(), b.node_type()); assert!(b.entries_len() > 0); assert!(a_len > 0); - assert!(a.key(a_len - 1) < &median.0); - assert!(&median.0 < b.key(0)); + assert!(a.key(a_len - 1, memory) < &median.0); + assert!(&median.0 < b.key(0, memory)); a.push_entry(median); @@ -364,18 +451,15 @@ impl Node { #[cfg(test)] pub fn entries(&self, memory: &M) -> Vec> { - self.keys_and_encoded_values - .iter() - .enumerate() - .map(|(idx, (key, _))| (key.clone(), self.value(idx, memory).to_vec())) + (0..self.keys_and_encoded_values.len()) + .map(|i| (self.key(i, memory).clone(), self.value(i, memory).to_vec())) .collect() } #[cfg(test)] - pub fn keys(&self) -> Vec { - self.keys_and_encoded_values - .iter() - .map(|(key, _)| key.clone()) + pub fn keys(&self, memory: &M) -> Vec { + (0..self.keys_and_encoded_values.len()) + .map(|i| self.key(i, memory).clone()) .collect() } @@ -395,9 +479,26 @@ impl Node { /// of the matching key. If the value is not found then `Result::Err` is /// returned, containing the index where a matching key could be inserted /// while maintaining sorted order. - pub fn search(&self, key: &K) -> Result { - self.keys_and_encoded_values - .binary_search_by_key(&key, |entry| &entry.0) + pub fn search(&self, key: &K, memory: &M) -> Result { + // let self_keys: Vec<_> = self + // .keys_and_encoded_values + // .iter() + // .map(|(k, _)| format!("{k:?}")) + // .collect(); + // println!("\nABC search BEFORE: {self_keys:?}"); + + let result = self + .keys_and_encoded_values + .binary_search_by_key(&key, |entry| self.get_key(entry, memory)); + + // let self_keys: Vec<_> = self + // .keys_and_encoded_values + // .iter() + // .map(|(k, _)| format!("{k:?}")) + // .collect(); + //println!("ABC search AFTER : {self_keys:?}"); + + result } /// Returns the maximum size a node can be if it has bounded keys and values. @@ -422,9 +523,9 @@ impl Node { pub fn split(&mut self, sibling: &mut Node, memory: &M) -> Entry { debug_assert!(self.is_full()); - // Load the values that will be moved out of the node and into the new sibling. + // Load the entries that will be moved out of the node and into the new sibling. for idx in B..self.entries_len() { - self.value(idx, memory); + let _e = self.entry(idx, memory); } // Move the entries and children above the median into the new sibling. @@ -463,53 +564,134 @@ impl NodeHeader { } } -/// The value in a K/V pair. +struct LazyKey(LazyObject); + +impl LazyKey { + /// Create a lazy key with a memory offset. + #[inline] + pub fn by_ref(offset: Bytes) -> Self { + Self(LazyObject::by_ref(offset)) + } + + /// Create a lazy key from a key. + #[inline] + pub fn by_value(key: K) -> Self { + Self(LazyObject::by_value(key)) + } + + /// Returns a reference to the key, loading it if necessary. + #[inline] + pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> K) -> &K { + self.0.get_or_load(load) + } + + /// Consumes self and returns the key, loading it if necessary. + #[inline] + pub fn take_or_load(self, load: impl FnOnce(Bytes) -> K) -> K { + self.0.take_or_load(load) + } +} + +impl std::fmt::Debug for LazyKey { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match &self.0 { + LazyObject::ByVal(ref key) => { + let bytes = key.to_bytes_checked(); + f.debug_tuple("LazyKey") + .field(&format_args!("LazyKey::ByVal({:?})", bytes)) + .finish() + } + LazyObject::ByRef { offset, loaded } => match loaded.get() { + Some(key) => { + let bytes = key.to_bytes_checked(); + f.debug_tuple("LazyKey") + .field(&format_args!("LazyKey::ByRef(loaded:{:?})", bytes)) + .finish() + } + None => f + .debug_tuple("LazyKey") + .field(&format_args!("LazyKey::ByRef(offset: {:?})", offset)) + .finish(), + }, + } + } +} + +type Blob = Vec; + +#[derive(Debug)] +struct LazyValue(LazyObject); + +impl LazyValue { + /// Create a lazy value with a memory offset. + #[inline] + pub fn by_ref(offset: Bytes) -> Self { + Self(LazyObject::by_ref(offset)) + } + + /// Create a lazy value from a value. + #[inline] + pub fn by_value(value: Blob) -> Self { + Self(LazyObject::by_value(value)) + } + + /// Returns a reference to the key, loading it if necessary. + #[inline] + pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> Blob) -> &Blob { + self.0.get_or_load(load) + } + + /// Consumes self and returns the key, loading it if necessary. + #[inline] + pub fn take_or_load(self, load: impl FnOnce(Bytes) -> Blob) -> Blob { + self.0.take_or_load(load) + } +} + +/// A lazy-loaded object. #[derive(Debug)] -enum Value { - /// The value's encoded bytes. - ByVal(Vec), +enum LazyObject { + /// Object stored by value. + ByVal(T), + /// Object stored by reference, loaded on demand. ByRef { - /// The value's offset in the node. + /// Memory offset of the object. offset: Bytes, - /// The lazily loaded encoded bytes. - loaded_value: OnceCell>, + /// Cache for the lazily loaded object. + loaded: OnceCell, }, } -impl Value { +impl LazyObject { + /// Create a lazy object with a memory offset. pub fn by_ref(offset: Bytes) -> Self { Self::ByRef { offset, - loaded_value: Default::default(), + loaded: Default::default(), } } - pub fn by_value(value: Vec) -> Self { + /// Create a lazy object from a value. + pub fn by_value(value: T) -> Self { Self::ByVal(value) } - /// Returns a reference to the value if the value has been loaded or runs the given function to - /// load the value. - pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> Vec) -> &[u8] { + /// Get a reference to the object, loading it if necessary. + pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> T) -> &T { match self { - Value::ByVal(v) => &v[..], - Value::ByRef { - offset, - loaded_value: value, - } => value.get_or_init(|| load(*offset)), + LazyObject::ByVal(v) => v, + LazyObject::ByRef { offset, loaded } => loaded.get_or_init(|| load(*offset)), } } - /// Extracts the value while consuming self if the value has been loaded or runs the given - /// function to load the value. - pub fn take_or_load(self, load: impl FnOnce(Bytes) -> Vec) -> Vec { + /// Consume self and return the object, loading it if necessary. + pub fn take_or_load(self, load: impl FnOnce(Bytes) -> T) -> T { match self { - Value::ByVal(v) => v, - Value::ByRef { - offset, - loaded_value: value, - } => value.into_inner().unwrap_or_else(|| load(offset)), + LazyObject::ByVal(v) => v, + LazyObject::ByRef { offset, loaded } => { + loaded.into_inner().unwrap_or_else(|| load(offset)) + } } } } diff --git a/src/btreemap/node/v1.rs b/src/btreemap/node/v1.rs index 2dc02857..ddaf20aa 100644 --- a/src/btreemap/node/v1.rs +++ b/src/btreemap/node/v1.rs @@ -15,9 +15,13 @@ //! ---------------------------------------- //! # Entries (k) ↕ 2 bytes //! ---------------------------------------- <-- Entries (upto `CAPACITY` entries) -//! Key(0) +//! Key(0) size ↕ 4 bytes //! ---------------------------------------- -//! Value(0) +//! Key(0) ↕ `max_key_size` bytes +//! ---------------------------------------- +//! Value(0) size ↕ 4 bytes +//! ---------------------------------------- +//! Value(0) ↕ `max_value_size` bytes //! ---------------------------------------- //! Key(1) size ↕ 4 bytes //! ---------------------------------------- @@ -59,26 +63,37 @@ impl Node { max_value_size: u32, memory: &M, ) -> Self { - #[cfg(feature = "canbench")] - let _p = canbench::profile("node_load_v1"); - // Load the entries. let mut keys_encoded_values = Vec::with_capacity(header.num_entries as usize); let mut offset = NodeHeader::size(); - let mut buf = vec![]; + //const LOAD_SIZE_THRESHOLD: u32 = 8; + //let mut buf = vec![]; for _ in 0..header.num_entries { - // Read the key's size. - let key_size = read_u32(memory, address + offset); + let key_offset = offset; + //let key_size = read_u32(memory, address + offset); offset += U32_SIZE; - - // Read the key. - read_to_vec(memory, address + offset, &mut buf, key_size as usize); + // let key = if key_size <= LOAD_SIZE_THRESHOLD { + // read_to_vec(memory, address + offset, &mut buf, key_size as usize); + // LazyKey::by_value(K::from_bytes(Cow::Borrowed(&buf))) + // } else { + // LazyKey::by_ref(key_offset) + // }; + let key = LazyKey::by_ref(key_offset); offset += Bytes::from(max_key_size); - let key = K::from_bytes(Cow::Borrowed(&buf)); - // Values are loaded lazily. Store a reference and skip loading it. - keys_encoded_values.push((key, Value::by_ref(offset))); - offset += U32_SIZE + Bytes::from(max_value_size); + let value_offset = offset; + // let value_size = read_u32(memory, address + offset); + offset += U32_SIZE; + // let value = if value_size <= LOAD_SIZE_THRESHOLD { + // read_to_vec(memory, address + offset, &mut buf, value_size as usize); + // LazyValue::by_value(buf.to_vec()) + // } else { + // LazyValue::by_ref(value_offset) + // }; + let value = LazyValue::by_ref(value_offset); + offset += Bytes::from(max_value_size); + + keys_encoded_values.push((key, value)); } // Load children if this is an internal node. @@ -113,9 +128,6 @@ impl Node { } pub(super) fn save_v1(&self, memory: &M) { - #[cfg(feature = "canbench")] - let _p = canbench::profile("node_save_v1"); - match self.node_type { NodeType::Leaf => { assert!(self.children.is_empty()); @@ -129,10 +141,17 @@ impl Node { assert!(!self.keys_and_encoded_values.is_empty() || !self.children.is_empty()); // Assert entries are sorted in strictly increasing order. + + // TODO: remove debug code. + // let entries: Vec<_> = (0..self.entries_len()) + // .map(|i| (i, self.key(i, memory).to_bytes(), self.value(i, memory))) + // .collect(); + //println!("ABC: entries: {:?}", entries); + assert!(self .keys_and_encoded_values .windows(2) - .all(|e| e[0].0 < e[1].0)); + .all(|arr| self.get_key(&arr[0], memory) < self.get_key(&arr[1], memory))); let (max_key_size, max_value_size) = match self.version { Version::V1(DerivedPageSize { @@ -156,16 +175,16 @@ impl Node { let mut offset = NodeHeader::size(); - // Load all the values. This is necessary so that we don't overwrite referenced - // values when writing the entries to the node. + // Load all the entries. This is necessary so that we don't overwrite referenced + // entries when writing the entries to the node. for i in 0..self.keys_and_encoded_values.len() { - self.value(i, memory); + self.entry(i, memory); } // Write the entries. - for (idx, (key, _)) in self.keys_and_encoded_values.iter().enumerate() { + for i in 0..self.keys_and_encoded_values.len() { // Write the size of the key. - let key_bytes = key.to_bytes_checked(); + let key_bytes = self.key(i, memory).to_bytes_checked(); write_u32(memory, self.address + offset, key_bytes.len() as u32); offset += U32_SIZE; @@ -174,7 +193,7 @@ impl Node { offset += Bytes::from(max_key_size); // Write the size of the value. - let value = self.value(idx, memory); + let value = self.value(i, memory); write_u32(memory, self.address + offset, value.len() as u32); offset += U32_SIZE; diff --git a/src/btreemap/node/v2.rs b/src/btreemap/node/v2.rs index f559d777..c6a0555b 100644 --- a/src/btreemap/node/v2.rs +++ b/src/btreemap/node/v2.rs @@ -111,9 +111,6 @@ impl Node { header: NodeHeader, memory: &M, ) -> Self { - #[cfg(feature = "canbench")] - let _p = canbench::profile("node_load_v2"); - // Load the node, including any overflows, into a buffer. let overflows = read_overflows(address, memory); @@ -151,32 +148,49 @@ impl Node { // Load the keys. let mut keys_encoded_values = Vec::with_capacity(num_entries); - let mut buf = vec![]; + //const LOAD_SIZE_THRESHOLD: u32 = 8; + //let mut buf = vec![]; for _ in 0..num_entries { - // Load the key's size. + let key_offset = Bytes::from(offset.get()); + + // Advance offset by the key_size type size if applicable. let key_size = if K::BOUND.is_fixed_size() { // Key is fixed in size. The size of the key is always its max size. K::BOUND.max_size() } else { // Key is not fixed in size. Read the size from memory. - let value = read_u32(&reader, offset); + let key_size = read_u32(&reader, offset); + //println!("ABC read key_size: {:?}", key_size); offset += U32_SIZE; - value + key_size }; - - // Load the key. - read_to_vec(&reader, offset, &mut buf, key_size as usize); - let key = K::from_bytes(Cow::Borrowed(&buf)); + // let key = if key_size <= LOAD_SIZE_THRESHOLD { + // read_to_vec(&reader, offset, &mut buf, key_size as usize); + // LazyKey::by_value(K::from_bytes(Cow::Borrowed(&buf))) + // } else { + // LazyKey::by_ref(key_offset) + // }; + let key = LazyKey::by_ref(key_offset); + + // Advance offset by the size of the key. offset += Bytes::from(key_size); - keys_encoded_values.push((key, Value::by_ref(Bytes::from(0usize)))); + + keys_encoded_values.push((key, LazyValue::by_ref(Bytes::from(0usize)))); } // Load the values for (_key, value) in keys_encoded_values.iter_mut() { - // Load the values lazily. - *value = Value::by_ref(Bytes::from(offset.get())); - let value_size = read_u32(&reader, offset) as usize; - offset += U32_SIZE + Bytes::from(value_size as u64); + let value_offset = Bytes::from(offset.get()); + let value_size = read_u32(&reader, offset); + offset += U32_SIZE; + // *value = if value_size <= LOAD_SIZE_THRESHOLD { + // read_to_vec(&reader, offset, &mut buf, value_size as usize); + // LazyValue::by_value(buf.to_vec()) + // } else { + // LazyValue::by_ref(value_offset) + // }; + *value = LazyValue::by_ref(value_offset); + offset += Bytes::from(value_size as u64); } Self { @@ -191,17 +205,14 @@ impl Node { // Saves the node to memory. pub(super) fn save_v2(&mut self, allocator: &mut Allocator) { - #[cfg(feature = "canbench")] - let _p = canbench::profile("node_save_v2"); - let page_size = self.version.page_size().get(); assert!(page_size >= MINIMUM_PAGE_SIZE); - // Load all the values. This is necessary so that we don't overwrite referenced - // values when writing the entries to the node. - for i in 0..self.keys_and_encoded_values.len() { - self.value(i, allocator.memory()); - } + // Load all the entry. This is necessary so that we don't overwrite referenced + // entry when writing the entries to the node. + let entries: Vec<_> = (0..self.keys_and_encoded_values.len()) + .map(|i| self.entry(i, allocator.memory())) + .collect(); // Initialize a NodeWriter. The NodeWriter takes care of allocating/deallocating // overflow pages as needed. @@ -239,9 +250,8 @@ impl Node { } // Write the keys. - for (key, _) in self.keys_and_encoded_values.iter() { + for (key, _) in &entries { let key_bytes = key.to_bytes_checked(); - // Write the size of the key if it isn't fixed in size. if !K::BOUND.is_fixed_size() { writer.write_u32(offset, key_bytes.len() as u32); @@ -254,9 +264,8 @@ impl Node { } // Write the values. - for idx in 0..self.entries_len() { + for (_, value) in &entries { // Write the size of the value. - let value = self.value(idx, writer.memory()); writer.write_u32(offset, value.len() as u32); offset += U32_SIZE; From e06360470c6f69d6782b13723f1a59c04ba202d2 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Thu, 24 Apr 2025 12:18:42 +0200 Subject: [PATCH 36/68] . --- benchmarks/src/btreemap.rs | 1428 ++++++++++++-------------- canbench_results.yml | 1990 +++++++++++++++++++++--------------- 2 files changed, 1775 insertions(+), 1643 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index b04bebe8..47d8b3ec 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -71,36 +71,27 @@ fn generate_random_blocks(count: usize, block_size: usize, rng: &mut Rng) -> Vec bench_tests! { // === V1 === - // V1 blob K x 32 - btreemap_v1_insert_blob_4_32, insert_helper_v1, Blob4, Blob32; - btreemap_v1_insert_blob_8_32, insert_helper_v1, Blob8, Blob32; - btreemap_v1_insert_blob_16_32, insert_helper_v1, Blob16, Blob32; - btreemap_v1_insert_blob_32_32, insert_helper_v1, Blob32, Blob32; - btreemap_v1_insert_blob_64_32, insert_helper_v1, Blob64, Blob32; - btreemap_v1_insert_blob_128_32, insert_helper_v1, Blob128, Blob32; - btreemap_v1_insert_blob_256_32, insert_helper_v1, Blob256, Blob32; - btreemap_v1_insert_blob_512_32, insert_helper_v1, Blob512, Blob32; - - // V1 blob K x 1024 - btreemap_v1_insert_blob_4_1024, insert_helper_v1, Blob4, Blob1024; - btreemap_v1_insert_blob_8_1024, insert_helper_v1, Blob8, Blob1024; - btreemap_v1_insert_blob_16_1024, insert_helper_v1, Blob16, Blob1024; - btreemap_v1_insert_blob_32_1024, insert_helper_v1, Blob32, Blob1024; - btreemap_v1_insert_blob_64_1024, insert_helper_v1, Blob64, Blob1024; - btreemap_v1_insert_blob_128_1024, insert_helper_v1, Blob128, Blob1024; - btreemap_v1_insert_blob_256_1024, insert_helper_v1, Blob256, Blob1024; - btreemap_v1_insert_blob_512_1024, insert_helper_v1, Blob512, Blob1024; - - // V1 blob 1024 x V - btreemap_v1_insert_blob_1024_4, insert_helper_v1, Blob1024, Blob4; - btreemap_v1_insert_blob_1024_8, insert_helper_v1, Blob1024, Blob8; - btreemap_v1_insert_blob_1024_16, insert_helper_v1, Blob1024, Blob16; - btreemap_v1_insert_blob_1024_32, insert_helper_v1, Blob1024, Blob32; - btreemap_v1_insert_blob_1024_64, insert_helper_v1, Blob1024, Blob64; - btreemap_v1_insert_blob_1024_128, insert_helper_v1, Blob1024, Blob128; - btreemap_v1_insert_blob_1024_256, insert_helper_v1, Blob1024, Blob256; - btreemap_v1_insert_blob_1024_512, insert_helper_v1, Blob1024, Blob512; - btreemap_v1_insert_blob_1024_1024, insert_helper_v1, Blob1024, Blob1024; + // V1 blob K x 128 + btreemap_v1_insert_blob_4_128, insert_helper_v1, Blob4, Blob128; + btreemap_v1_insert_blob_8_128, insert_helper_v1, Blob8, Blob128; + btreemap_v1_insert_blob_16_128, insert_helper_v1, Blob16, Blob128; + btreemap_v1_insert_blob_32_128, insert_helper_v1, Blob32, Blob128; + btreemap_v1_insert_blob_64_128, insert_helper_v1, Blob64, Blob128; + btreemap_v1_insert_blob_128_128, insert_helper_v1, Blob128, Blob128; + btreemap_v1_insert_blob_256_128, insert_helper_v1, Blob256, Blob128; + btreemap_v1_insert_blob_512_128, insert_helper_v1, Blob512, Blob128; + btreemap_v1_insert_blob_1024_128, insert_helper_v1, Blob1024, Blob128; + + // V1 blob 32 x V + btreemap_v1_insert_blob_32_4, insert_helper_v1, Blob32, Blob4; + btreemap_v1_insert_blob_32_8, insert_helper_v1, Blob32, Blob8; + btreemap_v1_insert_blob_32_16, insert_helper_v1, Blob32, Blob16; + btreemap_v1_insert_blob_32_32, insert_helper_v1, Blob32, Blob32; + btreemap_v1_insert_blob_32_64, insert_helper_v1, Blob32, Blob64; + //btreemap_v1_insert_blob_32_128, insert_helper_v1, Blob32, Blob128; + btreemap_v1_insert_blob_32_256, insert_helper_v1, Blob32, Blob256; + btreemap_v1_insert_blob_32_512, insert_helper_v1, Blob32, Blob512; + btreemap_v1_insert_blob_32_1024, insert_helper_v1, Blob32, Blob1024; // V1 u64 / blob8 btreemap_v1_insert_u64_u64, insert_helper_v1, u64, u64; @@ -109,67 +100,49 @@ bench_tests! { // === V2 === - // V2 blob K x 32 - btreemap_v2_insert_blob_4_32, insert_helper_v2, Blob4, Blob32; - btreemap_v2_insert_blob_8_32, insert_helper_v2, Blob8, Blob32; - btreemap_v2_insert_blob_16_32, insert_helper_v2, Blob16, Blob32; - btreemap_v2_insert_blob_32_32, insert_helper_v2, Blob32, Blob32; - btreemap_v2_insert_blob_64_32, insert_helper_v2, Blob64, Blob32; - btreemap_v2_insert_blob_128_32, insert_helper_v2, Blob128, Blob32; - btreemap_v2_insert_blob_256_32, insert_helper_v2, Blob256, Blob32; - btreemap_v2_insert_blob_512_32, insert_helper_v2, Blob512, Blob32; - - // V2 blob K x 1024 - btreemap_v2_insert_blob_4_1024, insert_helper_v2, Blob4, Blob1024; - btreemap_v2_insert_blob_8_1024, insert_helper_v2, Blob8, Blob1024; - btreemap_v2_insert_blob_16_1024, insert_helper_v2, Blob16, Blob1024; - btreemap_v2_insert_blob_32_1024, insert_helper_v2, Blob32, Blob1024; - btreemap_v2_insert_blob_64_1024, insert_helper_v2, Blob64, Blob1024; - btreemap_v2_insert_blob_128_1024, insert_helper_v2, Blob128, Blob1024; - btreemap_v2_insert_blob_256_1024, insert_helper_v2, Blob256, Blob1024; - btreemap_v2_insert_blob_512_1024, insert_helper_v2, Blob512, Blob1024; - - // V2 blob 1024 x V - btreemap_v2_insert_blob_1024_4, insert_helper_v2, Blob1024, Blob4; - btreemap_v2_insert_blob_1024_8, insert_helper_v2, Blob1024, Blob8; - btreemap_v2_insert_blob_1024_16, insert_helper_v2, Blob1024, Blob16; - btreemap_v2_insert_blob_1024_32, insert_helper_v2, Blob1024, Blob32; - btreemap_v2_insert_blob_1024_64, insert_helper_v2, Blob1024, Blob64; - btreemap_v2_insert_blob_1024_128, insert_helper_v2, Blob1024, Blob128; - btreemap_v2_insert_blob_1024_256, insert_helper_v2, Blob1024, Blob256; - btreemap_v2_insert_blob_1024_512, insert_helper_v2, Blob1024, Blob512; - btreemap_v2_insert_blob_1024_1024, insert_helper_v2, Blob1024, Blob512; - - // V2 vec K x 32 - btreemap_v2_insert_vec_4_32, insert_helper_v2, FixedVec4, FixedVec32; - btreemap_v2_insert_vec_8_32, insert_helper_v2, FixedVec8, FixedVec32; - btreemap_v2_insert_vec_16_32, insert_helper_v2, FixedVec16, FixedVec32; - btreemap_v2_insert_vec_32_32, insert_helper_v2, FixedVec32, FixedVec32; - btreemap_v2_insert_vec_64_32, insert_helper_v2, FixedVec64, FixedVec32; - btreemap_v2_insert_vec_128_32, insert_helper_v2, FixedVec128, FixedVec32; - btreemap_v2_insert_vec_256_32, insert_helper_v2, FixedVec256, FixedVec32; - btreemap_v2_insert_vec_512_32, insert_helper_v2, FixedVec512, FixedVec32; - - // V2 vec K x 1024 - btreemap_v2_insert_vec_4_1024, insert_helper_v2, FixedVec4, FixedVec1024; - btreemap_v2_insert_vec_8_1024, insert_helper_v2, FixedVec8, FixedVec1024; - btreemap_v2_insert_vec_16_1024, insert_helper_v2, FixedVec16, FixedVec1024; - btreemap_v2_insert_vec_32_1024, insert_helper_v2, FixedVec32, FixedVec1024; - btreemap_v2_insert_vec_64_1024, insert_helper_v2, FixedVec64, FixedVec1024; - btreemap_v2_insert_vec_128_1024, insert_helper_v2, FixedVec128, FixedVec1024; - btreemap_v2_insert_vec_256_1024, insert_helper_v2, FixedVec256, FixedVec1024; - btreemap_v2_insert_vec_512_1024, insert_helper_v2, FixedVec512, FixedVec1024; - - // V2 vec 1024 x V - btreemap_v2_insert_vec_1024_4, insert_helper_v2, FixedVec1024, FixedVec4; - btreemap_v2_insert_vec_1024_8, insert_helper_v2, FixedVec1024, FixedVec8; - btreemap_v2_insert_vec_1024_16, insert_helper_v2, FixedVec1024, FixedVec16; - btreemap_v2_insert_vec_1024_32, insert_helper_v2, FixedVec1024, FixedVec32; - btreemap_v2_insert_vec_1024_64, insert_helper_v2, FixedVec1024, FixedVec64; - btreemap_v2_insert_vec_1024_128, insert_helper_v2, FixedVec1024, FixedVec128; - btreemap_v2_insert_vec_1024_256, insert_helper_v2, FixedVec1024, FixedVec256; - btreemap_v2_insert_vec_1024_512, insert_helper_v2, FixedVec1024, FixedVec512; - btreemap_v2_insert_vec_1024_1024, insert_helper_v2, FixedVec1024, FixedVec1024; + // V2 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; + + // V2 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; + 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; + + // V2 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; + + // V2 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; + 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; // V2 u64 / blob8 / vec8 btreemap_v2_insert_u64_u64, insert_helper_v2, u64, u64; @@ -234,36 +207,27 @@ pub fn btreemap_v2_insert_10mib_values() -> BenchResult { bench_tests! { // === V1 === - // V1 blob K x 32 - btreemap_v1_remove_blob_4_32, remove_helper_v1, Blob4, Blob32; - btreemap_v1_remove_blob_8_32, remove_helper_v1, Blob8, Blob32; - btreemap_v1_remove_blob_16_32, remove_helper_v1, Blob16, Blob32; - btreemap_v1_remove_blob_32_32, remove_helper_v1, Blob32, Blob32; - btreemap_v1_remove_blob_64_32, remove_helper_v1, Blob64, Blob32; - btreemap_v1_remove_blob_128_32, remove_helper_v1, Blob128, Blob32; - btreemap_v1_remove_blob_256_32, remove_helper_v1, Blob256, Blob32; - btreemap_v1_remove_blob_512_32, remove_helper_v1, Blob512, Blob32; - - // V1 blob K x 1024 - btreemap_v1_remove_blob_4_1024, remove_helper_v1, Blob4, Blob1024; - btreemap_v1_remove_blob_8_1024, remove_helper_v1, Blob8, Blob1024; - btreemap_v1_remove_blob_16_1024, remove_helper_v1, Blob16, Blob1024; - btreemap_v1_remove_blob_32_1024, remove_helper_v1, Blob32, Blob1024; - btreemap_v1_remove_blob_64_1024, remove_helper_v1, Blob64, Blob1024; - btreemap_v1_remove_blob_128_1024, remove_helper_v1, Blob128, Blob1024; - btreemap_v1_remove_blob_256_1024, remove_helper_v1, Blob256, Blob1024; - btreemap_v1_remove_blob_512_1024, remove_helper_v1, Blob512, Blob1024; - - // V1 blob 1024 x V - btreemap_v1_remove_blob_1024_4, remove_helper_v1, Blob1024, Blob4; - btreemap_v1_remove_blob_1024_8, remove_helper_v1, Blob1024, Blob8; - btreemap_v1_remove_blob_1024_16, remove_helper_v1, Blob1024, Blob16; - btreemap_v1_remove_blob_1024_32, remove_helper_v1, Blob1024, Blob32; - btreemap_v1_remove_blob_1024_64, remove_helper_v1, Blob1024, Blob64; - btreemap_v1_remove_blob_1024_128, remove_helper_v1, Blob1024, Blob128; - btreemap_v1_remove_blob_1024_256, remove_helper_v1, Blob1024, Blob256; - btreemap_v1_remove_blob_1024_512, remove_helper_v1, Blob1024, Blob512; - btreemap_v1_remove_blob_1024_1024, remove_helper_v1, Blob1024, Blob1024; + // V1 blob K x 128 + btreemap_v1_remove_blob_4_128, remove_helper_v1, Blob4, Blob128; + btreemap_v1_remove_blob_8_128, remove_helper_v1, Blob8, Blob128; + btreemap_v1_remove_blob_16_128, remove_helper_v1, Blob16, Blob128; + btreemap_v1_remove_blob_32_128, remove_helper_v1, Blob32, Blob128; + btreemap_v1_remove_blob_64_128, remove_helper_v1, Blob64, Blob128; + btreemap_v1_remove_blob_128_128, remove_helper_v1, Blob128, Blob128; + btreemap_v1_remove_blob_256_128, remove_helper_v1, Blob256, Blob128; + btreemap_v1_remove_blob_512_128, remove_helper_v1, Blob512, Blob128; + btreemap_v1_remove_blob_1024_128, remove_helper_v1, Blob1024, Blob128; + + // V1 blob 32 x V + btreemap_v1_remove_blob_32_4, remove_helper_v1, Blob32, Blob4; + btreemap_v1_remove_blob_32_8, remove_helper_v1, Blob32, Blob8; + btreemap_v1_remove_blob_32_16, remove_helper_v1, Blob32, Blob16; + btreemap_v1_remove_blob_32_32, remove_helper_v1, Blob32, Blob32; + btreemap_v1_remove_blob_32_64, remove_helper_v1, Blob32, Blob64; + //btreemap_v1_remove_blob_32_128, remove_helper_v1, Blob32, Blob128; + btreemap_v1_remove_blob_32_256, remove_helper_v1, Blob32, Blob256; + btreemap_v1_remove_blob_32_512, remove_helper_v1, Blob32, Blob512; + btreemap_v1_remove_blob_32_1024, remove_helper_v1, Blob32, Blob1024; // V1 u64 / blob8 btreemap_v1_remove_u64_u64, remove_helper_v1, u64, u64; @@ -272,67 +236,49 @@ bench_tests! { // === V2 === - // V2 blob K x 32 - btreemap_v2_remove_blob_4_32, remove_helper_v2, Blob4, Blob32; - btreemap_v2_remove_blob_8_32, remove_helper_v2, Blob8, Blob32; - btreemap_v2_remove_blob_16_32, remove_helper_v2, Blob16, Blob32; - btreemap_v2_remove_blob_32_32, remove_helper_v2, Blob32, Blob32; - btreemap_v2_remove_blob_64_32, remove_helper_v2, Blob64, Blob32; - btreemap_v2_remove_blob_128_32, remove_helper_v2, Blob128, Blob32; - btreemap_v2_remove_blob_256_32, remove_helper_v2, Blob256, Blob32; - btreemap_v2_remove_blob_512_32, remove_helper_v2, Blob512, Blob32; - - // V2 blob K x 1024 - btreemap_v2_remove_blob_4_1024, remove_helper_v2, Blob4, Blob1024; - btreemap_v2_remove_blob_8_1024, remove_helper_v2, Blob8, Blob1024; - btreemap_v2_remove_blob_16_1024, remove_helper_v2, Blob16, Blob1024; - btreemap_v2_remove_blob_32_1024, remove_helper_v2, Blob32, Blob1024; - btreemap_v2_remove_blob_64_1024, remove_helper_v2, Blob64, Blob1024; - btreemap_v2_remove_blob_128_1024, remove_helper_v2, Blob128, Blob1024; - btreemap_v2_remove_blob_256_1024, remove_helper_v2, Blob256, Blob1024; - btreemap_v2_remove_blob_512_1024, remove_helper_v2, Blob512, Blob1024; - - // V2 blob 1024 x V - btreemap_v2_remove_blob_1024_4, remove_helper_v2, Blob1024, Blob4; - btreemap_v2_remove_blob_1024_8, remove_helper_v2, Blob1024, Blob8; - btreemap_v2_remove_blob_1024_16, remove_helper_v2, Blob1024, Blob16; - btreemap_v2_remove_blob_1024_32, remove_helper_v2, Blob1024, Blob32; - btreemap_v2_remove_blob_1024_64, remove_helper_v2, Blob1024, Blob64; - btreemap_v2_remove_blob_1024_128, remove_helper_v2, Blob1024, Blob128; - btreemap_v2_remove_blob_1024_256, remove_helper_v2, Blob1024, Blob256; - btreemap_v2_remove_blob_1024_512, remove_helper_v2, Blob1024, Blob512; - btreemap_v2_remove_blob_1024_1024, remove_helper_v2, Blob1024, Blob1024; - - // V2 vec K x 32 - btreemap_v2_remove_vec_4_32, remove_helper_v2, FixedVec4, FixedVec32; - btreemap_v2_remove_vec_8_32, remove_helper_v2, FixedVec8, FixedVec32; - btreemap_v2_remove_vec_16_32, remove_helper_v2, FixedVec16, FixedVec32; - btreemap_v2_remove_vec_32_32, remove_helper_v2, FixedVec32, FixedVec32; - btreemap_v2_remove_vec_64_32, remove_helper_v2, FixedVec64, FixedVec32; - btreemap_v2_remove_vec_128_32, remove_helper_v2, FixedVec128, FixedVec32; - btreemap_v2_remove_vec_256_32, remove_helper_v2, FixedVec256, FixedVec32; - btreemap_v2_remove_vec_512_32, remove_helper_v2, FixedVec512, FixedVec32; - - // V2 vec K x 1024 - btreemap_v2_remove_vec_4_1024, remove_helper_v2, FixedVec4, FixedVec1024; - btreemap_v2_remove_vec_8_1024, remove_helper_v2, FixedVec8, FixedVec1024; - btreemap_v2_remove_vec_16_1024, remove_helper_v2, FixedVec16, FixedVec1024; - btreemap_v2_remove_vec_32_1024, remove_helper_v2, FixedVec32, FixedVec1024; - btreemap_v2_remove_vec_64_1024, remove_helper_v2, FixedVec64, FixedVec1024; - btreemap_v2_remove_vec_128_1024, remove_helper_v2, FixedVec128, FixedVec1024; - btreemap_v2_remove_vec_256_1024, remove_helper_v2, FixedVec256, FixedVec1024; - btreemap_v2_remove_vec_512_1024, remove_helper_v2, FixedVec512, FixedVec1024; - - // V2 vec 1024 x V - btreemap_v2_remove_vec_1024_4, remove_helper_v2, FixedVec1024, FixedVec4; - btreemap_v2_remove_vec_1024_8, remove_helper_v2, FixedVec1024, FixedVec8; - btreemap_v2_remove_vec_1024_16, remove_helper_v2, FixedVec1024, FixedVec16; - btreemap_v2_remove_vec_1024_32, remove_helper_v2, FixedVec1024, FixedVec32; - btreemap_v2_remove_vec_1024_64, remove_helper_v2, FixedVec1024, FixedVec64; - btreemap_v2_remove_vec_1024_128, remove_helper_v2, FixedVec1024, FixedVec128; - btreemap_v2_remove_vec_1024_256, remove_helper_v2, FixedVec1024, FixedVec256; - btreemap_v2_remove_vec_1024_512, remove_helper_v2, FixedVec1024, FixedVec512; - btreemap_v2_remove_vec_1024_1024, remove_helper_v2, FixedVec1024, FixedVec1024; + // V2 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; + + // V2 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; + 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; + + // V2 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; + + // V2 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; + 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; // V2 u64 / blob8 / vec8 btreemap_v2_remove_u64_u64, remove_helper_v2, u64, u64; @@ -404,36 +350,27 @@ pub fn btreemap_v2_remove_10mib_values() -> BenchResult { bench_tests! { // === V1 === - // V1 blob K x 32 - btreemap_v1_get_blob_4_32, get_helper_v1, Blob4, Blob32; - btreemap_v1_get_blob_8_32, get_helper_v1, Blob8, Blob32; - btreemap_v1_get_blob_16_32, get_helper_v1, Blob16, Blob32; - btreemap_v1_get_blob_32_32, get_helper_v1, Blob32, Blob32; - btreemap_v1_get_blob_64_32, get_helper_v1, Blob64, Blob32; - btreemap_v1_get_blob_128_32, get_helper_v1, Blob128, Blob32; - btreemap_v1_get_blob_256_32, get_helper_v1, Blob256, Blob32; - btreemap_v1_get_blob_512_32, get_helper_v1, Blob512, Blob32; - - // V1 blob K x 1024 - btreemap_v1_get_blob_4_1024, get_helper_v1, Blob4, Blob1024; - btreemap_v1_get_blob_8_1024, get_helper_v1, Blob8, Blob1024; - btreemap_v1_get_blob_16_1024, get_helper_v1, Blob16, Blob1024; - btreemap_v1_get_blob_32_1024, get_helper_v1, Blob32, Blob1024; - btreemap_v1_get_blob_64_1024, get_helper_v1, Blob64, Blob1024; - btreemap_v1_get_blob_128_1024, get_helper_v1, Blob128, Blob1024; - btreemap_v1_get_blob_256_1024, get_helper_v1, Blob256, Blob1024; - btreemap_v1_get_blob_512_1024, get_helper_v1, Blob512, Blob1024; - - // V1 blob 1024 x V - btreemap_v1_get_blob_1024_4, get_helper_v1, Blob1024, Blob4; - btreemap_v1_get_blob_1024_8, get_helper_v1, Blob1024, Blob8; - btreemap_v1_get_blob_1024_16, get_helper_v1, Blob1024, Blob16; - btreemap_v1_get_blob_1024_32, get_helper_v1, Blob1024, Blob32; - btreemap_v1_get_blob_1024_64, get_helper_v1, Blob1024, Blob64; - btreemap_v1_get_blob_1024_128, get_helper_v1, Blob1024, Blob128; - btreemap_v1_get_blob_1024_256, get_helper_v1, Blob1024, Blob256; - btreemap_v1_get_blob_1024_512, get_helper_v1, Blob1024, Blob512; - btreemap_v1_get_blob_1024_1024, get_helper_v1, Blob1024, Blob1024; + // V1 blob K x 128 + btreemap_v1_get_blob_4_128, get_helper_v1, Blob4, Blob128; + btreemap_v1_get_blob_8_128, get_helper_v1, Blob8, Blob128; + btreemap_v1_get_blob_16_128, get_helper_v1, Blob16, Blob128; + btreemap_v1_get_blob_32_128, get_helper_v1, Blob32, Blob128; + btreemap_v1_get_blob_64_128, get_helper_v1, Blob64, Blob128; + btreemap_v1_get_blob_128_128, get_helper_v1, Blob128, Blob128; + btreemap_v1_get_blob_256_128, get_helper_v1, Blob256, Blob128; + btreemap_v1_get_blob_512_128, get_helper_v1, Blob512, Blob128; + btreemap_v1_get_blob_1024_128, get_helper_v1, Blob1024, Blob128; + + // V1 blob 32 x V + btreemap_v1_get_blob_32_4, get_helper_v1, Blob32, Blob4; + btreemap_v1_get_blob_32_8, get_helper_v1, Blob32, Blob8; + btreemap_v1_get_blob_32_16, get_helper_v1, Blob32, Blob16; + btreemap_v1_get_blob_32_32, get_helper_v1, Blob32, Blob32; + btreemap_v1_get_blob_32_64, get_helper_v1, Blob32, Blob64; + //btreemap_v1_get_blob_32_128, get_helper_v1, Blob32, Blob128; + btreemap_v1_get_blob_32_256, get_helper_v1, Blob32, Blob256; + btreemap_v1_get_blob_32_512, get_helper_v1, Blob32, Blob512; + btreemap_v1_get_blob_32_1024, get_helper_v1, Blob32, Blob1024; // V1 u64 / blob8 btreemap_v1_get_u64_u64, get_helper_v1, u64, u64; @@ -442,67 +379,49 @@ bench_tests! { // === V2 === - // V2 blob K x 32 - btreemap_v2_get_blob_4_32, get_helper_v2, Blob4, Blob32; - btreemap_v2_get_blob_8_32, get_helper_v2, Blob8, Blob32; - btreemap_v2_get_blob_16_32, get_helper_v2, Blob16, Blob32; - btreemap_v2_get_blob_32_32, get_helper_v2, Blob32, Blob32; - btreemap_v2_get_blob_64_32, get_helper_v2, Blob64, Blob32; - btreemap_v2_get_blob_128_32, get_helper_v2, Blob128, Blob32; - btreemap_v2_get_blob_256_32, get_helper_v2, Blob256, Blob32; - btreemap_v2_get_blob_512_32, get_helper_v2, Blob512, Blob32; - - // V2 blob K x 1024 - btreemap_v2_get_blob_4_1024, get_helper_v2, Blob4, Blob1024; - btreemap_v2_get_blob_8_1024, get_helper_v2, Blob8, Blob1024; - btreemap_v2_get_blob_16_1024, get_helper_v2, Blob16, Blob1024; - btreemap_v2_get_blob_32_1024, get_helper_v2, Blob32, Blob1024; - btreemap_v2_get_blob_64_1024, get_helper_v2, Blob64, Blob1024; - btreemap_v2_get_blob_128_1024, get_helper_v2, Blob128, Blob1024; - btreemap_v2_get_blob_256_1024, get_helper_v2, Blob256, Blob1024; - btreemap_v2_get_blob_512_1024, get_helper_v2, Blob512, Blob1024; - - // V2 blob 1024 x V - btreemap_v2_get_blob_1024_4, get_helper_v2, Blob1024, Blob4; - btreemap_v2_get_blob_1024_8, get_helper_v2, Blob1024, Blob8; - btreemap_v2_get_blob_1024_16, get_helper_v2, Blob1024, Blob16; - btreemap_v2_get_blob_1024_32, get_helper_v2, Blob1024, Blob32; - btreemap_v2_get_blob_1024_64, get_helper_v2, Blob1024, Blob64; - btreemap_v2_get_blob_1024_128, get_helper_v2, Blob1024, Blob128; - btreemap_v2_get_blob_1024_256, get_helper_v2, Blob1024, Blob256; - btreemap_v2_get_blob_1024_512, get_helper_v2, Blob1024, Blob512; - btreemap_v2_get_blob_1024_1024, get_helper_v2, Blob1024, Blob1024; - - // V2 vec K x 32 - btreemap_v2_get_vec_4_32, get_helper_v2, FixedVec4, FixedVec32; - btreemap_v2_get_vec_8_32, get_helper_v2, FixedVec8, FixedVec32; - btreemap_v2_get_vec_16_32, get_helper_v2, FixedVec16, FixedVec32; - btreemap_v2_get_vec_32_32, get_helper_v2, FixedVec32, FixedVec32; - btreemap_v2_get_vec_64_32, get_helper_v2, FixedVec64, FixedVec32; - btreemap_v2_get_vec_128_32, get_helper_v2, FixedVec128, FixedVec32; - btreemap_v2_get_vec_256_32, get_helper_v2, FixedVec256, FixedVec32; - btreemap_v2_get_vec_512_32, get_helper_v2, FixedVec512, FixedVec32; - - // V2 vec K x 1024 - btreemap_v2_get_vec_4_1024, get_helper_v2, FixedVec4, FixedVec1024; - btreemap_v2_get_vec_8_1024, get_helper_v2, FixedVec8, FixedVec1024; - btreemap_v2_get_vec_16_1024, get_helper_v2, FixedVec16, FixedVec1024; - btreemap_v2_get_vec_32_1024, get_helper_v2, FixedVec32, FixedVec1024; - btreemap_v2_get_vec_64_1024, get_helper_v2, FixedVec64, FixedVec1024; - btreemap_v2_get_vec_128_1024, get_helper_v2, FixedVec128, FixedVec1024; - btreemap_v2_get_vec_256_1024, get_helper_v2, FixedVec256, FixedVec1024; - btreemap_v2_get_vec_512_1024, get_helper_v2, FixedVec512, FixedVec1024; - - // V2 vec 1024 x V - btreemap_v2_get_vec_1024_4, get_helper_v2, FixedVec1024, FixedVec4; - btreemap_v2_get_vec_1024_8, get_helper_v2, FixedVec1024, FixedVec8; - btreemap_v2_get_vec_1024_16, get_helper_v2, FixedVec1024, FixedVec16; - btreemap_v2_get_vec_1024_32, get_helper_v2, FixedVec1024, FixedVec32; - btreemap_v2_get_vec_1024_64, get_helper_v2, FixedVec1024, FixedVec64; - btreemap_v2_get_vec_1024_128, get_helper_v2, FixedVec1024, FixedVec128; - btreemap_v2_get_vec_1024_256, get_helper_v2, FixedVec1024, FixedVec256; - btreemap_v2_get_vec_1024_512, get_helper_v2, FixedVec1024, FixedVec512; - btreemap_v2_get_vec_1024_1024, get_helper_v2, FixedVec1024, FixedVec1024; + // V2 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; + + // V2 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; + 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; + + // V2 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; + + // V2 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; + 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; // V2 u64 / blob8 / vec8 btreemap_v2_get_u64_u64, get_helper_v2, u64, u64; @@ -574,36 +493,27 @@ pub fn btreemap_v2_get_10mib_values() -> BenchResult { bench_tests! { // === V1 === - // V1 blob K x 32 - btreemap_v1_contains_blob_4_32, contains_helper_v1, Blob4, Blob32; - btreemap_v1_contains_blob_8_32, contains_helper_v1, Blob8, Blob32; - btreemap_v1_contains_blob_16_32, contains_helper_v1, Blob16, Blob32; - btreemap_v1_contains_blob_32_32, contains_helper_v1, Blob32, Blob32; - btreemap_v1_contains_blob_64_32, contains_helper_v1, Blob64, Blob32; - btreemap_v1_contains_blob_128_32, contains_helper_v1, Blob128, Blob32; - btreemap_v1_contains_blob_256_32, contains_helper_v1, Blob256, Blob32; - btreemap_v1_contains_blob_512_32, contains_helper_v1, Blob512, Blob32; - - // V1 blob K x 1024 - btreemap_v1_contains_blob_4_1024, contains_helper_v1, Blob4, Blob1024; - btreemap_v1_contains_blob_8_1024, contains_helper_v1, Blob8, Blob1024; - btreemap_v1_contains_blob_16_1024, contains_helper_v1, Blob16, Blob1024; - btreemap_v1_contains_blob_32_1024, contains_helper_v1, Blob32, Blob1024; - btreemap_v1_contains_blob_64_1024, contains_helper_v1, Blob64, Blob1024; - btreemap_v1_contains_blob_128_1024, contains_helper_v1, Blob128, Blob1024; - btreemap_v1_contains_blob_256_1024, contains_helper_v1, Blob256, Blob1024; - btreemap_v1_contains_blob_512_1024, contains_helper_v1, Blob512, Blob1024; - - // V1 blob 1024 x V - btreemap_v1_contains_blob_1024_4, contains_helper_v1, Blob1024, Blob4; - btreemap_v1_contains_blob_1024_8, contains_helper_v1, Blob1024, Blob8; - btreemap_v1_contains_blob_1024_16, contains_helper_v1, Blob1024, Blob16; - btreemap_v1_contains_blob_1024_32, contains_helper_v1, Blob1024, Blob32; - btreemap_v1_contains_blob_1024_64, contains_helper_v1, Blob1024, Blob64; - btreemap_v1_contains_blob_1024_128, contains_helper_v1, Blob1024, Blob128; - btreemap_v1_contains_blob_1024_256, contains_helper_v1, Blob1024, Blob256; - btreemap_v1_contains_blob_1024_512, contains_helper_v1, Blob1024, Blob512; - btreemap_v1_contains_blob_1024_1024, contains_helper_v1, Blob1024, Blob1024; + // V1 blob K x 128 + btreemap_v1_contains_blob_4_128, contains_helper_v1, Blob4, Blob128; + btreemap_v1_contains_blob_8_128, contains_helper_v1, Blob8, Blob128; + btreemap_v1_contains_blob_16_128, contains_helper_v1, Blob16, Blob128; + btreemap_v1_contains_blob_32_128, contains_helper_v1, Blob32, Blob128; + btreemap_v1_contains_blob_64_128, contains_helper_v1, Blob64, Blob128; + btreemap_v1_contains_blob_128_128, contains_helper_v1, Blob128, Blob128; + btreemap_v1_contains_blob_256_128, contains_helper_v1, Blob256, Blob128; + btreemap_v1_contains_blob_512_128, contains_helper_v1, Blob512, Blob128; + btreemap_v1_contains_blob_1024_128, contains_helper_v1, Blob1024, Blob128; + + // V1 blob 32 x V + btreemap_v1_contains_blob_32_4, contains_helper_v1, Blob32, Blob4; + btreemap_v1_contains_blob_32_8, contains_helper_v1, Blob32, Blob8; + btreemap_v1_contains_blob_32_16, contains_helper_v1, Blob32, Blob16; + btreemap_v1_contains_blob_32_32, contains_helper_v1, Blob32, Blob32; + btreemap_v1_contains_blob_32_64, contains_helper_v1, Blob32, Blob64; + //btreemap_v1_contains_blob_32_128, contains_helper_v1, Blob32, Blob128; + btreemap_v1_contains_blob_32_256, contains_helper_v1, Blob32, Blob256; + btreemap_v1_contains_blob_32_512, contains_helper_v1, Blob32, Blob512; + btreemap_v1_contains_blob_32_1024, contains_helper_v1, Blob32, Blob1024; // V1 u64 / blob8 btreemap_v1_contains_u64_u64, contains_helper_v1, u64, u64; @@ -612,67 +522,49 @@ bench_tests! { // === V2 === - // V2 blob K x 32 - btreemap_v2_contains_blob_4_32, contains_helper_v2, Blob4, Blob32; - btreemap_v2_contains_blob_8_32, contains_helper_v2, Blob8, Blob32; - btreemap_v2_contains_blob_16_32, contains_helper_v2, Blob16, Blob32; - btreemap_v2_contains_blob_32_32, contains_helper_v2, Blob32, Blob32; - btreemap_v2_contains_blob_64_32, contains_helper_v2, Blob64, Blob32; - btreemap_v2_contains_blob_128_32, contains_helper_v2, Blob128, Blob32; - btreemap_v2_contains_blob_256_32, contains_helper_v2, Blob256, Blob32; - btreemap_v2_contains_blob_512_32, contains_helper_v2, Blob512, Blob32; - - // V2 blob K x 1024 - btreemap_v2_contains_blob_4_1024, contains_helper_v2, Blob4, Blob1024; - btreemap_v2_contains_blob_8_1024, contains_helper_v2, Blob8, Blob1024; - btreemap_v2_contains_blob_16_1024, contains_helper_v2, Blob16, Blob1024; - btreemap_v2_contains_blob_32_1024, contains_helper_v2, Blob32, Blob1024; - btreemap_v2_contains_blob_64_1024, contains_helper_v2, Blob64, Blob1024; - btreemap_v2_contains_blob_128_1024, contains_helper_v2, Blob128, Blob1024; - btreemap_v2_contains_blob_256_1024, contains_helper_v2, Blob256, Blob1024; - btreemap_v2_contains_blob_512_1024, contains_helper_v2, Blob512, Blob1024; - - // V2 blob 1024 x V - btreemap_v2_contains_blob_1024_4, contains_helper_v2, Blob1024, Blob4; - btreemap_v2_contains_blob_1024_8, contains_helper_v2, Blob1024, Blob8; - btreemap_v2_contains_blob_1024_16, contains_helper_v2, Blob1024, Blob16; - btreemap_v2_contains_blob_1024_32, contains_helper_v2, Blob1024, Blob32; - btreemap_v2_contains_blob_1024_64, contains_helper_v2, Blob1024, Blob64; - btreemap_v2_contains_blob_1024_128, contains_helper_v2, Blob1024, Blob128; - btreemap_v2_contains_blob_1024_256, contains_helper_v2, Blob1024, Blob256; - btreemap_v2_contains_blob_1024_512, contains_helper_v2, Blob1024, Blob512; - btreemap_v2_contains_blob_1024_1024, contains_helper_v2, Blob1024, Blob1024; - - // V2 vec K x 32 - btreemap_v2_contains_vec_4_32, contains_helper_v2, FixedVec4, FixedVec32; - btreemap_v2_contains_vec_8_32, contains_helper_v2, FixedVec8, FixedVec32; - btreemap_v2_contains_vec_16_32, contains_helper_v2, FixedVec16, FixedVec32; - btreemap_v2_contains_vec_32_32, contains_helper_v2, FixedVec32, FixedVec32; - btreemap_v2_contains_vec_64_32, contains_helper_v2, FixedVec64, FixedVec32; - btreemap_v2_contains_vec_128_32, contains_helper_v2, FixedVec128, FixedVec32; - btreemap_v2_contains_vec_256_32, contains_helper_v2, FixedVec256, FixedVec32; - btreemap_v2_contains_vec_512_32, contains_helper_v2, FixedVec512, FixedVec32; - - // V2 vec K x 1024 - btreemap_v2_contains_vec_4_1024, contains_helper_v2, FixedVec4, FixedVec1024; - btreemap_v2_contains_vec_8_1024, contains_helper_v2, FixedVec8, FixedVec1024; - btreemap_v2_contains_vec_16_1024, contains_helper_v2, FixedVec16, FixedVec1024; - btreemap_v2_contains_vec_32_1024, contains_helper_v2, FixedVec32, FixedVec1024; - btreemap_v2_contains_vec_64_1024, contains_helper_v2, FixedVec64, FixedVec1024; - btreemap_v2_contains_vec_128_1024, contains_helper_v2, FixedVec128, FixedVec1024; - btreemap_v2_contains_vec_256_1024, contains_helper_v2, FixedVec256, FixedVec1024; - btreemap_v2_contains_vec_512_1024, contains_helper_v2, FixedVec512, FixedVec1024; - - // V2 vec 1024 x V - btreemap_v2_contains_vec_1024_4, contains_helper_v2, FixedVec1024, FixedVec4; - btreemap_v2_contains_vec_1024_8, contains_helper_v2, FixedVec1024, FixedVec8; - btreemap_v2_contains_vec_1024_16, contains_helper_v2, FixedVec1024, FixedVec16; - btreemap_v2_contains_vec_1024_32, contains_helper_v2, FixedVec1024, FixedVec32; - btreemap_v2_contains_vec_1024_64, contains_helper_v2, FixedVec1024, FixedVec64; - btreemap_v2_contains_vec_1024_128, contains_helper_v2, FixedVec1024, FixedVec128; - btreemap_v2_contains_vec_1024_256, contains_helper_v2, FixedVec1024, FixedVec256; - btreemap_v2_contains_vec_1024_512, contains_helper_v2, FixedVec1024, FixedVec512; - btreemap_v2_contains_vec_1024_1024, contains_helper_v2, FixedVec1024, FixedVec1024; + // V2 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; + + // V2 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; + 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; + + // V2 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; + + // V2 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; + 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; // V2 u64 / blob8 / vec8 btreemap_v2_contains_u64_u64, contains_helper_v2, u64, u64; @@ -742,434 +634,380 @@ pub fn btreemap_v2_contains_10mib_values() -> BenchResult { }) } -// /// 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) -// } -// )+ -// }; -// } - -// // First -// bench_tests! { -// // === V1 === - -// // V1 blob K x 32 -// btreemap_v1_pop_first_blob_4_32, pop_first_helper_v1, Blob4, Blob32; -// btreemap_v1_pop_first_blob_8_32, pop_first_helper_v1, Blob8, Blob32; -// btreemap_v1_pop_first_blob_16_32, pop_first_helper_v1, Blob16, Blob32; -// btreemap_v1_pop_first_blob_32_32, pop_first_helper_v1, Blob32, Blob32; -// btreemap_v1_pop_first_blob_64_32, pop_first_helper_v1, Blob64, Blob32; -// btreemap_v1_pop_first_blob_128_32, pop_first_helper_v1, Blob128, Blob32; -// btreemap_v1_pop_first_blob_256_32, pop_first_helper_v1, Blob256, Blob32; -// btreemap_v1_pop_first_blob_512_32, pop_first_helper_v1, Blob512, Blob32; - -// // V1 blob K x 1024 -// btreemap_v1_pop_first_blob_4_1024, pop_first_helper_v1, Blob4, Blob1024; -// btreemap_v1_pop_first_blob_8_1024, pop_first_helper_v1, Blob8, Blob1024; -// btreemap_v1_pop_first_blob_16_1024, pop_first_helper_v1, Blob16, Blob1024; -// btreemap_v1_pop_first_blob_32_1024, pop_first_helper_v1, Blob32, Blob1024; -// btreemap_v1_pop_first_blob_64_1024, pop_first_helper_v1, Blob64, Blob1024; -// btreemap_v1_pop_first_blob_128_1024, pop_first_helper_v1, Blob128, Blob1024; -// btreemap_v1_pop_first_blob_256_1024, pop_first_helper_v1, Blob256, Blob1024; -// btreemap_v1_pop_first_blob_512_1024, pop_first_helper_v1, Blob512, Blob1024; - -// // V1 blob 1024 x V -// btreemap_v1_pop_first_blob_1024_4, pop_first_helper_v1, Blob1024, Blob4; -// btreemap_v1_pop_first_blob_1024_8, pop_first_helper_v1, Blob1024, Blob8; -// btreemap_v1_pop_first_blob_1024_16, pop_first_helper_v1, Blob1024, Blob16; -// btreemap_v1_pop_first_blob_1024_32, pop_first_helper_v1, Blob1024, Blob32; -// btreemap_v1_pop_first_blob_1024_64, pop_first_helper_v1, Blob1024, Blob64; -// btreemap_v1_pop_first_blob_1024_128, pop_first_helper_v1, Blob1024, Blob128; -// btreemap_v1_pop_first_blob_1024_256, pop_first_helper_v1, Blob1024, Blob256; -// btreemap_v1_pop_first_blob_1024_512, pop_first_helper_v1, Blob1024, Blob512; -// btreemap_v1_pop_first_blob_1024_1024, pop_first_helper_v1, Blob1024, Blob1024; - -// // V1 u64 / blob8 -// btreemap_v1_pop_first_u64_u64, pop_first_helper_v1, u64, u64; -// btreemap_v1_pop_first_u64_blob8, pop_first_helper_v1, u64, Blob8; -// btreemap_v1_pop_first_blob8_u64, pop_first_helper_v1, Blob8, u64; - -// // === V2 === - -// // V2 blob K x 32 -// btreemap_v2_pop_first_blob_4_32, pop_first_helper_v2, Blob4, Blob32; -// btreemap_v2_pop_first_blob_8_32, pop_first_helper_v2, Blob8, Blob32; -// btreemap_v2_pop_first_blob_16_32, pop_first_helper_v2, Blob16, Blob32; -// btreemap_v2_pop_first_blob_32_32, pop_first_helper_v2, Blob32, Blob32; -// btreemap_v2_pop_first_blob_64_32, pop_first_helper_v2, Blob64, Blob32; -// btreemap_v2_pop_first_blob_128_32, pop_first_helper_v2, Blob128, Blob32; -// btreemap_v2_pop_first_blob_256_32, pop_first_helper_v2, Blob256, Blob32; -// btreemap_v2_pop_first_blob_512_32, pop_first_helper_v2, Blob512, Blob32; - -// // V2 blob K x 1024 -// btreemap_v2_pop_first_blob_4_1024, pop_first_helper_v2, Blob4, Blob1024; -// btreemap_v2_pop_first_blob_8_1024, pop_first_helper_v2, Blob8, Blob1024; -// btreemap_v2_pop_first_blob_16_1024, pop_first_helper_v2, Blob16, Blob1024; -// btreemap_v2_pop_first_blob_32_1024, pop_first_helper_v2, Blob32, Blob1024; -// btreemap_v2_pop_first_blob_64_1024, pop_first_helper_v2, Blob64, Blob1024; -// btreemap_v2_pop_first_blob_128_1024, pop_first_helper_v2, Blob128, Blob1024; -// btreemap_v2_pop_first_blob_256_1024, pop_first_helper_v2, Blob256, Blob1024; -// btreemap_v2_pop_first_blob_512_1024, pop_first_helper_v2, Blob512, Blob1024; - -// // V2 blob 1024 x V -// btreemap_v2_pop_first_blob_1024_4, pop_first_helper_v2, Blob1024, Blob4; -// btreemap_v2_pop_first_blob_1024_8, pop_first_helper_v2, Blob1024, Blob8; -// btreemap_v2_pop_first_blob_1024_16, pop_first_helper_v2, Blob1024, Blob16; -// btreemap_v2_pop_first_blob_1024_32, pop_first_helper_v2, Blob1024, Blob32; -// btreemap_v2_pop_first_blob_1024_64, pop_first_helper_v2, Blob1024, Blob64; -// btreemap_v2_pop_first_blob_1024_128, pop_first_helper_v2, Blob1024, Blob128; -// btreemap_v2_pop_first_blob_1024_256, pop_first_helper_v2, Blob1024, Blob256; -// btreemap_v2_pop_first_blob_1024_512, pop_first_helper_v2, Blob1024, Blob512; -// btreemap_v2_pop_first_blob_1024_1024, pop_first_helper_v2, Blob1024, Blob1024; - -// // V2 vec K x 32 -// btreemap_v2_pop_first_vec_4_32, pop_first_helper_v2, FixedVec4, FixedVec32; -// btreemap_v2_pop_first_vec_8_32, pop_first_helper_v2, FixedVec8, FixedVec32; -// btreemap_v2_pop_first_vec_16_32, pop_first_helper_v2, FixedVec16, FixedVec32; -// btreemap_v2_pop_first_vec_32_32, pop_first_helper_v2, FixedVec32, FixedVec32; -// btreemap_v2_pop_first_vec_64_32, pop_first_helper_v2, FixedVec64, FixedVec32; -// btreemap_v2_pop_first_vec_128_32, pop_first_helper_v2, FixedVec128, FixedVec32; -// btreemap_v2_pop_first_vec_256_32, pop_first_helper_v2, FixedVec256, FixedVec32; -// btreemap_v2_pop_first_vec_512_32, pop_first_helper_v2, FixedVec512, FixedVec32; - -// // V2 vec K x 1024 -// btreemap_v2_pop_first_vec_4_1024, pop_first_helper_v2, FixedVec4, FixedVec1024; -// btreemap_v2_pop_first_vec_8_1024, pop_first_helper_v2, FixedVec8, FixedVec1024; -// btreemap_v2_pop_first_vec_16_1024, pop_first_helper_v2, FixedVec16, FixedVec1024; -// btreemap_v2_pop_first_vec_32_1024, pop_first_helper_v2, FixedVec32, FixedVec1024; -// btreemap_v2_pop_first_vec_64_1024, pop_first_helper_v2, FixedVec64, FixedVec1024; -// btreemap_v2_pop_first_vec_128_1024, pop_first_helper_v2, FixedVec128, FixedVec1024; -// btreemap_v2_pop_first_vec_256_1024, pop_first_helper_v2, FixedVec256, FixedVec1024; -// btreemap_v2_pop_first_vec_512_1024, pop_first_helper_v2, FixedVec512, FixedVec1024; - -// // V2 vec 1024 x V -// btreemap_v2_pop_first_vec_1024_4, pop_first_helper_v2, FixedVec1024, FixedVec4; -// btreemap_v2_pop_first_vec_1024_8, pop_first_helper_v2, FixedVec1024, FixedVec8; -// btreemap_v2_pop_first_vec_1024_16, pop_first_helper_v2, FixedVec1024, FixedVec16; -// btreemap_v2_pop_first_vec_1024_32, pop_first_helper_v2, FixedVec1024, FixedVec32; -// btreemap_v2_pop_first_vec_1024_64, pop_first_helper_v2, FixedVec1024, FixedVec64; -// btreemap_v2_pop_first_vec_1024_128, pop_first_helper_v2, FixedVec1024, FixedVec128; -// btreemap_v2_pop_first_vec_1024_256, pop_first_helper_v2, FixedVec1024, FixedVec256; -// btreemap_v2_pop_first_vec_1024_512, pop_first_helper_v2, FixedVec1024, FixedVec512; -// btreemap_v2_pop_first_vec_1024_1024, pop_first_helper_v2, FixedVec1024, FixedVec1024; - -// // V2 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! { -// // === V1 === - -// // V1 blob K x 32 -// btreemap_v1_pop_last_blob_4_32, pop_last_helper_v1, Blob4, Blob32; -// btreemap_v1_pop_last_blob_8_32, pop_last_helper_v1, Blob8, Blob32; -// btreemap_v1_pop_last_blob_16_32, pop_last_helper_v1, Blob16, Blob32; -// btreemap_v1_pop_last_blob_32_32, pop_last_helper_v1, Blob32, Blob32; -// btreemap_v1_pop_last_blob_64_32, pop_last_helper_v1, Blob64, Blob32; -// btreemap_v1_pop_last_blob_128_32, pop_last_helper_v1, Blob128, Blob32; -// btreemap_v1_pop_last_blob_256_32, pop_last_helper_v1, Blob256, Blob32; -// btreemap_v1_pop_last_blob_512_32, pop_last_helper_v1, Blob512, Blob32; - -// // V1 blob K x 1024 -// btreemap_v1_pop_last_blob_4_1024, pop_last_helper_v1, Blob4, Blob1024; -// btreemap_v1_pop_last_blob_8_1024, pop_last_helper_v1, Blob8, Blob1024; -// btreemap_v1_pop_last_blob_16_1024, pop_last_helper_v1, Blob16, Blob1024; -// btreemap_v1_pop_last_blob_32_1024, pop_last_helper_v1, Blob32, Blob1024; -// btreemap_v1_pop_last_blob_64_1024, pop_last_helper_v1, Blob64, Blob1024; -// btreemap_v1_pop_last_blob_128_1024, pop_last_helper_v1, Blob128, Blob1024; -// btreemap_v1_pop_last_blob_256_1024, pop_last_helper_v1, Blob256, Blob1024; -// btreemap_v1_pop_last_blob_512_1024, pop_last_helper_v1, Blob512, Blob1024; - -// // V1 blob 1024 x V -// btreemap_v1_pop_last_blob_1024_4, pop_last_helper_v1, Blob1024, Blob4; -// btreemap_v1_pop_last_blob_1024_8, pop_last_helper_v1, Blob1024, Blob8; -// btreemap_v1_pop_last_blob_1024_16, pop_last_helper_v1, Blob1024, Blob16; -// btreemap_v1_pop_last_blob_1024_32, pop_last_helper_v1, Blob1024, Blob32; -// btreemap_v1_pop_last_blob_1024_64, pop_last_helper_v1, Blob1024, Blob64; -// btreemap_v1_pop_last_blob_1024_128, pop_last_helper_v1, Blob1024, Blob128; -// btreemap_v1_pop_last_blob_1024_256, pop_last_helper_v1, Blob1024, Blob256; -// btreemap_v1_pop_last_blob_1024_512, pop_last_helper_v1, Blob1024, Blob512; -// btreemap_v1_pop_last_blob_1024_1024, pop_last_helper_v1, Blob1024, Blob1024; - -// // V1 u64 / blob8 -// btreemap_v1_pop_last_u64_u64, pop_last_helper_v1, u64, u64; -// btreemap_v1_pop_last_u64_blob8, pop_last_helper_v1, u64, Blob8; -// btreemap_v1_pop_last_blob8_u64, pop_last_helper_v1, Blob8, u64; - -// // === V2 === - -// // V2 blob K x 32 -// btreemap_v2_pop_last_blob_4_32, pop_last_helper_v2, Blob4, Blob32; -// btreemap_v2_pop_last_blob_8_32, pop_last_helper_v2, Blob8, Blob32; -// btreemap_v2_pop_last_blob_16_32, pop_last_helper_v2, Blob16, Blob32; -// btreemap_v2_pop_last_blob_32_32, pop_last_helper_v2, Blob32, Blob32; -// btreemap_v2_pop_last_blob_64_32, pop_last_helper_v2, Blob64, Blob32; -// btreemap_v2_pop_last_blob_128_32, pop_last_helper_v2, Blob128, Blob32; -// btreemap_v2_pop_last_blob_256_32, pop_last_helper_v2, Blob256, Blob32; -// btreemap_v2_pop_last_blob_512_32, pop_last_helper_v2, Blob512, Blob32; - -// // V2 blob K x 1024 -// btreemap_v2_pop_last_blob_4_1024, pop_last_helper_v2, Blob4, Blob1024; -// btreemap_v2_pop_last_blob_8_1024, pop_last_helper_v2, Blob8, Blob1024; -// btreemap_v2_pop_last_blob_16_1024, pop_last_helper_v2, Blob16, Blob1024; -// btreemap_v2_pop_last_blob_32_1024, pop_last_helper_v2, Blob32, Blob1024; -// btreemap_v2_pop_last_blob_64_1024, pop_last_helper_v2, Blob64, Blob1024; -// btreemap_v2_pop_last_blob_128_1024, pop_last_helper_v2, Blob128, Blob1024; -// btreemap_v2_pop_last_blob_256_1024, pop_last_helper_v2, Blob256, Blob1024; -// btreemap_v2_pop_last_blob_512_1024, pop_last_helper_v2, Blob512, Blob1024; - -// // V2 blob 1024 x V -// btreemap_v2_pop_last_blob_1024_4, pop_last_helper_v2, Blob1024, Blob4; -// btreemap_v2_pop_last_blob_1024_8, pop_last_helper_v2, Blob1024, Blob8; -// btreemap_v2_pop_last_blob_1024_16, pop_last_helper_v2, Blob1024, Blob16; -// btreemap_v2_pop_last_blob_1024_32, pop_last_helper_v2, Blob1024, Blob32; -// btreemap_v2_pop_last_blob_1024_64, pop_last_helper_v2, Blob1024, Blob64; -// btreemap_v2_pop_last_blob_1024_128, pop_last_helper_v2, Blob1024, Blob128; -// btreemap_v2_pop_last_blob_1024_256, pop_last_helper_v2, Blob1024, Blob256; -// btreemap_v2_pop_last_blob_1024_512, pop_last_helper_v2, Blob1024, Blob512; -// btreemap_v2_pop_last_blob_1024_1024, pop_last_helper_v2, Blob1024, Blob1024; - -// // V2 vec K x 32 -// btreemap_v2_pop_last_vec_4_32, pop_last_helper_v2, FixedVec4, FixedVec32; -// btreemap_v2_pop_last_vec_8_32, pop_last_helper_v2, FixedVec8, FixedVec32; -// btreemap_v2_pop_last_vec_16_32, pop_last_helper_v2, FixedVec16, FixedVec32; -// btreemap_v2_pop_last_vec_32_32, pop_last_helper_v2, FixedVec32, FixedVec32; -// btreemap_v2_pop_last_vec_64_32, pop_last_helper_v2, FixedVec64, FixedVec32; -// btreemap_v2_pop_last_vec_128_32, pop_last_helper_v2, FixedVec128, FixedVec32; -// btreemap_v2_pop_last_vec_256_32, pop_last_helper_v2, FixedVec256, FixedVec32; -// btreemap_v2_pop_last_vec_512_32, pop_last_helper_v2, FixedVec512, FixedVec32; - -// // V2 vec K x 1024 -// btreemap_v2_pop_last_vec_4_1024, pop_last_helper_v2, FixedVec4, FixedVec1024; -// btreemap_v2_pop_last_vec_8_1024, pop_last_helper_v2, FixedVec8, FixedVec1024; -// btreemap_v2_pop_last_vec_16_1024, pop_last_helper_v2, FixedVec16, FixedVec1024; -// btreemap_v2_pop_last_vec_32_1024, pop_last_helper_v2, FixedVec32, FixedVec1024; -// btreemap_v2_pop_last_vec_64_1024, pop_last_helper_v2, FixedVec64, FixedVec1024; -// btreemap_v2_pop_last_vec_128_1024, pop_last_helper_v2, FixedVec128, FixedVec1024; -// btreemap_v2_pop_last_vec_256_1024, pop_last_helper_v2, FixedVec256, FixedVec1024; -// btreemap_v2_pop_last_vec_512_1024, pop_last_helper_v2, FixedVec512, FixedVec1024; - -// // V2 vec 1024 x V -// btreemap_v2_pop_last_vec_1024_4, pop_last_helper_v2, FixedVec1024, FixedVec4; -// btreemap_v2_pop_last_vec_1024_8, pop_last_helper_v2, FixedVec1024, FixedVec8; -// btreemap_v2_pop_last_vec_1024_16, pop_last_helper_v2, FixedVec1024, FixedVec16; -// btreemap_v2_pop_last_vec_1024_32, pop_last_helper_v2, FixedVec1024, FixedVec32; -// btreemap_v2_pop_last_vec_1024_64, pop_last_helper_v2, FixedVec1024, FixedVec64; -// btreemap_v2_pop_last_vec_1024_128, pop_last_helper_v2, FixedVec1024, FixedVec128; -// btreemap_v2_pop_last_vec_1024_256, pop_last_helper_v2, FixedVec1024, FixedVec256; -// btreemap_v2_pop_last_vec_1024_512, pop_last_helper_v2, FixedVec1024, FixedVec512; -// btreemap_v2_pop_last_vec_1024_1024, pop_last_helper_v2, FixedVec1024, FixedVec1024; - -// // V2 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_v1() -> BenchResult { -// pop_helper_v1::(Position::First) -// } - -// fn pop_last_helper_v1() -> BenchResult { -// pop_helper_v1::(Position::Last) -// } - -// 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_v1(position: Position) -> BenchResult { -// let btree = BTreeMap::new_v1(DefaultMemoryImpl::default()); -// pop_helper::(btree, position) -// } - -// fn pop_helper_v2(position: Position) -> BenchResult { -// let btree = BTreeMap::new(DefaultMemoryImpl::default()); -// pop_helper::(btree, position) -// } - -// enum Position { -// First, -// Last, -// } - -// fn pop_helper( -// mut btree: BTreeMap, -// position: Position, -// ) -> 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 { -// btree.insert(k, v); -// } - -// bench_fn(|| { -// for _ in 0..count { -// match position { -// Position::First => btree.pop_first(), -// Position::Last => btree.pop_last(), -// }; -// } -// }) -// } - -// bench_traversal_tests! { -// // === V1 === -// // V1 does not support unbounded types, eg. Vec<_>. - -// // === V2 === -// // 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, -// } - -// /// 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]); -// } - -// 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() {}), -// } -// } - -// /// 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) -// } -// )+ -// }; -// } - -// bench_range_tests! { -// // === V1 === -// // V1 does not support unbounded types, eg. Vec<_>. - -// // === V2 === -// 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 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 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 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(|| { -// btree -// .range((Bound::Included(0), Bound::Included(size as u32))) -// .filter(|(k, _)| k % 3 == 0) -// .map(|(_, v)| v.len()) -// .sum::() -// }) -// } - -// 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() -// }) -// } +/// 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) + } + )+ + }; +} + +// First +bench_tests! { + // === V1 === + + // V1 blob K x 128 + btreemap_v1_pop_first_blob_4_128, pop_first_helper_v1, Blob4, Blob128; + btreemap_v1_pop_first_blob_8_128, pop_first_helper_v1, Blob8, Blob128; + btreemap_v1_pop_first_blob_16_128, pop_first_helper_v1, Blob16, Blob128; + btreemap_v1_pop_first_blob_32_128, pop_first_helper_v1, Blob32, Blob128; + btreemap_v1_pop_first_blob_64_128, pop_first_helper_v1, Blob64, Blob128; + btreemap_v1_pop_first_blob_128_128, pop_first_helper_v1, Blob128, Blob128; + btreemap_v1_pop_first_blob_256_128, pop_first_helper_v1, Blob256, Blob128; + btreemap_v1_pop_first_blob_512_128, pop_first_helper_v1, Blob512, Blob128; + btreemap_v1_pop_first_blob_1024_128, pop_first_helper_v1, Blob1024, Blob128; + + // V1 blob 32 x V + btreemap_v1_pop_first_blob_32_4, pop_first_helper_v1, Blob32, Blob4; + btreemap_v1_pop_first_blob_32_8, pop_first_helper_v1, Blob32, Blob8; + btreemap_v1_pop_first_blob_32_16, pop_first_helper_v1, Blob32, Blob16; + btreemap_v1_pop_first_blob_32_32, pop_first_helper_v1, Blob32, Blob32; + btreemap_v1_pop_first_blob_32_64, pop_first_helper_v1, Blob32, Blob64; + //btreemap_v1_pop_first_blob_32_128, pop_first_helper_v1, Blob32, Blob128; + btreemap_v1_pop_first_blob_32_256, pop_first_helper_v1, Blob32, Blob256; + btreemap_v1_pop_first_blob_32_512, pop_first_helper_v1, Blob32, Blob512; + btreemap_v1_pop_first_blob_32_1024, pop_first_helper_v1, Blob32, Blob1024; + + // V1 u64 / blob8 + btreemap_v1_pop_first_u64_u64, pop_first_helper_v1, u64, u64; + btreemap_v1_pop_first_u64_blob8, pop_first_helper_v1, u64, Blob8; + btreemap_v1_pop_first_blob8_u64, pop_first_helper_v1, Blob8, u64; + + // === V2 === + + // V2 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; + + // V2 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; + 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; + + // V2 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; + + // V2 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; + 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; + + // V2 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! { + // === V1 === + + // V1 blob K x 128 + btreemap_v1_pop_last_blob_4_128, pop_last_helper_v1, Blob4, Blob128; + btreemap_v1_pop_last_blob_8_128, pop_last_helper_v1, Blob8, Blob128; + btreemap_v1_pop_last_blob_16_128, pop_last_helper_v1, Blob16, Blob128; + btreemap_v1_pop_last_blob_32_128, pop_last_helper_v1, Blob32, Blob128; + btreemap_v1_pop_last_blob_64_128, pop_last_helper_v1, Blob64, Blob128; + btreemap_v1_pop_last_blob_128_128, pop_last_helper_v1, Blob128, Blob128; + btreemap_v1_pop_last_blob_256_128, pop_last_helper_v1, Blob256, Blob128; + btreemap_v1_pop_last_blob_512_128, pop_last_helper_v1, Blob512, Blob128; + btreemap_v1_pop_last_blob_1024_128, pop_last_helper_v1, Blob1024, Blob128; + + // V1 blob 32 x V + btreemap_v1_pop_last_blob_32_4, pop_last_helper_v1, Blob32, Blob4; + btreemap_v1_pop_last_blob_32_8, pop_last_helper_v1, Blob32, Blob8; + btreemap_v1_pop_last_blob_32_16, pop_last_helper_v1, Blob32, Blob16; + btreemap_v1_pop_last_blob_32_32, pop_last_helper_v1, Blob32, Blob32; + btreemap_v1_pop_last_blob_32_64, pop_last_helper_v1, Blob32, Blob64; + //btreemap_v1_pop_last_blob_32_128, pop_last_helper_v1, Blob32, Blob128; + btreemap_v1_pop_last_blob_32_256, pop_last_helper_v1, Blob32, Blob256; + btreemap_v1_pop_last_blob_32_512, pop_last_helper_v1, Blob32, Blob512; + btreemap_v1_pop_last_blob_32_1024, pop_last_helper_v1, Blob32, Blob1024; + + // V1 u64 / blob8 + btreemap_v1_pop_last_u64_u64, pop_last_helper_v1, u64, u64; + btreemap_v1_pop_last_u64_blob8, pop_last_helper_v1, u64, Blob8; + btreemap_v1_pop_last_blob8_u64, pop_last_helper_v1, Blob8, u64; + + // === V2 === + + // V2 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; + + // V2 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; + 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; + + // V2 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; + + // V2 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; + 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; + + // V2 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_v1() -> BenchResult { + pop_helper_v1::(Position::First) +} + +fn pop_last_helper_v1() -> BenchResult { + pop_helper_v1::(Position::Last) +} + +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_v1(position: Position) -> BenchResult { + let btree = BTreeMap::new_v1(DefaultMemoryImpl::default()); + pop_helper::(btree, position) +} + +fn pop_helper_v2(position: Position) -> BenchResult { + let btree = BTreeMap::new(DefaultMemoryImpl::default()); + pop_helper::(btree, position) +} + +enum Position { + First, + Last, +} + +fn pop_helper( + mut btree: BTreeMap, + position: Position, +) -> 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 { + btree.insert(k, v); + } + + bench_fn(|| { + for _ in 0..count { + match position { + Position::First => btree.pop_first(), + Position::Last => btree.pop_last(), + }; + } + }) +} + +bench_traversal_tests! { + // === V1 === + // V1 does not support unbounded types, eg. Vec<_>. + + // === V2 === + // 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, +} + +/// 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]); + } + + 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() {}), + } +} + +/// 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) + } + )+ + }; +} + +bench_range_tests! { + // === V1 === + // V1 does not support unbounded types, eg. Vec<_>. + + // === V2 === + 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 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 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 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(|| { + btree + .range((Bound::Included(0), Bound::Included(size as u32))) + .filter(|(k, _)| k % 3 == 0) + .map(|(_, v)| v.len()) + .sum::() + }) +} + +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/canbench_results.yml b/canbench_results.yml index 9d17de8c..34b3762b 100644 --- a/canbench_results.yml +++ b/canbench_results.yml @@ -5,99 +5,51 @@ benches: heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_contains_blob_1024_1024: - total: - instructions: 4860529539 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} btreemap_v1_contains_blob_1024_128: total: instructions: 4841087105 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_contains_blob_1024_16: - total: - instructions: 4853399353 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_blob_1024_256: - total: - instructions: 4776041920 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_blob_1024_32: - total: - instructions: 4770238579 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_blob_1024_4: - total: - instructions: 4948898191 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_blob_1024_512: - total: - instructions: 4800709126 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_blob_1024_64: - total: - instructions: 4515063209 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_blob_1024_8: - total: - instructions: 4806336269 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_blob_128_1024: + btreemap_v1_contains_blob_128_128: total: - instructions: 848843273 + instructions: 848576334 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_contains_blob_128_32: + btreemap_v1_contains_blob_16_128: total: - instructions: 847210188 + instructions: 229783109 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_contains_blob_16_1024: + btreemap_v1_contains_blob_256_128: total: - instructions: 227336692 + instructions: 1405955072 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_contains_blob_16_32: + btreemap_v1_contains_blob_32_1024: total: - instructions: 229901238 + instructions: 260366378 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_contains_blob_256_1024: + btreemap_v1_contains_blob_32_128: total: - instructions: 1410857441 + instructions: 250945917 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_contains_blob_256_32: + btreemap_v1_contains_blob_32_16: total: - instructions: 1418047561 + instructions: 263985403 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_contains_blob_32_1024: + btreemap_v1_contains_blob_32_256: total: - instructions: 260366378 + instructions: 256218866 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -107,51 +59,51 @@ benches: heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_contains_blob_4_1024: + btreemap_v1_contains_blob_32_4: total: - instructions: 166001914 + instructions: 259485115 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_contains_blob_4_32: + btreemap_v1_contains_blob_32_512: total: - instructions: 169172932 + instructions: 256710347 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_contains_blob_512_1024: + btreemap_v1_contains_blob_32_64: total: - instructions: 2534138636 + instructions: 253200293 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_contains_blob_512_32: + btreemap_v1_contains_blob_32_8: total: - instructions: 2550685104 + instructions: 253531704 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_contains_blob_64_1024: + btreemap_v1_contains_blob_4_128: total: - instructions: 500287451 + instructions: 164310854 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_contains_blob_64_32: + btreemap_v1_contains_blob_512_128: total: - instructions: 496382037 + instructions: 2558114814 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_contains_blob_8_1024: + btreemap_v1_contains_blob_64_128: total: - instructions: 197009901 + instructions: 499276473 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_contains_blob_8_32: + btreemap_v1_contains_blob_8_128: total: - instructions: 192622129 + instructions: 190349023 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -173,99 +125,51 @@ benches: heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_get_blob_1024_1024: - total: - instructions: 4920163981 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} btreemap_v1_get_blob_1024_128: total: instructions: 4894778854 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_get_blob_1024_16: - total: - instructions: 4905268570 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob_1024_256: - total: - instructions: 4831291228 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob_1024_32: - total: - instructions: 4824264421 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob_1024_4: - total: - instructions: 5000601367 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob_1024_512: - total: - instructions: 4859933014 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob_1024_64: - total: - instructions: 4569337426 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob_1024_8: + btreemap_v1_get_blob_128_128: total: - instructions: 4859604499 + instructions: 866386638 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_get_blob_128_1024: + btreemap_v1_get_blob_16_128: total: - instructions: 871377876 + instructions: 244252154 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_get_blob_128_32: + btreemap_v1_get_blob_256_128: total: - instructions: 862501243 + instructions: 1429747414 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_get_blob_16_1024: - total: - instructions: 246862999 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob_16_32: + btreemap_v1_get_blob_32_1024: total: - instructions: 240218315 + instructions: 280106753 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_get_blob_256_1024: + btreemap_v1_get_blob_32_128: total: - instructions: 1438374032 + instructions: 264428450 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_get_blob_256_32: + btreemap_v1_get_blob_32_16: total: - instructions: 1441456515 + instructions: 271839337 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_get_blob_32_1024: + btreemap_v1_get_blob_32_256: total: - instructions: 280106753 + instructions: 271119738 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -275,51 +179,51 @@ benches: heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_get_blob_4_1024: + btreemap_v1_get_blob_32_4: total: - instructions: 183878301 + instructions: 266461283 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_get_blob_4_32: + btreemap_v1_get_blob_32_512: total: - instructions: 180420263 + instructions: 273686516 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_get_blob_512_1024: + btreemap_v1_get_blob_32_64: total: - instructions: 2574022258 + instructions: 264234944 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_get_blob_512_32: + btreemap_v1_get_blob_32_8: total: - instructions: 2584087654 + instructions: 261431662 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_get_blob_64_1024: + btreemap_v1_get_blob_4_128: total: - instructions: 522452995 + instructions: 177411615 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_get_blob_64_32: + btreemap_v1_get_blob_512_128: total: - instructions: 508142908 + instructions: 2592720058 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_get_blob_8_1024: + btreemap_v1_get_blob_64_128: total: - instructions: 217400958 + instructions: 515600037 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_get_blob_8_32: + btreemap_v1_get_blob_8_128: total: - instructions: 204994047 + instructions: 205217432 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -341,101 +245,53 @@ benches: heap_increase: 0 stable_memory_increase: 6 scopes: {} - btreemap_v1_insert_blob_1024_1024: - total: - instructions: 5207709950 - heap_increase: 1 - stable_memory_increase: 465 - scopes: {} btreemap_v1_insert_blob_1024_128: total: instructions: 5015476464 heap_increase: 0 stable_memory_increase: 262 scopes: {} - btreemap_v1_insert_blob_1024_16: - total: - instructions: 5028315925 - heap_increase: 1 - stable_memory_increase: 241 - scopes: {} - btreemap_v1_insert_blob_1024_256: - total: - instructions: 5026578552 - heap_increase: 0 - stable_memory_increase: 292 - scopes: {} - btreemap_v1_insert_blob_1024_32: - total: - instructions: 5010672456 - heap_increase: 0 - stable_memory_increase: 239 - scopes: {} - btreemap_v1_insert_blob_1024_4: - total: - instructions: 5019173114 - heap_increase: 0 - stable_memory_increase: 235 - scopes: {} - btreemap_v1_insert_blob_1024_512: - total: - instructions: 5080415945 - heap_increase: 0 - stable_memory_increase: 348 - scopes: {} - btreemap_v1_insert_blob_1024_64: + btreemap_v1_insert_blob_128_128: total: - instructions: 5060108441 + instructions: 1026455537 heap_increase: 0 - stable_memory_increase: 250 + stable_memory_increase: 61 scopes: {} - btreemap_v1_insert_blob_1024_8: + btreemap_v1_insert_blob_16_128: total: - instructions: 5000831473 + instructions: 393861615 heap_increase: 0 - stable_memory_increase: 237 + stable_memory_increase: 32 scopes: {} - btreemap_v1_insert_blob_128_1024: + btreemap_v1_insert_blob_256_128: total: - instructions: 1178039726 + instructions: 1574808547 heap_increase: 0 - stable_memory_increase: 260 + stable_memory_increase: 90 scopes: {} - btreemap_v1_insert_blob_128_32: - total: - instructions: 1000903808 - heap_increase: 0 - stable_memory_increase: 39 - scopes: {} - btreemap_v1_insert_blob_16_1024: - total: - instructions: 552845744 - heap_increase: 0 - stable_memory_increase: 215 - scopes: {} - btreemap_v1_insert_blob_16_32: + btreemap_v1_insert_blob_32_1024: total: - instructions: 372670059 + instructions: 586992426 heap_increase: 0 - stable_memory_increase: 13 + stable_memory_increase: 230 scopes: {} - btreemap_v1_insert_blob_256_1024: + btreemap_v1_insert_blob_32_128: total: - instructions: 1754412728 + instructions: 424843737 heap_increase: 0 - stable_memory_increase: 292 + stable_memory_increase: 37 scopes: {} - btreemap_v1_insert_blob_256_32: + btreemap_v1_insert_blob_32_16: total: - instructions: 1572859598 + instructions: 405798192 heap_increase: 0 - stable_memory_increase: 69 + stable_memory_increase: 14 scopes: {} - btreemap_v1_insert_blob_32_1024: + btreemap_v1_insert_blob_32_256: total: - instructions: 586992426 + instructions: 452817458 heap_increase: 0 - stable_memory_increase: 230 + stable_memory_increase: 66 scopes: {} btreemap_v1_insert_blob_32_32: total: @@ -443,53 +299,53 @@ benches: heap_increase: 0 stable_memory_increase: 17 scopes: {} - btreemap_v1_insert_blob_4_1024: + btreemap_v1_insert_blob_32_4: total: - instructions: 497172084 + instructions: 394551749 heap_increase: 0 - stable_memory_increase: 123 + stable_memory_increase: 11 scopes: {} - btreemap_v1_insert_blob_4_32: + btreemap_v1_insert_blob_32_512: total: - instructions: 293170759 + instructions: 496535046 heap_increase: 0 - stable_memory_increase: 6 + stable_memory_increase: 121 scopes: {} - btreemap_v1_insert_blob_512_1024: + btreemap_v1_insert_blob_32_64: total: - instructions: 2884888294 + instructions: 411896685 heap_increase: 0 - stable_memory_increase: 351 + stable_memory_increase: 24 scopes: {} - btreemap_v1_insert_blob_512_32: + btreemap_v1_insert_blob_32_8: total: - instructions: 2733695210 + instructions: 397206540 heap_increase: 0 - stable_memory_increase: 126 + stable_memory_increase: 12 scopes: {} - btreemap_v1_insert_blob_64_1024: + btreemap_v1_insert_blob_4_128: total: - instructions: 829867960 + instructions: 314942911 heap_increase: 0 - stable_memory_increase: 245 + stable_memory_increase: 17 scopes: {} - btreemap_v1_insert_blob_64_32: + btreemap_v1_insert_blob_512_128: total: - instructions: 650075636 + instructions: 2755573810 heap_increase: 0 - stable_memory_increase: 25 + stable_memory_increase: 148 scopes: {} - btreemap_v1_insert_blob_8_1024: + btreemap_v1_insert_blob_64_128: total: - instructions: 523394199 + instructions: 670128686 heap_increase: 0 - stable_memory_increase: 183 + stable_memory_increase: 46 scopes: {} - btreemap_v1_insert_blob_8_32: + btreemap_v1_insert_blob_8_128: total: - instructions: 332173141 + instructions: 360214534 heap_increase: 0 - stable_memory_increase: 10 + stable_memory_increase: 27 scopes: {} btreemap_v1_insert_u64_blob8: total: @@ -503,1181 +359,1085 @@ benches: heap_increase: 0 stable_memory_increase: 7 scopes: {} - btreemap_v1_remove_blob8_u64: + btreemap_v1_pop_first_blob8_u64: total: - instructions: 438619290 + instructions: 444720569 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_1024_1024: + btreemap_v1_pop_first_blob_1024_128: total: - instructions: 6655617002 + instructions: 9261592813 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_1024_128: + btreemap_v1_pop_first_blob_128_128: total: - instructions: 6358955616 + instructions: 1817778012 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_1024_16: + btreemap_v1_pop_first_blob_16_128: total: - instructions: 6316962376 + instructions: 593286637 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_1024_256: + btreemap_v1_pop_first_blob_256_128: total: - instructions: 6393821738 + instructions: 2896968751 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_1024_32: + btreemap_v1_pop_first_blob_32_1024: total: - instructions: 6290964623 + instructions: 959870868 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_1024_4: + btreemap_v1_pop_first_blob_32_128: total: - instructions: 6324492180 + instructions: 699286043 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_1024_512: + btreemap_v1_pop_first_blob_32_16: total: - instructions: 6512464451 + instructions: 644506427 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_1024_64: + btreemap_v1_pop_first_blob_32_256: total: - instructions: 6394319160 + instructions: 736390642 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_1024_8: + btreemap_v1_pop_first_blob_32_32: total: - instructions: 6335668255 + instructions: 656441746 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_128_1024: + btreemap_v1_pop_first_blob_32_4: total: - instructions: 1574699844 + instructions: 625217842 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_128_32: + btreemap_v1_pop_first_blob_32_512: total: - instructions: 1293638651 + instructions: 799853029 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_16_1024: + btreemap_v1_pop_first_blob_32_64: total: - instructions: 758158742 + instructions: 667712194 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_16_32: + btreemap_v1_pop_first_blob_32_8: total: - instructions: 493141553 + instructions: 640805887 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_256_1024: + btreemap_v1_pop_first_blob_4_128: total: - instructions: 2279187745 + instructions: 280909282 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_256_32: + btreemap_v1_pop_first_blob_512_128: total: - instructions: 2018514857 + instructions: 5012121460 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_32_1024: + btreemap_v1_pop_first_blob_64_128: total: - instructions: 827622133 + instructions: 1151643164 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_32_32: + btreemap_v1_pop_first_blob_8_128: total: - instructions: 555889629 + instructions: 469166093 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_4_1024: + btreemap_v1_pop_first_u64_blob8: total: - instructions: 486481876 + instructions: 556510476 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_4_32: + btreemap_v1_pop_first_u64_u64: total: - instructions: 325522867 + instructions: 559277236 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_512_1024: + btreemap_v1_pop_last_blob8_u64: total: - instructions: 3749017652 + instructions: 430135402 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_512_32: + btreemap_v1_pop_last_blob_1024_128: total: - instructions: 3421720215 + instructions: 9063815846 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_64_1024: + btreemap_v1_pop_last_blob_128_128: total: - instructions: 1141031832 + instructions: 1773217986 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_64_32: + btreemap_v1_pop_last_blob_16_128: total: - instructions: 858320710 + instructions: 584548731 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_8_1024: + btreemap_v1_pop_last_blob_256_128: total: - instructions: 644753912 + instructions: 2828277188 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_blob_8_32: + btreemap_v1_pop_last_blob_32_1024: total: - instructions: 445568657 + instructions: 938492602 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_u64_blob8: + btreemap_v1_pop_last_blob_32_128: total: - instructions: 485773174 + instructions: 676354903 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v1_remove_u64_u64: + btreemap_v1_pop_last_blob_32_16: total: - instructions: 498958513 + instructions: 628503764 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_10mib_values: + btreemap_v1_pop_last_blob_32_256: total: - instructions: 146956522 + instructions: 714857866 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob8_u64: + btreemap_v1_pop_last_blob_32_32: total: - instructions: 274635776 + instructions: 638532322 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_1024_1024: + btreemap_v1_pop_last_blob_32_4: total: - instructions: 4901945251 + instructions: 616339307 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_1024_128: + btreemap_v1_pop_last_blob_32_512: total: - instructions: 4888210734 + instructions: 785077508 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_1024_16: + btreemap_v1_pop_last_blob_32_64: total: - instructions: 4885497662 + instructions: 645617999 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_1024_256: + btreemap_v1_pop_last_blob_32_8: total: - instructions: 4834062224 + instructions: 619342043 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_1024_32: + btreemap_v1_pop_last_blob_4_128: total: - instructions: 4819737816 + instructions: 273152047 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_1024_4: + btreemap_v1_pop_last_blob_512_128: total: - instructions: 4968435000 + instructions: 4888295538 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_1024_512: + btreemap_v1_pop_last_blob_64_128: total: - instructions: 4871976979 + instructions: 1121279390 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_1024_64: + btreemap_v1_pop_last_blob_8_128: total: - instructions: 4570430815 + instructions: 465916920 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_1024_8: + btreemap_v1_pop_last_u64_blob8: total: - instructions: 4886342514 + instructions: 544226480 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_128_1024: + btreemap_v1_pop_last_u64_u64: total: - instructions: 920401506 + instructions: 546034093 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_128_32: + btreemap_v1_remove_blob8_u64: total: - instructions: 920406767 + instructions: 438619290 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_16_1024: + btreemap_v1_remove_blob_1024_128: total: - instructions: 297252343 + instructions: 6358955616 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_16_32: + btreemap_v1_remove_blob_128_128: total: - instructions: 299535476 + instructions: 1320363518 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_256_1024: + btreemap_v1_remove_blob_16_128: total: - instructions: 1485398875 + instructions: 542024477 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_256_32: + btreemap_v1_remove_blob_256_128: total: - instructions: 1486209076 + instructions: 2044886726 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_32_1024: + btreemap_v1_remove_blob_32_1024: total: - instructions: 331820465 + instructions: 827622133 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_32_32: + btreemap_v1_remove_blob_32_128: total: - instructions: 333405546 + instructions: 591703191 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_4_1024: + btreemap_v1_remove_blob_32_16: total: - instructions: 246678966 + instructions: 547780911 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_4_32: + btreemap_v1_remove_blob_32_256: total: - instructions: 250921142 + instructions: 627846490 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_512_1024: + btreemap_v1_remove_blob_32_32: total: - instructions: 2605520383 + instructions: 555889629 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_512_32: + btreemap_v1_remove_blob_32_4: total: - instructions: 2628510013 + instructions: 538909331 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_64_1024: + btreemap_v1_remove_blob_32_512: total: - instructions: 573055426 + instructions: 698810337 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_64_32: + btreemap_v1_remove_blob_32_64: total: - instructions: 574901596 + instructions: 577466550 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_8_1024: + btreemap_v1_remove_blob_32_8: total: - instructions: 273333290 + instructions: 540805249 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_blob_8_32: + btreemap_v1_remove_blob_4_128: total: - instructions: 269074480 + instructions: 344332716 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_u64_blob8: + btreemap_v1_remove_blob_512_128: total: - instructions: 231487140 + instructions: 3464987218 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_u64_u64: + btreemap_v1_remove_blob_64_128: total: - instructions: 234707484 + instructions: 878034091 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_u64_vec8: + btreemap_v1_remove_blob_8_128: total: - instructions: 231487140 + instructions: 472768582 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec8_u64: + btreemap_v1_remove_u64_blob8: total: - instructions: 363962662 + instructions: 485773174 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_1024_1024: + btreemap_v1_remove_u64_u64: total: - instructions: 2862621265 + instructions: 498958513 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_1024_128: + btreemap_v2_contains_10mib_values: total: - instructions: 2832968121 + instructions: 142172404 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_1024_16: + btreemap_v2_contains_blob8_u64: total: - instructions: 2847560840 + instructions: 274472580 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_1024_256: + btreemap_v2_contains_blob_1024_128: total: - instructions: 2960901927 + instructions: 4888113392 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_1024_32: + btreemap_v2_contains_blob_128_128: total: - instructions: 2813130169 + instructions: 921635587 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_1024_4: + btreemap_v2_contains_blob_16_128: total: - instructions: 2823437181 + instructions: 298926344 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_1024_512: + btreemap_v2_contains_blob_256_128: total: - instructions: 3022836247 + instructions: 1476448577 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_1024_64: + btreemap_v2_contains_blob_32_1024: total: - instructions: 2711158448 + instructions: 331723097 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_1024_8: + btreemap_v2_contains_blob_32_128: total: - instructions: 2811706575 + instructions: 328902616 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_128_1024: + btreemap_v2_contains_blob_32_16: total: - instructions: 816346609 + instructions: 332943555 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_128_32: + btreemap_v2_contains_blob_32_256: total: - instructions: 686306102 + instructions: 334271619 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_16_1024: + btreemap_v2_contains_blob_32_32: total: - instructions: 518731437 + instructions: 333308190 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_16_32: + btreemap_v2_contains_blob_32_4: total: - instructions: 380387260 + instructions: 330570325 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_256_1024: + btreemap_v2_contains_blob_32_512: total: - instructions: 1245905664 + instructions: 329379217 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_256_32: + btreemap_v2_contains_blob_32_64: total: - instructions: 1113328035 + instructions: 331640411 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_32_1024: + btreemap_v2_contains_blob_32_8: total: - instructions: 579467615 + instructions: 331252604 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_32_32: + btreemap_v2_contains_blob_4_128: total: - instructions: 405559998 + instructions: 244866658 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_4_1024: + btreemap_v2_contains_blob_512_128: total: - instructions: 474044633 + instructions: 2622812000 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_4_32: + btreemap_v2_contains_blob_64_128: total: - instructions: 357895719 + instructions: 576398113 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_512_1024: + btreemap_v2_contains_blob_8_128: total: - instructions: 1874954825 + instructions: 265341082 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_512_32: + btreemap_v2_contains_u64_blob8: total: - instructions: 1762465969 + instructions: 231389818 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_64_1024: + btreemap_v2_contains_u64_u64: total: - instructions: 636979765 + instructions: 234571046 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_64_32: + btreemap_v2_contains_u64_vec8: total: - instructions: 478802000 + instructions: 231389818 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_8_1024: + btreemap_v2_contains_vec8_u64: total: - instructions: 477523763 + instructions: 363865474 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_contains_vec_8_32: + btreemap_v2_contains_vec_1024_128: total: - instructions: 359188931 + instructions: 2831338815 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_10mib_values: + btreemap_v2_contains_vec_128_128: total: - instructions: 1232222453 + instructions: 696836232 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob8_u64: + btreemap_v2_contains_vec_16_128: total: - instructions: 297597506 + instructions: 429805265 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_1024_1024: + btreemap_v2_contains_vec_256_128: total: - instructions: 4970104679 + instructions: 1213972484 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_1024_128: + btreemap_v2_contains_vec_32_1024: total: - instructions: 4951884853 + instructions: 577978742 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_1024_16: + btreemap_v2_contains_vec_32_128: total: - instructions: 4947724611 + instructions: 489185033 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_1024_256: + btreemap_v2_contains_vec_32_16: total: - instructions: 4898416366 + instructions: 405008744 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_1024_32: + btreemap_v2_contains_vec_32_256: total: - instructions: 4882558153 + instructions: 521037355 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_1024_4: + btreemap_v2_contains_vec_32_32: total: - instructions: 5027657762 + instructions: 405462644 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_1024_512: + btreemap_v2_contains_vec_32_4: total: - instructions: 4937567018 + instructions: 403519431 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_1024_64: + btreemap_v2_contains_vec_32_512: total: - instructions: 4633714887 + instructions: 538788189 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_1024_8: + btreemap_v2_contains_vec_32_64: total: - instructions: 4947502503 + instructions: 461934047 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_128_1024: + btreemap_v2_contains_vec_32_8: total: - instructions: 952489580 + instructions: 403356570 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_128_32: + btreemap_v2_contains_vec_4_128: total: - instructions: 947210703 + instructions: 397722332 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_16_1024: + btreemap_v2_contains_vec_512_128: total: - instructions: 322983678 + instructions: 1813147976 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_16_32: + btreemap_v2_contains_vec_64_128: total: - instructions: 320241007 + instructions: 595292478 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_256_1024: + btreemap_v2_contains_vec_8_128: total: - instructions: 1522607391 + instructions: 378137062 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_256_32: + btreemap_v2_get_10mib_values: total: - instructions: 1518131665 + instructions: 1227438335 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_32_1024: + btreemap_v2_get_blob8_u64: total: - instructions: 358156701 + instructions: 297434310 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_32_32: + btreemap_v2_get_blob_1024_128: total: - instructions: 354316687 + instructions: 4951787511 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_4_1024: + btreemap_v2_get_blob_128_128: total: - instructions: 268482525 + instructions: 949302963 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_4_32: + btreemap_v2_get_blob_16_128: total: - instructions: 268054016 + instructions: 320589738 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_512_1024: + btreemap_v2_get_blob_256_128: total: - instructions: 2652993640 + instructions: 1509206562 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_512_32: + btreemap_v2_get_blob_32_1024: total: - instructions: 2670661275 + instructions: 358059333 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_64_1024: + btreemap_v2_get_blob_32_128: total: - instructions: 602568053 + instructions: 350707452 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_64_32: + btreemap_v2_get_blob_32_16: total: - instructions: 599067839 + instructions: 353348466 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_8_1024: + btreemap_v2_get_blob_32_256: total: - instructions: 299806568 + instructions: 356718978 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_blob_8_32: + btreemap_v2_get_blob_32_32: total: - instructions: 289733637 + instructions: 354219331 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_u64_blob8: + btreemap_v2_get_blob_32_4: total: - instructions: 250114887 + instructions: 348029515 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_u64_u64: + btreemap_v2_get_blob_32_512: total: - instructions: 256842703 + instructions: 353097169 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_u64_vec8: + btreemap_v2_get_blob_32_64: total: - instructions: 252027420 + instructions: 352954098 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec8_u64: + btreemap_v2_get_blob_32_8: total: - instructions: 374219203 + instructions: 350573859 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec_1024_1024: + btreemap_v2_get_blob_4_128: total: - instructions: 2889476660 + instructions: 262677855 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec_1024_128: + btreemap_v2_get_blob_512_128: total: - instructions: 2858226995 + instructions: 2665812755 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec_1024_16: + btreemap_v2_get_blob_64_128: total: - instructions: 2873975801 + instructions: 601488871 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec_1024_256: + btreemap_v2_get_blob_8_128: total: - instructions: 2979583115 + instructions: 286898634 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec_1024_32: + btreemap_v2_get_u64_blob8: total: - instructions: 2849360217 + instructions: 250017565 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec_1024_4: + btreemap_v2_get_u64_u64: total: - instructions: 2861341630 + instructions: 256706265 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec_1024_512: + btreemap_v2_get_u64_vec8: total: - instructions: 3050465118 + instructions: 251930098 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec_1024_64: + btreemap_v2_get_vec8_u64: total: - instructions: 2744923221 + instructions: 374122015 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec_1024_8: + btreemap_v2_get_vec_1024_128: total: - instructions: 2837638405 + instructions: 2856597689 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec_128_1024: + btreemap_v2_get_vec_128_128: total: - instructions: 851479162 + instructions: 709607342 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec_128_32: + btreemap_v2_get_vec_16_128: total: - instructions: 697241081 + instructions: 439737518 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec_16_1024: + btreemap_v2_get_vec_256_128: total: - instructions: 546949594 + instructions: 1227258042 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec_16_32: + btreemap_v2_get_vec_32_1024: total: - instructions: 389500176 + instructions: 599978021 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec_256_1024: + btreemap_v2_get_vec_32_128: total: - instructions: 1275635836 + instructions: 499470578 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec_256_32: + btreemap_v2_get_vec_32_16: total: - instructions: 1177240972 + instructions: 413077375 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec_32_1024: + btreemap_v2_get_vec_32_256: total: - instructions: 601466894 + instructions: 538970368 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_32: total: - instructions: 413774110 + instructions: 413676756 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec_4_1024: + btreemap_v2_get_vec_32_4: total: - instructions: 500983177 + instructions: 411466454 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec_4_32: + btreemap_v2_get_vec_32_512: total: - instructions: 367080455 + instructions: 543377322 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec_512_1024: + btreemap_v2_get_vec_32_64: total: - instructions: 1903151146 + instructions: 470538835 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec_512_32: + btreemap_v2_get_vec_32_8: total: - instructions: 1769754252 + instructions: 411342877 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec_64_1024: + btreemap_v2_get_vec_4_128: total: - instructions: 673784588 + instructions: 407364152 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec_64_32: + btreemap_v2_get_vec_512_128: total: - instructions: 487241630 + instructions: 1826539276 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec_8_1024: + btreemap_v2_get_vec_64_128: total: - instructions: 504391950 + instructions: 606773904 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_get_vec_8_32: + btreemap_v2_get_vec_8_128: total: - instructions: 368123300 + instructions: 388154870 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_insert_10mib_values: total: - instructions: 5252724364 + instructions: 5247381607 heap_increase: 322 stable_memory_increase: 3613 scopes: {} btreemap_v2_insert_blob8_u64: total: - instructions: 441171094 + instructions: 441032184 heap_increase: 0 stable_memory_increase: 4 scopes: {} - btreemap_v2_insert_blob_1024_1024: - total: - instructions: 5180050332 - heap_increase: 0 - stable_memory_increase: 261 - scopes: {} btreemap_v2_insert_blob_1024_128: total: - instructions: 5106840293 + instructions: 5106748945 heap_increase: 0 stable_memory_increase: 196 scopes: {} - btreemap_v2_insert_blob_1024_16: - total: - instructions: 5115294930 - heap_increase: 1 - stable_memory_increase: 181 - scopes: {} - btreemap_v2_insert_blob_1024_256: - total: - instructions: 5120379520 - heap_increase: 0 - stable_memory_increase: 219 - scopes: {} - btreemap_v2_insert_blob_1024_32: - total: - instructions: 5108988225 - heap_increase: 0 - stable_memory_increase: 180 - scopes: {} - btreemap_v2_insert_blob_1024_4: - total: - instructions: 5098176833 - heap_increase: 0 - stable_memory_increase: 176 - scopes: {} - btreemap_v2_insert_blob_1024_512: - total: - instructions: 5180050332 - heap_increase: 0 - stable_memory_increase: 261 - scopes: {} - btreemap_v2_insert_blob_1024_64: + btreemap_v2_insert_blob_128_128: total: - instructions: 5159128735 + instructions: 1129324662 heap_increase: 0 - stable_memory_increase: 188 + stable_memory_increase: 46 scopes: {} - btreemap_v2_insert_blob_1024_8: + btreemap_v2_insert_blob_16_128: total: - instructions: 5103131870 + instructions: 493504535 heap_increase: 0 - stable_memory_increase: 178 - scopes: {} - btreemap_v2_insert_blob_128_1024: - total: - instructions: 1278216760 - heap_increase: 0 - stable_memory_increase: 195 - scopes: {} - btreemap_v2_insert_blob_128_32: - total: - instructions: 1100595600 - heap_increase: 0 - stable_memory_increase: 30 + stable_memory_increase: 24 scopes: {} - btreemap_v2_insert_blob_16_1024: + btreemap_v2_insert_blob_256_128: total: - instructions: 647586576 + instructions: 1678818342 heap_increase: 0 - stable_memory_increase: 161 + stable_memory_increase: 67 scopes: {} - btreemap_v2_insert_blob_16_32: + btreemap_v2_insert_blob_32_1024: total: - instructions: 473655877 + instructions: 684286239 heap_increase: 0 - stable_memory_increase: 10 + stable_memory_increase: 173 scopes: {} - btreemap_v2_insert_blob_256_1024: + btreemap_v2_insert_blob_32_128: total: - instructions: 1852519260 + instructions: 526182471 heap_increase: 0 - stable_memory_increase: 219 + stable_memory_increase: 28 scopes: {} - btreemap_v2_insert_blob_256_32: + btreemap_v2_insert_blob_32_16: total: - instructions: 1672107290 + instructions: 505430171 heap_increase: 0 - stable_memory_increase: 51 + stable_memory_increase: 11 scopes: {} - btreemap_v2_insert_blob_32_1024: + btreemap_v2_insert_blob_32_256: total: - instructions: 684377239 + instructions: 557130690 heap_increase: 0 - stable_memory_increase: 173 + stable_memory_increase: 49 scopes: {} btreemap_v2_insert_blob_32_32: total: - instructions: 511032338 + instructions: 510941484 heap_increase: 0 stable_memory_increase: 13 scopes: {} - btreemap_v2_insert_blob_4_1024: + btreemap_v2_insert_blob_32_4: total: - instructions: 593823568 + instructions: 493801642 heap_increase: 0 - stable_memory_increase: 92 + stable_memory_increase: 8 scopes: {} - btreemap_v2_insert_blob_4_32: + btreemap_v2_insert_blob_32_512: total: - instructions: 392681017 + instructions: 594780948 heap_increase: 0 - stable_memory_increase: 4 + stable_memory_increase: 91 scopes: {} - btreemap_v2_insert_blob_512_1024: + btreemap_v2_insert_blob_32_64: total: - instructions: 2978880860 + instructions: 516598879 heap_increase: 0 - stable_memory_increase: 263 + stable_memory_increase: 18 scopes: {} - btreemap_v2_insert_blob_512_32: + btreemap_v2_insert_blob_32_8: total: - instructions: 2831388920 + instructions: 500842430 heap_increase: 0 - stable_memory_increase: 94 + stable_memory_increase: 9 scopes: {} - btreemap_v2_insert_blob_64_1024: + btreemap_v2_insert_blob_4_128: total: - instructions: 925927362 + instructions: 412410749 heap_increase: 0 - stable_memory_increase: 183 + stable_memory_increase: 13 scopes: {} - btreemap_v2_insert_blob_64_32: + btreemap_v2_insert_blob_512_128: total: - instructions: 751244586 + instructions: 2855923459 heap_increase: 0 - stable_memory_increase: 18 + stable_memory_increase: 111 scopes: {} - btreemap_v2_insert_blob_8_1024: + btreemap_v2_insert_blob_64_128: total: - instructions: 625204149 + instructions: 773253385 heap_increase: 0 - stable_memory_increase: 138 + stable_memory_increase: 34 scopes: {} - btreemap_v2_insert_blob_8_32: + btreemap_v2_insert_blob_8_128: total: - instructions: 436268806 + instructions: 463511327 heap_increase: 0 - stable_memory_increase: 7 + stable_memory_increase: 20 scopes: {} btreemap_v2_insert_u64_blob8: total: - instructions: 420258959 + instructions: 420165705 heap_increase: 0 stable_memory_increase: 5 scopes: {} btreemap_v2_insert_u64_u64: total: - instructions: 428901961 + instructions: 428784053 heap_increase: 0 stable_memory_increase: 6 scopes: {} btreemap_v2_insert_u64_vec8: total: - instructions: 425827518 + instructions: 425736804 heap_increase: 0 stable_memory_increase: 21 scopes: {} btreemap_v2_insert_vec8_u64: total: - instructions: 580082886 + instructions: 579996622 heap_increase: 0 stable_memory_increase: 16 scopes: {} - btreemap_v2_insert_vec_1024_1024: - total: - instructions: 3574266984 - heap_increase: 0 - stable_memory_increase: 338 - scopes: {} btreemap_v2_insert_vec_1024_128: total: - instructions: 3317557144 + instructions: 3315990001 heap_increase: 0 stable_memory_increase: 193 scopes: {} - btreemap_v2_insert_vec_1024_16: - total: - instructions: 3317923328 - heap_increase: 1 - stable_memory_increase: 180 - scopes: {} - btreemap_v2_insert_vec_1024_256: - total: - instructions: 3360733153 - heap_increase: 0 - stable_memory_increase: 210 - scopes: {} - btreemap_v2_insert_vec_1024_32: - total: - instructions: 3334793749 - heap_increase: 0 - stable_memory_increase: 179 - scopes: {} - btreemap_v2_insert_vec_1024_4: - total: - instructions: 3316509978 - heap_increase: 0 - stable_memory_increase: 179 - scopes: {} - btreemap_v2_insert_vec_1024_512: - total: - instructions: 3470261607 - heap_increase: 0 - stable_memory_increase: 253 - scopes: {} - btreemap_v2_insert_vec_1024_64: - total: - instructions: 3329042185 - heap_increase: 0 - stable_memory_increase: 180 - scopes: {} - btreemap_v2_insert_vec_1024_8: + btreemap_v2_insert_vec_128_128: total: - instructions: 3305034354 + instructions: 1093934829 heap_increase: 0 - stable_memory_increase: 179 - scopes: {} - btreemap_v2_insert_vec_128_1024: - total: - instructions: 1489131860 - heap_increase: 0 - stable_memory_increase: 191 + stable_memory_increase: 51 scopes: {} - btreemap_v2_insert_vec_128_32: + btreemap_v2_insert_vec_16_128: total: - instructions: 1029233881 + instructions: 703129374 heap_increase: 0 - stable_memory_increase: 34 + stable_memory_increase: 31 scopes: {} - btreemap_v2_insert_vec_16_1024: + btreemap_v2_insert_vec_256_128: total: - instructions: 1151995080 + instructions: 1499382744 heap_increase: 0 - stable_memory_increase: 161 + stable_memory_increase: 71 scopes: {} - btreemap_v2_insert_vec_16_32: + btreemap_v2_insert_vec_32_1024: total: - instructions: 622127676 + instructions: 1221878910 heap_increase: 0 - stable_memory_increase: 19 + stable_memory_increase: 171 scopes: {} - btreemap_v2_insert_vec_256_1024: + btreemap_v2_insert_vec_32_128: total: - instructions: 1941235220 + instructions: 759896597 heap_increase: 0 - stable_memory_increase: 209 + stable_memory_increase: 33 scopes: {} - btreemap_v2_insert_vec_256_32: + btreemap_v2_insert_vec_32_16: total: - instructions: 1532612070 + instructions: 661502010 heap_increase: 0 - stable_memory_increase: 57 + stable_memory_increase: 20 scopes: {} - btreemap_v2_insert_vec_32_1024: + btreemap_v2_insert_vec_32_256: total: - instructions: 1223329953 + instructions: 889401216 heap_increase: 0 - stable_memory_increase: 171 + stable_memory_increase: 54 scopes: {} btreemap_v2_insert_vec_32_32: total: - instructions: 663365201 + instructions: 663274347 heap_increase: 0 stable_memory_increase: 20 scopes: {} - btreemap_v2_insert_vec_4_1024: + btreemap_v2_insert_vec_32_4: total: - instructions: 1022438177 + instructions: 658751257 heap_increase: 0 - stable_memory_increase: 94 + stable_memory_increase: 20 scopes: {} - btreemap_v2_insert_vec_4_32: + btreemap_v2_insert_vec_32_512: total: - instructions: 546203754 + instructions: 1005199763 heap_increase: 0 - stable_memory_increase: 11 + stable_memory_increase: 91 scopes: {} - btreemap_v2_insert_vec_512_1024: + btreemap_v2_insert_vec_32_64: total: - instructions: 2524636327 + instructions: 689418054 heap_increase: 0 - stable_memory_increase: 253 + stable_memory_increase: 24 scopes: {} - btreemap_v2_insert_vec_512_32: + btreemap_v2_insert_vec_32_8: total: - instructions: 2145340675 + instructions: 658797740 heap_increase: 0 - stable_memory_increase: 94 + stable_memory_increase: 20 scopes: {} - btreemap_v2_insert_vec_64_1024: + btreemap_v2_insert_vec_4_128: total: - instructions: 1313690217 + instructions: 608558208 heap_increase: 0 - stable_memory_increase: 176 + stable_memory_increase: 16 scopes: {} - btreemap_v2_insert_vec_64_32: + btreemap_v2_insert_vec_512_128: total: - instructions: 762602515 + instructions: 2121579122 heap_increase: 0 - stable_memory_increase: 24 + stable_memory_increase: 112 scopes: {} - btreemap_v2_insert_vec_8_1024: + btreemap_v2_insert_vec_64_128: total: - instructions: 1113016466 + instructions: 877271955 heap_increase: 0 - stable_memory_increase: 139 + stable_memory_increase: 41 scopes: {} - btreemap_v2_insert_vec_8_32: + btreemap_v2_insert_vec_8_128: total: - instructions: 595223082 + instructions: 665810021 heap_increase: 0 - stable_memory_increase: 16 + stable_memory_increase: 23 scopes: {} btreemap_v2_mem_manager_contains_blob512_u64: total: @@ -1693,19 +1453,19 @@ benches: scopes: {} btreemap_v2_mem_manager_contains_u64_u64: total: - instructions: 312585153 + instructions: 312538209 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_contains_u64_vec512: total: - instructions: 391197453 + instructions: 390417972 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_contains_vec512_u64: total: - instructions: 1750503502 + instructions: 1749726676 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1723,25 +1483,25 @@ benches: scopes: {} btreemap_v2_mem_manager_get_u64_u64: total: - instructions: 336251042 + instructions: 336204098 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_u64_vec512: total: - instructions: 428153952 + instructions: 427374471 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_vec512_u64: total: - instructions: 1788068667 + instructions: 1787291841 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_blob512_u64: total: - instructions: 2955955234 + instructions: 2955955174 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1753,25 +1513,25 @@ benches: scopes: {} btreemap_v2_mem_manager_insert_u64_u64: total: - instructions: 558023737 + instructions: 557991985 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_u64_vec512: total: - instructions: 892464403 + instructions: 891669337 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_vec512_u64: total: - instructions: 2228280135 + instructions: 2227488234 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_blob512_u64: total: - instructions: 3835034843 + instructions: 3835034819 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1783,355 +1543,889 @@ benches: scopes: {} btreemap_v2_mem_manager_remove_u64_u64: total: - instructions: 810762066 + instructions: 810717102 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_u64_vec512: total: - instructions: 1283931285 + instructions: 1283006391 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_vec512_u64: total: - instructions: 3298308988 + instructions: 3297384664 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_10mib_values: + btreemap_v2_pop_first_blob8_u64: total: - instructions: 5578668875 + instructions: 617303857 heap_increase: 0 - stable_memory_increase: 657 + stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob8_u64: + btreemap_v2_pop_first_blob_1024_128: total: - instructions: 587236879 + instructions: 9400875452 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_1024_1024: + btreemap_v2_pop_first_blob_128_128: total: - instructions: 6766827490 + instructions: 2004881412 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_1024_128: + btreemap_v2_pop_first_blob_16_128: total: - instructions: 6476290578 + instructions: 763500904 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_1024_16: + btreemap_v2_pop_first_blob_256_128: total: - instructions: 6430623071 + instructions: 3085312367 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_1024_256: + btreemap_v2_pop_first_blob_32_1024: total: - instructions: 6510600309 + instructions: 1135710878 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_1024_32: + btreemap_v2_pop_first_blob_32_128: total: - instructions: 6416422975 + instructions: 882120705 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_1024_4: + btreemap_v2_pop_first_blob_32_16: total: - instructions: 6429060375 + instructions: 827097840 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_1024_512: + btreemap_v2_pop_first_blob_32_256: total: - instructions: 6629131704 + instructions: 912455234 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_1024_64: + btreemap_v2_pop_first_blob_32_32: total: - instructions: 6499721027 + instructions: 838869815 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_1024_8: + btreemap_v2_pop_first_blob_32_4: total: - instructions: 6447589404 + instructions: 807319067 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_128_1024: + btreemap_v2_pop_first_blob_32_512: total: - instructions: 1717818906 + instructions: 977149672 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_128_32: + btreemap_v2_pop_first_blob_32_64: total: - instructions: 1439845922 + instructions: 845239297 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_16_1024: + btreemap_v2_pop_first_blob_32_8: total: - instructions: 896115058 + instructions: 824920261 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_16_32: + btreemap_v2_pop_first_blob_4_128: total: - instructions: 631590656 + instructions: 375377277 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_256_1024: + btreemap_v2_pop_first_blob_512_128: total: - instructions: 2418039140 + instructions: 5170716867 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_256_32: + btreemap_v2_pop_first_blob_64_128: total: - instructions: 2163168803 + instructions: 1330009074 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_32_1024: + btreemap_v2_pop_first_blob_8_128: total: - instructions: 966888837 + instructions: 617318022 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_32_32: + btreemap_v2_pop_first_u64_blob8: total: - instructions: 699191529 + instructions: 713899333 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_4_1024: + btreemap_v2_pop_first_u64_u64: total: - instructions: 600196229 + instructions: 727979729 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_4_32: + btreemap_v2_pop_first_u64_vec8: total: - instructions: 439955818 + instructions: 719801043 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_512_1024: + btreemap_v2_pop_first_vec8_u64: total: - instructions: 3878377303 + instructions: 785966609 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_512_32: + btreemap_v2_pop_first_vec_1024_128: total: - instructions: 3554255614 + instructions: 5762665068 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_64_1024: + btreemap_v2_pop_first_vec_128_128: total: - instructions: 1281053606 + instructions: 1811516659 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_64_32: + btreemap_v2_pop_first_vec_16_128: total: - instructions: 1001240129 + instructions: 1027296998 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_8_1024: + btreemap_v2_pop_first_vec_256_128: total: - instructions: 776888935 + instructions: 2521539128 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_blob_8_32: + btreemap_v2_pop_first_vec_32_1024: total: - instructions: 584636996 + instructions: 1814089965 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_32_128: + total: + instructions: 1208977447 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_32_16: + total: + instructions: 1039721189 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_32_256: + total: + instructions: 1328651716 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_32_32: + total: + instructions: 1058699254 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_32_4: + total: + instructions: 1045400006 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_32_512: + total: + instructions: 1491330199 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_32_64: + total: + instructions: 1093749625 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_32_8: + total: + instructions: 1057049984 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_4_128: + total: + instructions: 538967951 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_512_128: + total: + instructions: 3598383536 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_64_128: + total: + instructions: 1401842064 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_8_128: + total: + instructions: 848169529 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob8_u64: + total: + instructions: 600502538 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_1024_128: + total: + instructions: 9217012025 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_128_128: + total: + instructions: 1957199634 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_16_128: + total: + instructions: 744320686 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_256_128: + total: + instructions: 3011499317 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_32_1024: + total: + instructions: 1115396827 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_32_128: + total: + instructions: 859853922 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_32_16: + total: + instructions: 806360194 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_32_256: + total: + instructions: 891320794 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_32_32: + total: + instructions: 818264570 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_32_4: + total: + instructions: 793675589 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_32_512: + total: + instructions: 959083225 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_32_64: + total: + instructions: 827177067 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_32_8: + total: + instructions: 804695603 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_4_128: + total: + instructions: 366800060 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_512_128: + total: + instructions: 5053486921 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_64_128: + total: + instructions: 1309238428 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_8_128: + total: + instructions: 617173124 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_u64_blob8: + total: + instructions: 701523450 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_u64_u64: + total: + instructions: 714112421 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_u64_vec8: + total: + instructions: 705766018 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec8_u64: + total: + instructions: 766225096 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_1024_128: + total: + instructions: 6012206614 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_128_128: + total: + instructions: 1828348579 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_16_128: + total: + instructions: 1015076755 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_256_128: + total: + instructions: 2574526031 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_32_1024: + total: + instructions: 1809327234 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_32_128: + total: + instructions: 1207678989 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_32_16: + total: + instructions: 1031044920 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_32_256: + total: + instructions: 1325556542 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_32_32: + total: + instructions: 1048061923 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_32_4: + total: + instructions: 1042839808 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_32_512: + total: + instructions: 1492706866 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_32_64: + total: + instructions: 1088253911 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_32_8: + total: + instructions: 1044711670 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_4_128: + total: + instructions: 530157433 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_512_128: + total: + instructions: 3721776710 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_64_128: + total: + instructions: 1414358129 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_8_128: + total: + instructions: 856147026 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_range_count_1k_0b: + total: + instructions: 16892 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_range_count_1k_10kib: + total: + instructions: 2416565 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_range_count_20_10mib: + total: + instructions: 20564081 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_range_key_sum_1k_0b: + total: + instructions: 17501 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_range_key_sum_1k_10kib: + total: + instructions: 57233526 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_range_key_sum_20_10mib: + total: + instructions: 1105817690 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_range_value_sum_1k_0b: + total: + instructions: 17515 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_range_value_sum_1k_10kib: + total: + instructions: 57245522 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_range_value_sum_20_10mib: + total: + instructions: 1105817926 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_10mib_values: + total: + instructions: 5573636474 + heap_increase: 0 + stable_memory_increase: 657 + scopes: {} + btreemap_v2_remove_blob8_u64: + total: + instructions: 587085401 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_1024_128: + total: + instructions: 6476180416 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_128_128: + total: + instructions: 1465625047 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_16_128: + total: + instructions: 682632734 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_256_128: + total: + instructions: 2188863420 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_32_1024: + total: + instructions: 966780709 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_32_128: + total: + instructions: 733628247 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_32_16: + total: + instructions: 690627146 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_32_256: + total: + instructions: 768182232 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_32_32: + total: + instructions: 699082591 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_32_4: + total: + instructions: 681465908 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_32_512: + total: + instructions: 839279049 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_32_64: + total: + instructions: 722801855 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_32_8: + total: + instructions: 682765857 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_4_128: + total: + instructions: 457237151 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_512_128: + total: + instructions: 3599019974 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_64_128: + total: + instructions: 1019995696 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_8_128: + total: + instructions: 610683599 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_u64_blob8: total: - instructions: 601162893 + instructions: 601041979 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_u64_u64: total: - instructions: 623672283 + instructions: 623526291 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_u64_vec8: total: - instructions: 607868912 + instructions: 607759768 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec8_u64: total: - instructions: 749010887 + instructions: 748907285 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_vec_1024_128: + total: + instructions: 5035938287 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_1024_1024: + btreemap_v2_remove_vec_128_128: total: - instructions: 5406640522 + instructions: 1459354860 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_1024_128: + btreemap_v2_remove_vec_16_128: total: - instructions: 5037694814 + instructions: 907562607 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_1024_16: + btreemap_v2_remove_vec_256_128: total: - instructions: 4868102750 + instructions: 2315837497 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_1024_256: + btreemap_v2_remove_vec_32_1024: total: - instructions: 5274752911 + instructions: 1683646505 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_1024_32: + btreemap_v2_remove_vec_32_128: total: - instructions: 4935757647 + instructions: 1012910545 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_1024_4: + btreemap_v2_remove_vec_32_16: total: - instructions: 4902549856 + instructions: 832461707 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_1024_512: + btreemap_v2_remove_vec_32_256: total: - instructions: 5450776888 + instructions: 1238006415 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_1024_64: + btreemap_v2_remove_vec_32_32: total: - instructions: 4972052377 + instructions: 839169569 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_1024_8: + btreemap_v2_remove_vec_32_4: total: - instructions: 4888808552 + instructions: 837549457 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_128_1024: + btreemap_v2_remove_vec_32_512: total: - instructions: 2165768929 + instructions: 1389586314 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_128_32: + btreemap_v2_remove_vec_32_64: total: - instructions: 1345142821 + instructions: 919280606 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_16_1024: + btreemap_v2_remove_vec_32_8: total: - instructions: 1560625043 + instructions: 831328078 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_16_32: + btreemap_v2_remove_vec_4_128: total: - instructions: 784497357 + instructions: 656203864 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_256_1024: + btreemap_v2_remove_vec_512_128: total: - instructions: 2834399048 + instructions: 3268373381 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_256_32: + btreemap_v2_remove_vec_64_128: total: - instructions: 2221632160 + instructions: 1181082626 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_32_1024: + btreemap_v2_remove_vec_8_128: total: - instructions: 1685299577 + instructions: 817603904 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_32_32: + btreemap_v2_scan_iter_1k_0b: + total: + instructions: 1493528 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_scan_iter_1k_10kib: + total: + instructions: 57070019 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_scan_iter_20_10mib: + total: + instructions: 1103719700 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_scan_iter_rev_1k_0b: + total: + instructions: 1495815 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_scan_iter_rev_1k_10kib: + total: + instructions: 57047806 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_scan_iter_rev_20_10mib: total: - instructions: 839278513 + instructions: 1103719282 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_4_1024: + btreemap_v2_scan_keys_1k_0b: total: - instructions: 1105122357 + instructions: 948155 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_4_32: + btreemap_v2_scan_keys_1k_10kib: total: - instructions: 594781301 + instructions: 2361671 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_512_1024: + btreemap_v2_scan_keys_20_10mib: total: - instructions: 3902171001 + instructions: 18465409 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_512_32: + btreemap_v2_scan_keys_rev_1k_0b: total: - instructions: 3146897497 + instructions: 965540 heap_increase: 0 - stable_memory_increase: 1 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_scan_keys_rev_1k_10kib: + total: + instructions: 2357719 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_scan_keys_rev_20_10mib: + total: + instructions: 18465744 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_scan_values_1k_0b: + total: + instructions: 1490926 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_scan_values_1k_10kib: + total: + instructions: 57067417 + heap_increase: 0 + stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_64_1024: + btreemap_v2_scan_values_20_10mib: total: - instructions: 1880863164 + instructions: 1103719650 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_64_32: + btreemap_v2_scan_values_rev_1k_0b: total: - instructions: 972971544 + instructions: 1493213 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_8_1024: + btreemap_v2_scan_values_rev_1k_10kib: total: - instructions: 1413492230 + instructions: 57045204 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_v2_remove_vec_8_32: + btreemap_v2_scan_values_rev_20_10mib: total: - instructions: 736017657 + instructions: 1103719232 heap_increase: 0 stable_memory_increase: 0 scopes: {} From 6691d8417e312c3c21704937bd65b67211c2caa2 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 16:35:51 +0200 Subject: [PATCH 37/68] lazy loaded keys --- src/btreemap.rs | 100 +++++++----- src/btreemap/iter.rs | 29 ++-- src/btreemap/node.rs | 344 ++++++++++++++++++++++++++++++---------- src/btreemap/node/v1.rs | 69 +++++--- src/btreemap/node/v2.rs | 65 ++++---- 5 files changed, 417 insertions(+), 190 deletions(-) diff --git a/src/btreemap.rs b/src/btreemap.rs index 7d7caa3a..e7e4c457 100644 --- a/src/btreemap.rs +++ b/src/btreemap.rs @@ -366,7 +366,7 @@ where let mut root = self.load_node(self.root_addr); // Check if the key already exists in the root. - if let Ok(idx) = root.search(&key) { + if let Ok(idx) = root.search(&key, self.memory()) { // The key exists. Overwrite it and return the previous value. let (_, previous_value) = root.swap_entry(idx, (key, value), self.memory()); self.save_node(&mut root); @@ -409,7 +409,7 @@ where assert!(!node.is_full()); // Look for the key in the node. - match node.search(&key) { + match node.search(&key, self.memory()) { Ok(idx) => { // The key is already in the node. // Overwrite it and return the previous value. @@ -442,7 +442,7 @@ where if child.is_full() { // Check if the key already exists in the child. - if let Ok(idx) = child.search(&key) { + if let Ok(idx) = child.search(&key, self.memory()) { // The key exists. Overwrite it and return the previous value. let (_, previous_value) = child.swap_entry(idx, (key, value), self.memory()); @@ -455,7 +455,7 @@ where // The children have now changed. Search again for // the child where we need to store the entry in. - let idx = node.search(&key).unwrap_or_else(|idx| idx); + let idx = node.search(&key, self.memory()).unwrap_or_else(|idx| idx); child = self.load_node(node.child(idx)); } @@ -469,7 +469,7 @@ where } } - /// Takes as input a nonfull internal `node` and index to its full child, then + /// Takes as input a non-full internal `node` and index to its full child, then /// splits this child into two, adding an additional child to `node`. /// /// Example: @@ -535,7 +535,7 @@ where { let node = self.load_node(node_addr); // Look for the key in the current node. - match node.search(key) { + match node.search(key, self.memory()) { Ok(idx) => Some(f(node, idx)), // Key found: apply `f`. Err(idx) => match node.node_type() { NodeType::Leaf => None, // At a leaf: key not present. @@ -652,7 +652,7 @@ where match node.node_type() { NodeType::Leaf => { - match node.search(key) { + match node.search(key, self.memory()) { Ok(idx) => { // Case 1: The node is a leaf node and the key exists in it. // This is the simplest case. The key is removed from the leaf. @@ -679,7 +679,7 @@ where } } NodeType::Internal => { - match node.search(key) { + match node.search(key, self.memory()) { Ok(idx) => { // Case 2: The node is an internal node and the key exists in it. @@ -1310,10 +1310,40 @@ mod test { } } - macro_rules! verify_and_run { - ($runner:ident, $K:ty, $V:ty) => {{ + /// Asserts that the associated `BOUND` for `$ty` is _not_ `Unbounded`. + macro_rules! assert_bounded { + ($ty:ty) => { + assert_ne!(<$ty>::BOUND, StorableBound::Unbounded, "Must be Bounded"); + }; + } + + /// Asserts that the associated `BOUND` for `$ty` _is_ `Unbounded`. + macro_rules! assert_unbounded { + ($ty:ty) => { + assert_eq!(<$ty>::BOUND, StorableBound::Unbounded, "Must be Unbounded"); + }; + } + + macro_rules! run_with_key { + ($runner:ident, $K:ty) => {{ verify_monotonic::<$K>(); - $runner::<$K, $V>(); + + // Empty value. + $runner::<$K, ()>(); + + // Bounded values. + assert_bounded!(u32); + $runner::<$K, u32>(); + + assert_bounded!(Blob<20>); + $runner::<$K, Blob<20>>(); + + // Unbounded values. + assert_unbounded!(MonotonicVec32); + $runner::<$K, MonotonicVec32>(); + + assert_unbounded!(MonotonicString32); + $runner::<$K, MonotonicString32>(); }}; } @@ -1322,37 +1352,19 @@ mod test { ($name:ident, $runner:ident) => { #[test] fn $name() { - use StorableBound::Unbounded; - - // Set, empty value, bounded. - { - type Value = (); - assert_ne!(::BOUND, Unbounded, "Must be Bounded"); - verify_and_run!($runner, u32, Value); - verify_and_run!($runner, Blob<10>, Value); - verify_and_run!($runner, MonotonicVec32, Value); - verify_and_run!($runner, MonotonicString32, Value); - } + // Bounded keys. + assert_bounded!(u32); + run_with_key!($runner, u32); - // Map, bounded value. - { - type Value = u32; - assert_ne!(Value::BOUND, Unbounded, "Must be Bounded"); - verify_and_run!($runner, u32, Value); - verify_and_run!($runner, Blob<10>, Value); - verify_and_run!($runner, MonotonicVec32, Value); - verify_and_run!($runner, MonotonicString32, Value); - } + assert_bounded!(Blob<10>); + run_with_key!($runner, Blob<10>); - // Map, unbounded value. - { - type Value = MonotonicVec32; - assert_eq!(Value::BOUND, Unbounded, "Must be Unbounded"); - verify_and_run!($runner, u32, Value); - verify_and_run!($runner, Blob<10>, Value); - verify_and_run!($runner, MonotonicVec32, Value); - verify_and_run!($runner, MonotonicString32, Value); - } + // Unbounded keys. + assert_unbounded!(MonotonicVec32); + run_with_key!($runner, MonotonicVec32); + + assert_unbounded!(MonotonicString32); + run_with_key!($runner, MonotonicString32); } }; } @@ -1440,7 +1452,7 @@ mod test { assert!(right_child.is_full()); let median_index = right_child.entries_len() / 2; let median_key = key(12); - assert_eq!(right_child.key(median_index), &median_key); + assert_eq!(right_child.key(median_index, btree.memory()), &median_key); // Overwrite the value of the median key. assert_eq!(btree.insert(median_key.clone(), value(123)), Some(value(0))); @@ -3089,7 +3101,7 @@ mod test { // [0, 1, 2, 3, 4, 5] [7, 8, 9, 10, 11] let root = btree.load_node(btree.root_addr); assert_eq!(root.node_type(), NodeType::Internal); - assert_eq!(root.keys(), vec![vec![6; 10_000]]); + assert_eq!(root.keys(btree.memory()), vec![vec![6; 10_000]]); assert_eq!(root.children_len(), 2); // Remove the element in the root. @@ -3101,7 +3113,7 @@ mod test { // [0, 1, 2, 3, 4] [7, 8, 9, 10, 11] let root = btree.load_node(btree.root_addr); assert_eq!(root.node_type(), NodeType::Internal); - assert_eq!(root.keys(), vec![vec![5; 10_000]]); + assert_eq!(root.keys(btree.memory()), vec![vec![5; 10_000]]); assert_eq!(root.children_len(), 2); // Remove the element in the root. This triggers the case where the root @@ -3113,7 +3125,7 @@ mod test { let root = btree.load_node(btree.root_addr); assert_eq!(root.node_type(), NodeType::Leaf); assert_eq!( - root.keys(), + root.keys(btree.memory()), vec![ vec![0; 10_000], vec![1; 10_000], diff --git a/src/btreemap/iter.rs b/src/btreemap/iter.rs index 82869508..1e653e16 100644 --- a/src/btreemap/iter.rs +++ b/src/btreemap/iter.rs @@ -94,7 +94,7 @@ where Bound::Included(key) | Bound::Excluded(key) => { let mut node = self.map.load_node(self.map.root_addr); loop { - match node.search(key) { + match node.search(key, self.map.memory()) { Ok(idx) => { if let Bound::Included(_) = self.range.start_bound() { // We found the key exactly matching the left bound. @@ -115,7 +115,7 @@ where }; if idx + 1 < node.entries_len() - && self.range.contains(node.key(idx + 1)) + && self.range.contains(node.key(idx + 1, self.map.memory())) { self.forward_cursors.push(Cursor::Node { node, @@ -152,7 +152,9 @@ where NodeType::Leaf => None, }; - if idx < node.entries_len() && self.range.contains(node.key(idx)) { + if idx < node.entries_len() + && self.range.contains(node.key(idx, self.map.memory())) + { self.forward_cursors.push(Cursor::Node { node, next: Index::Entry(idx), @@ -188,7 +190,7 @@ where Bound::Included(key) | Bound::Excluded(key) => { let mut node = self.map.load_node(self.map.root_addr); loop { - match node.search(key) { + match node.search(key, self.map.memory()) { Ok(idx) => { if let Bound::Included(_) = self.range.end_bound() { // We found the key exactly matching the right bound. @@ -208,7 +210,9 @@ where NodeType::Leaf => None, }; - if idx > 0 && self.range.contains(node.key(idx - 1)) { + if idx > 0 + && self.range.contains(node.key(idx - 1, self.map.memory())) + { self.backward_cursors.push(Cursor::Node { node, next: Index::Entry(idx - 1), @@ -243,7 +247,8 @@ where NodeType::Leaf => None, }; - if idx > 0 && self.range.contains(node.key(idx - 1)) { + if idx > 0 && self.range.contains(node.key(idx - 1, self.map.memory())) + { self.backward_cursors.push(Cursor::Node { node, next: Index::Entry(idx - 1), @@ -320,7 +325,7 @@ where next: Index::Entry(entry_idx), } => { // If the key does not belong to the range, iteration stops. - if !self.range.contains(node.key(entry_idx)) { + if !self.range.contains(node.key(entry_idx, self.map.memory())) { // Clear all cursors to avoid needless work in subsequent calls. self.forward_cursors = vec![]; self.backward_cursors = vec![]; @@ -328,7 +333,7 @@ where } let res = map(&node, entry_idx); - self.range.0 = Bound::Excluded(node.key(entry_idx).clone()); + self.range.0 = Bound::Excluded(node.key(entry_idx, self.map.memory()).clone()); let next = match node.node_type() { // If this is an internal node, add the next child to the cursors. @@ -403,7 +408,7 @@ where next: Index::Entry(entry_idx), } => { // If the key does not belong to the range, iteration stops. - if !self.range.contains(node.key(entry_idx)) { + if !self.range.contains(node.key(entry_idx, self.map.memory())) { // Clear all cursors to avoid needless work in subsequent calls. self.forward_cursors = vec![]; self.backward_cursors = vec![]; @@ -411,7 +416,7 @@ where } let res = map(&node, entry_idx); - self.range.1 = Bound::Excluded(node.key(entry_idx).clone()); + self.range.1 = Bound::Excluded(node.key(entry_idx, self.map.memory()).clone()); if let Some(next) = match node.node_type() { // If this is an internal node, add the previous child to the cursors. @@ -497,7 +502,7 @@ where fn next(&mut self) -> Option { self.0 - .next_map(|node, entry_idx| node.key(entry_idx).clone()) + .next_map(|node, entry_idx| node.key(entry_idx, self.0.map.memory()).clone()) } fn count(mut self) -> usize @@ -516,7 +521,7 @@ where { fn next_back(&mut self) -> Option { self.0 - .next_back_map(|node, entry_idx| node.key(entry_idx).clone()) + .next_back_map(|node, entry_idx| node.key(entry_idx, self.0.map.memory()).clone()) } } diff --git a/src/btreemap/node.rs b/src/btreemap/node.rs index 50af80e0..7079d7f0 100644 --- a/src/btreemap/node.rs +++ b/src/btreemap/node.rs @@ -39,6 +39,8 @@ pub enum NodeType { pub type Entry = (K, Vec); pub type EntryRef<'a, K> = (&'a K, &'a [u8]); +type LazyEntry = (LazyKey, LazyValue); + /// A node of a B-Tree. /// /// There are two versions of a `Node`: @@ -52,7 +54,7 @@ pub struct Node { address: Address, // List of tuples consisting of a key and the encoded value. // INVARIANT: the list is sorted by key. - keys_and_encoded_values: Vec<(K, Value)>, + keys_and_encoded_values: Vec>, // For the key at position I, children[I] points to the left // child of this key and children[I + 1] points to the right child. children: Vec
, @@ -106,14 +108,13 @@ impl Node { pub fn get_max(&self, memory: &M) -> Entry { match self.node_type { NodeType::Leaf => { - let last_idx = self.keys_and_encoded_values.len() - 1; + let entry = self + .keys_and_encoded_values + .last() + .expect("A node can never be empty"); ( - self.keys_and_encoded_values - .last() - .expect("A node can never be empty") - .0 - .clone(), - self.value(last_idx, memory).to_vec(), + self.get_key(entry, memory).clone(), + self.get_value(entry, memory).to_vec(), ) } NodeType::Internal => { @@ -164,32 +165,94 @@ impl Node { ) -> Entry { let (old_key, old_value) = core::mem::replace( &mut self.keys_and_encoded_values[idx], - (key, Value::by_value(value)), + (LazyKey::by_value(key), LazyValue::by_value(value)), ); - (old_key, self.extract_value(old_value, memory)) + ( + self.extract_key(old_key, memory), + self.extract_value(old_value, memory), + ) } /// Returns a reference to the entry at the specified index. pub fn entry(&self, idx: usize, memory: &M) -> EntryRef { - ( - &self.keys_and_encoded_values[idx].0, - self.value(idx, memory), - ) + (self.key(idx, memory), self.value(idx, memory)) + } + + /// Returns a reference to the cached key and loads it from memory if needed. + #[inline] + fn get_key<'a, M: Memory>(&'a self, (k, _): &'a LazyEntry, memory: &M) -> &'a K { + k.get_or_load(|offset| self.load_key_from_memory(offset, memory)) + } + + /// Returns a reference to the cached value and loads it from memory if needed. + #[inline] + fn get_value<'a, M: Memory>(&'a self, (_, v): &'a LazyEntry, memory: &M) -> &'a [u8] { + v.get_or_load(|offset| self.load_value_from_memory(offset, memory)) + } + + /// Returns a reference to the key at the specified index. + pub fn key(&self, idx: usize, memory: &M) -> &K { + self.get_key(&self.keys_and_encoded_values[idx], memory) } /// Returns a reference to the encoded value at the specified index. pub fn value(&self, idx: usize, memory: &M) -> &[u8] { - // Load and cache the value from the underlying memory if needed. - self.keys_and_encoded_values[idx] - .1 - .get_or_load(|offset| self.load_value_from_memory(offset, memory)) + self.get_value(&self.keys_and_encoded_values[idx], memory) + } + + /// Extracts the contents of key (by loading it first if it's not loaded yet). + fn extract_key(&self, key: LazyKey, memory: &M) -> K { + key.take_or_load(|offset| self.load_key_from_memory(offset, memory)) } /// Extracts the contents of value (by loading it first if it's not loaded yet). - fn extract_value(&self, value: Value, memory: &M) -> Vec { + fn extract_value(&self, value: LazyValue, memory: &M) -> Vec { value.take_or_load(|offset| self.load_value_from_memory(offset, memory)) } + /// Loads a key from stable memory at the given offset of this node. + fn load_key_from_memory(&self, mut offset: Bytes, memory: &M) -> K { + let reader = NodeReader { + address: self.address, + overflows: &self.overflows, + page_size: self.page_size(), + memory, + }; + + // Retrieve the key's size. + let key_offset = Address::from(offset.get()); + let key_size = match self.version { + Version::V1(_) => { + // In V1, the key's size is always stored in memory. + offset += U32_SIZE; + read_u32(&reader, key_offset) + } + Version::V2(_) => { + // In V2, if the key is fixed-size, use the maximum bound; + // otherwise, read its size from memory. + if K::BOUND.is_fixed_size() { + K::BOUND.max_size() + } else { + offset += U32_SIZE; + read_u32(&reader, key_offset) + } + } + }; + + let mut bytes = vec![]; + read_to_vec( + &reader, + Address::from((offset).get()), + &mut bytes, + key_size as usize, + ); + //println!("ABC load key_size: {key_size:?}"); + //println!("ABC load key: {bytes:?}"); + let key = K::from_bytes(Cow::Borrowed(&bytes)); + + key + } + /// Loads a value from stable memory at the given offset of this node. fn load_value_from_memory(&self, offset: Bytes, memory: &M) -> Vec { let reader = NodeReader { @@ -199,13 +262,13 @@ impl Node { memory, }; - let value_len = read_u32(&reader, Address::from(offset.get())) as usize; + let value_size = read_u32(&reader, Address::from(offset.get())) as usize; let mut bytes = vec![]; read_to_vec( &reader, Address::from((offset + U32_SIZE).get()), &mut bytes, - value_len, + value_size, ); bytes @@ -215,11 +278,6 @@ impl Node { self.version.page_size() } - /// Returns a reference to the key at the specified index. - pub fn key(&self, idx: usize) -> &K { - &self.keys_and_encoded_values[idx].0 - } - /// Returns the child's address at the given index. pub fn child(&self, idx: usize) -> Address { self.children[idx] @@ -251,28 +309,41 @@ impl Node { } /// Inserts a new entry at the specified index. - pub fn insert_entry(&mut self, idx: usize, (key, encoded_value): Entry) { + pub fn insert_entry(&mut self, idx: usize, (key, value): Entry) { self.keys_and_encoded_values - .insert(idx, (key, Value::by_value(encoded_value))); + .insert(idx, (LazyKey::by_value(key), LazyValue::by_value(value))); + // let keys: Vec<_> = self + // .keys_and_encoded_values + // .iter() + // .map(|(key, _)| format!("{key:?}")) + // .collect(); + //println!("ABC insert_entry: {:?}", keys); } /// Returns the entry at the specified index while consuming this node. pub fn into_entry(mut self, idx: usize, memory: &M) -> Entry { let keys_and_encoded_values = core::mem::take(&mut self.keys_and_encoded_values); let (key, value) = keys_and_encoded_values.into_iter().nth(idx).unwrap(); - (key, self.extract_value(value, memory)) + ( + self.extract_key(key, memory), + self.extract_value(value, memory), + ) } /// Removes the entry at the specified index. pub fn remove_entry(&mut self, idx: usize, memory: &M) -> Entry { let (key, value) = self.keys_and_encoded_values.remove(idx); - (key, self.extract_value(value, memory)) + //println!("ABC remove_entry: {:?}", key); + ( + self.extract_key(key, memory), + self.extract_value(value, memory), + ) } /// Adds a new entry at the back of the node. - pub fn push_entry(&mut self, (key, encoded_value): Entry) { + pub fn push_entry(&mut self, (key, value): Entry) { self.keys_and_encoded_values - .push((key, Value::by_value(encoded_value))); + .push((LazyKey::by_value(key), LazyValue::by_value(value))); } /// Removes an entry from the back of the node. @@ -282,12 +353,15 @@ impl Node { return None; } - let (key, last_value) = self + let (key, value) = self .keys_and_encoded_values .pop() .expect("node must not be empty"); - Some((key, self.extract_value(last_value, memory))) + Some(( + self.extract_key(key, memory), + self.extract_value(value, memory), + )) } /// Merges the entries and children of the `source` node into self, along with the median entry. @@ -307,19 +381,32 @@ impl Node { median: Entry, allocator: &mut Allocator, ) { - // Load all the values from the source node first, as they will be moved out. + // let self_keys: Vec<_> = self + // .keys_and_encoded_values + // .iter() + // .map(|(k, _)| format!("{k:?}")) + // .collect(); + + // let source_keys: Vec<_> = source + // .keys_and_encoded_values + // .iter() + // .map(|(k, _)| format!("{k:?}\n")) + // .collect(); + //println!("ABC merge\n self : {self_keys:?}\n source : {source_keys:?} \n"); + + // Load all the entries from the source node first, as they will be moved out. for i in 0..source.entries_len() { - source.value(i, allocator.memory()); + let _e = source.entry(i, allocator.memory()); } - if source.key(0) > self.key(0) { + if source.key(0, allocator.memory()) > self.key(0, allocator.memory()) { // The source node has keys that are greater than self. // Append the source node into self. - Self::append(self, &mut source, median); + Self::append(self, &mut source, median, allocator.memory()); } else { // self has keys that are greater than the source node. // Append self into the source node (which more efficient). - Self::append(&mut source, self, median); + Self::append(&mut source, self, median, allocator.memory()); // Move the entries and children into self. self.keys_and_encoded_values = core::mem::take(&mut source.keys_and_encoded_values); @@ -340,14 +427,14 @@ impl Node { /// /// POSTCONDITION: /// * `b` is empty. - fn append(a: &mut Node, b: &mut Node, median: Entry) { + fn append(a: &mut Node, b: &mut Node, median: Entry, memory: &M) { // Assert preconditions. let a_len = a.entries_len(); assert_eq!(a.node_type(), b.node_type()); assert!(b.entries_len() > 0); assert!(a_len > 0); - assert!(a.key(a_len - 1) < &median.0); - assert!(&median.0 < b.key(0)); + assert!(a.key(a_len - 1, memory) < &median.0); + assert!(&median.0 < b.key(0, memory)); a.push_entry(median); @@ -364,18 +451,15 @@ impl Node { #[cfg(test)] pub fn entries(&self, memory: &M) -> Vec> { - self.keys_and_encoded_values - .iter() - .enumerate() - .map(|(idx, (key, _))| (key.clone(), self.value(idx, memory).to_vec())) + (0..self.keys_and_encoded_values.len()) + .map(|i| (self.key(i, memory).clone(), self.value(i, memory).to_vec())) .collect() } #[cfg(test)] - pub fn keys(&self) -> Vec { - self.keys_and_encoded_values - .iter() - .map(|(key, _)| key.clone()) + pub fn keys(&self, memory: &M) -> Vec { + (0..self.keys_and_encoded_values.len()) + .map(|i| self.key(i, memory).clone()) .collect() } @@ -395,9 +479,26 @@ impl Node { /// of the matching key. If the value is not found then `Result::Err` is /// returned, containing the index where a matching key could be inserted /// while maintaining sorted order. - pub fn search(&self, key: &K) -> Result { - self.keys_and_encoded_values - .binary_search_by_key(&key, |entry| &entry.0) + pub fn search(&self, key: &K, memory: &M) -> Result { + // let self_keys: Vec<_> = self + // .keys_and_encoded_values + // .iter() + // .map(|(k, _)| format!("{k:?}")) + // .collect(); + // println!("\nABC search BEFORE: {self_keys:?}"); + + let result = self + .keys_and_encoded_values + .binary_search_by_key(&key, |entry| self.get_key(entry, memory)); + + // let self_keys: Vec<_> = self + // .keys_and_encoded_values + // .iter() + // .map(|(k, _)| format!("{k:?}")) + // .collect(); + //println!("ABC search AFTER : {self_keys:?}"); + + result } /// Returns the maximum size a node can be if it has bounded keys and values. @@ -422,9 +523,9 @@ impl Node { pub fn split(&mut self, sibling: &mut Node, memory: &M) -> Entry { debug_assert!(self.is_full()); - // Load the values that will be moved out of the node and into the new sibling. + // Load the entries that will be moved out of the node and into the new sibling. for idx in B..self.entries_len() { - self.value(idx, memory); + let _e = self.entry(idx, memory); } // Move the entries and children above the median into the new sibling. @@ -463,53 +564,134 @@ impl NodeHeader { } } -/// The value in a K/V pair. +struct LazyKey(LazyObject); + +impl LazyKey { + /// Create a lazy key with a memory offset. + #[inline] + pub fn by_ref(offset: Bytes) -> Self { + Self(LazyObject::by_ref(offset)) + } + + /// Create a lazy key from a key. + #[inline] + pub fn by_value(key: K) -> Self { + Self(LazyObject::by_value(key)) + } + + /// Returns a reference to the key, loading it if necessary. + #[inline] + pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> K) -> &K { + self.0.get_or_load(load) + } + + /// Consumes self and returns the key, loading it if necessary. + #[inline] + pub fn take_or_load(self, load: impl FnOnce(Bytes) -> K) -> K { + self.0.take_or_load(load) + } +} + +impl std::fmt::Debug for LazyKey { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match &self.0 { + LazyObject::ByVal(ref key) => { + let bytes = key.to_bytes_checked(); + f.debug_tuple("LazyKey") + .field(&format_args!("LazyKey::ByVal({:?})", bytes)) + .finish() + } + LazyObject::ByRef { offset, loaded } => match loaded.get() { + Some(key) => { + let bytes = key.to_bytes_checked(); + f.debug_tuple("LazyKey") + .field(&format_args!("LazyKey::ByRef(loaded:{:?})", bytes)) + .finish() + } + None => f + .debug_tuple("LazyKey") + .field(&format_args!("LazyKey::ByRef(offset: {:?})", offset)) + .finish(), + }, + } + } +} + +type Blob = Vec; + +#[derive(Debug)] +struct LazyValue(LazyObject); + +impl LazyValue { + /// Create a lazy value with a memory offset. + #[inline] + pub fn by_ref(offset: Bytes) -> Self { + Self(LazyObject::by_ref(offset)) + } + + /// Create a lazy value from a value. + #[inline] + pub fn by_value(value: Blob) -> Self { + Self(LazyObject::by_value(value)) + } + + /// Returns a reference to the key, loading it if necessary. + #[inline] + pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> Blob) -> &Blob { + self.0.get_or_load(load) + } + + /// Consumes self and returns the key, loading it if necessary. + #[inline] + pub fn take_or_load(self, load: impl FnOnce(Bytes) -> Blob) -> Blob { + self.0.take_or_load(load) + } +} + +/// A lazy-loaded object. #[derive(Debug)] -enum Value { - /// The value's encoded bytes. - ByVal(Vec), +enum LazyObject { + /// Object stored by value. + ByVal(T), + /// Object stored by reference, loaded on demand. ByRef { - /// The value's offset in the node. + /// Memory offset of the object. offset: Bytes, - /// The lazily loaded encoded bytes. - loaded_value: OnceCell>, + /// Cache for the lazily loaded object. + loaded: OnceCell, }, } -impl Value { +impl LazyObject { + /// Create a lazy object with a memory offset. pub fn by_ref(offset: Bytes) -> Self { Self::ByRef { offset, - loaded_value: Default::default(), + loaded: Default::default(), } } - pub fn by_value(value: Vec) -> Self { + /// Create a lazy object from a value. + pub fn by_value(value: T) -> Self { Self::ByVal(value) } - /// Returns a reference to the value if the value has been loaded or runs the given function to - /// load the value. - pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> Vec) -> &[u8] { + /// Get a reference to the object, loading it if necessary. + pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> T) -> &T { match self { - Value::ByVal(v) => &v[..], - Value::ByRef { - offset, - loaded_value: value, - } => value.get_or_init(|| load(*offset)), + LazyObject::ByVal(v) => v, + LazyObject::ByRef { offset, loaded } => loaded.get_or_init(|| load(*offset)), } } - /// Extracts the value while consuming self if the value has been loaded or runs the given - /// function to load the value. - pub fn take_or_load(self, load: impl FnOnce(Bytes) -> Vec) -> Vec { + /// Consume self and return the object, loading it if necessary. + pub fn take_or_load(self, load: impl FnOnce(Bytes) -> T) -> T { match self { - Value::ByVal(v) => v, - Value::ByRef { - offset, - loaded_value: value, - } => value.into_inner().unwrap_or_else(|| load(offset)), + LazyObject::ByVal(v) => v, + LazyObject::ByRef { offset, loaded } => { + loaded.into_inner().unwrap_or_else(|| load(offset)) + } } } } diff --git a/src/btreemap/node/v1.rs b/src/btreemap/node/v1.rs index 2dc02857..ddaf20aa 100644 --- a/src/btreemap/node/v1.rs +++ b/src/btreemap/node/v1.rs @@ -15,9 +15,13 @@ //! ---------------------------------------- //! # Entries (k) ↕ 2 bytes //! ---------------------------------------- <-- Entries (upto `CAPACITY` entries) -//! Key(0) +//! Key(0) size ↕ 4 bytes //! ---------------------------------------- -//! Value(0) +//! Key(0) ↕ `max_key_size` bytes +//! ---------------------------------------- +//! Value(0) size ↕ 4 bytes +//! ---------------------------------------- +//! Value(0) ↕ `max_value_size` bytes //! ---------------------------------------- //! Key(1) size ↕ 4 bytes //! ---------------------------------------- @@ -59,26 +63,37 @@ impl Node { max_value_size: u32, memory: &M, ) -> Self { - #[cfg(feature = "canbench")] - let _p = canbench::profile("node_load_v1"); - // Load the entries. let mut keys_encoded_values = Vec::with_capacity(header.num_entries as usize); let mut offset = NodeHeader::size(); - let mut buf = vec![]; + //const LOAD_SIZE_THRESHOLD: u32 = 8; + //let mut buf = vec![]; for _ in 0..header.num_entries { - // Read the key's size. - let key_size = read_u32(memory, address + offset); + let key_offset = offset; + //let key_size = read_u32(memory, address + offset); offset += U32_SIZE; - - // Read the key. - read_to_vec(memory, address + offset, &mut buf, key_size as usize); + // let key = if key_size <= LOAD_SIZE_THRESHOLD { + // read_to_vec(memory, address + offset, &mut buf, key_size as usize); + // LazyKey::by_value(K::from_bytes(Cow::Borrowed(&buf))) + // } else { + // LazyKey::by_ref(key_offset) + // }; + let key = LazyKey::by_ref(key_offset); offset += Bytes::from(max_key_size); - let key = K::from_bytes(Cow::Borrowed(&buf)); - // Values are loaded lazily. Store a reference and skip loading it. - keys_encoded_values.push((key, Value::by_ref(offset))); - offset += U32_SIZE + Bytes::from(max_value_size); + let value_offset = offset; + // let value_size = read_u32(memory, address + offset); + offset += U32_SIZE; + // let value = if value_size <= LOAD_SIZE_THRESHOLD { + // read_to_vec(memory, address + offset, &mut buf, value_size as usize); + // LazyValue::by_value(buf.to_vec()) + // } else { + // LazyValue::by_ref(value_offset) + // }; + let value = LazyValue::by_ref(value_offset); + offset += Bytes::from(max_value_size); + + keys_encoded_values.push((key, value)); } // Load children if this is an internal node. @@ -113,9 +128,6 @@ impl Node { } pub(super) fn save_v1(&self, memory: &M) { - #[cfg(feature = "canbench")] - let _p = canbench::profile("node_save_v1"); - match self.node_type { NodeType::Leaf => { assert!(self.children.is_empty()); @@ -129,10 +141,17 @@ impl Node { assert!(!self.keys_and_encoded_values.is_empty() || !self.children.is_empty()); // Assert entries are sorted in strictly increasing order. + + // TODO: remove debug code. + // let entries: Vec<_> = (0..self.entries_len()) + // .map(|i| (i, self.key(i, memory).to_bytes(), self.value(i, memory))) + // .collect(); + //println!("ABC: entries: {:?}", entries); + assert!(self .keys_and_encoded_values .windows(2) - .all(|e| e[0].0 < e[1].0)); + .all(|arr| self.get_key(&arr[0], memory) < self.get_key(&arr[1], memory))); let (max_key_size, max_value_size) = match self.version { Version::V1(DerivedPageSize { @@ -156,16 +175,16 @@ impl Node { let mut offset = NodeHeader::size(); - // Load all the values. This is necessary so that we don't overwrite referenced - // values when writing the entries to the node. + // Load all the entries. This is necessary so that we don't overwrite referenced + // entries when writing the entries to the node. for i in 0..self.keys_and_encoded_values.len() { - self.value(i, memory); + self.entry(i, memory); } // Write the entries. - for (idx, (key, _)) in self.keys_and_encoded_values.iter().enumerate() { + for i in 0..self.keys_and_encoded_values.len() { // Write the size of the key. - let key_bytes = key.to_bytes_checked(); + let key_bytes = self.key(i, memory).to_bytes_checked(); write_u32(memory, self.address + offset, key_bytes.len() as u32); offset += U32_SIZE; @@ -174,7 +193,7 @@ impl Node { offset += Bytes::from(max_key_size); // Write the size of the value. - let value = self.value(idx, memory); + let value = self.value(i, memory); write_u32(memory, self.address + offset, value.len() as u32); offset += U32_SIZE; diff --git a/src/btreemap/node/v2.rs b/src/btreemap/node/v2.rs index f559d777..c6a0555b 100644 --- a/src/btreemap/node/v2.rs +++ b/src/btreemap/node/v2.rs @@ -111,9 +111,6 @@ impl Node { header: NodeHeader, memory: &M, ) -> Self { - #[cfg(feature = "canbench")] - let _p = canbench::profile("node_load_v2"); - // Load the node, including any overflows, into a buffer. let overflows = read_overflows(address, memory); @@ -151,32 +148,49 @@ impl Node { // Load the keys. let mut keys_encoded_values = Vec::with_capacity(num_entries); - let mut buf = vec![]; + //const LOAD_SIZE_THRESHOLD: u32 = 8; + //let mut buf = vec![]; for _ in 0..num_entries { - // Load the key's size. + let key_offset = Bytes::from(offset.get()); + + // Advance offset by the key_size type size if applicable. let key_size = if K::BOUND.is_fixed_size() { // Key is fixed in size. The size of the key is always its max size. K::BOUND.max_size() } else { // Key is not fixed in size. Read the size from memory. - let value = read_u32(&reader, offset); + let key_size = read_u32(&reader, offset); + //println!("ABC read key_size: {:?}", key_size); offset += U32_SIZE; - value + key_size }; - - // Load the key. - read_to_vec(&reader, offset, &mut buf, key_size as usize); - let key = K::from_bytes(Cow::Borrowed(&buf)); + // let key = if key_size <= LOAD_SIZE_THRESHOLD { + // read_to_vec(&reader, offset, &mut buf, key_size as usize); + // LazyKey::by_value(K::from_bytes(Cow::Borrowed(&buf))) + // } else { + // LazyKey::by_ref(key_offset) + // }; + let key = LazyKey::by_ref(key_offset); + + // Advance offset by the size of the key. offset += Bytes::from(key_size); - keys_encoded_values.push((key, Value::by_ref(Bytes::from(0usize)))); + + keys_encoded_values.push((key, LazyValue::by_ref(Bytes::from(0usize)))); } // Load the values for (_key, value) in keys_encoded_values.iter_mut() { - // Load the values lazily. - *value = Value::by_ref(Bytes::from(offset.get())); - let value_size = read_u32(&reader, offset) as usize; - offset += U32_SIZE + Bytes::from(value_size as u64); + let value_offset = Bytes::from(offset.get()); + let value_size = read_u32(&reader, offset); + offset += U32_SIZE; + // *value = if value_size <= LOAD_SIZE_THRESHOLD { + // read_to_vec(&reader, offset, &mut buf, value_size as usize); + // LazyValue::by_value(buf.to_vec()) + // } else { + // LazyValue::by_ref(value_offset) + // }; + *value = LazyValue::by_ref(value_offset); + offset += Bytes::from(value_size as u64); } Self { @@ -191,17 +205,14 @@ impl Node { // Saves the node to memory. pub(super) fn save_v2(&mut self, allocator: &mut Allocator) { - #[cfg(feature = "canbench")] - let _p = canbench::profile("node_save_v2"); - let page_size = self.version.page_size().get(); assert!(page_size >= MINIMUM_PAGE_SIZE); - // Load all the values. This is necessary so that we don't overwrite referenced - // values when writing the entries to the node. - for i in 0..self.keys_and_encoded_values.len() { - self.value(i, allocator.memory()); - } + // Load all the entry. This is necessary so that we don't overwrite referenced + // entry when writing the entries to the node. + let entries: Vec<_> = (0..self.keys_and_encoded_values.len()) + .map(|i| self.entry(i, allocator.memory())) + .collect(); // Initialize a NodeWriter. The NodeWriter takes care of allocating/deallocating // overflow pages as needed. @@ -239,9 +250,8 @@ impl Node { } // Write the keys. - for (key, _) in self.keys_and_encoded_values.iter() { + for (key, _) in &entries { let key_bytes = key.to_bytes_checked(); - // Write the size of the key if it isn't fixed in size. if !K::BOUND.is_fixed_size() { writer.write_u32(offset, key_bytes.len() as u32); @@ -254,9 +264,8 @@ impl Node { } // Write the values. - for idx in 0..self.entries_len() { + for (_, value) in &entries { // Write the size of the value. - let value = self.value(idx, writer.memory()); writer.write_u32(offset, value.len() as u32); offset += U32_SIZE; From 3a390024d893f6aa525019ef597bd81e7af9af66 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Thu, 24 Apr 2025 14:05:59 +0200 Subject: [PATCH 38/68] instructions in B --- parse_benchmarks.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/parse_benchmarks.py b/parse_benchmarks.py index f548d0e1..0134a374 100755 --- a/parse_benchmarks.py +++ b/parse_benchmarks.py @@ -148,8 +148,8 @@ def load_benchmarks(path, verbose=False, logger=None): return out -def save_all_tables(tables, sizes, filename, scientific=False, sci_fmt="{:.2e}"): - fmt_instr = lambda v: "" if v is None else (sci_fmt.format(v) if scientific else str(v)) +def save_all_tables(tables, sizes, filename): + fmt_instr = lambda v: "" if v is None else '{:.3f}'.format(v / 1e9) fmt_change = lambda v: "" if v is None else '{:.1f}%'.format(v * 100.0) with open(filename, 'w', newline='') as f: @@ -230,7 +230,7 @@ def main(): if bench['name'] not in used: logger.warning(f"Unused benchmark: {bench['name']}") - save_all_tables(all_tables, size_grid, './tmp/all_benchmarks.csv', scientific=True) + save_all_tables(all_tables, size_grid, './tmp/all_benchmarks.csv') if __name__ == '__main__': From accb3179aef81c7b21d38d6feb160914354142a7 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 22 Apr 2025 16:35:51 +0200 Subject: [PATCH 39/68] lazy loaded keys --- src/btreemap.rs | 100 +++++++----- src/btreemap/iter.rs | 29 ++-- src/btreemap/node.rs | 344 ++++++++++++++++++++++++++++++---------- src/btreemap/node/v1.rs | 69 +++++--- src/btreemap/node/v2.rs | 65 ++++---- 5 files changed, 417 insertions(+), 190 deletions(-) diff --git a/src/btreemap.rs b/src/btreemap.rs index 7d7caa3a..e7e4c457 100644 --- a/src/btreemap.rs +++ b/src/btreemap.rs @@ -366,7 +366,7 @@ where let mut root = self.load_node(self.root_addr); // Check if the key already exists in the root. - if let Ok(idx) = root.search(&key) { + if let Ok(idx) = root.search(&key, self.memory()) { // The key exists. Overwrite it and return the previous value. let (_, previous_value) = root.swap_entry(idx, (key, value), self.memory()); self.save_node(&mut root); @@ -409,7 +409,7 @@ where assert!(!node.is_full()); // Look for the key in the node. - match node.search(&key) { + match node.search(&key, self.memory()) { Ok(idx) => { // The key is already in the node. // Overwrite it and return the previous value. @@ -442,7 +442,7 @@ where if child.is_full() { // Check if the key already exists in the child. - if let Ok(idx) = child.search(&key) { + if let Ok(idx) = child.search(&key, self.memory()) { // The key exists. Overwrite it and return the previous value. let (_, previous_value) = child.swap_entry(idx, (key, value), self.memory()); @@ -455,7 +455,7 @@ where // The children have now changed. Search again for // the child where we need to store the entry in. - let idx = node.search(&key).unwrap_or_else(|idx| idx); + let idx = node.search(&key, self.memory()).unwrap_or_else(|idx| idx); child = self.load_node(node.child(idx)); } @@ -469,7 +469,7 @@ where } } - /// Takes as input a nonfull internal `node` and index to its full child, then + /// Takes as input a non-full internal `node` and index to its full child, then /// splits this child into two, adding an additional child to `node`. /// /// Example: @@ -535,7 +535,7 @@ where { let node = self.load_node(node_addr); // Look for the key in the current node. - match node.search(key) { + match node.search(key, self.memory()) { Ok(idx) => Some(f(node, idx)), // Key found: apply `f`. Err(idx) => match node.node_type() { NodeType::Leaf => None, // At a leaf: key not present. @@ -652,7 +652,7 @@ where match node.node_type() { NodeType::Leaf => { - match node.search(key) { + match node.search(key, self.memory()) { Ok(idx) => { // Case 1: The node is a leaf node and the key exists in it. // This is the simplest case. The key is removed from the leaf. @@ -679,7 +679,7 @@ where } } NodeType::Internal => { - match node.search(key) { + match node.search(key, self.memory()) { Ok(idx) => { // Case 2: The node is an internal node and the key exists in it. @@ -1310,10 +1310,40 @@ mod test { } } - macro_rules! verify_and_run { - ($runner:ident, $K:ty, $V:ty) => {{ + /// Asserts that the associated `BOUND` for `$ty` is _not_ `Unbounded`. + macro_rules! assert_bounded { + ($ty:ty) => { + assert_ne!(<$ty>::BOUND, StorableBound::Unbounded, "Must be Bounded"); + }; + } + + /// Asserts that the associated `BOUND` for `$ty` _is_ `Unbounded`. + macro_rules! assert_unbounded { + ($ty:ty) => { + assert_eq!(<$ty>::BOUND, StorableBound::Unbounded, "Must be Unbounded"); + }; + } + + macro_rules! run_with_key { + ($runner:ident, $K:ty) => {{ verify_monotonic::<$K>(); - $runner::<$K, $V>(); + + // Empty value. + $runner::<$K, ()>(); + + // Bounded values. + assert_bounded!(u32); + $runner::<$K, u32>(); + + assert_bounded!(Blob<20>); + $runner::<$K, Blob<20>>(); + + // Unbounded values. + assert_unbounded!(MonotonicVec32); + $runner::<$K, MonotonicVec32>(); + + assert_unbounded!(MonotonicString32); + $runner::<$K, MonotonicString32>(); }}; } @@ -1322,37 +1352,19 @@ mod test { ($name:ident, $runner:ident) => { #[test] fn $name() { - use StorableBound::Unbounded; - - // Set, empty value, bounded. - { - type Value = (); - assert_ne!(::BOUND, Unbounded, "Must be Bounded"); - verify_and_run!($runner, u32, Value); - verify_and_run!($runner, Blob<10>, Value); - verify_and_run!($runner, MonotonicVec32, Value); - verify_and_run!($runner, MonotonicString32, Value); - } + // Bounded keys. + assert_bounded!(u32); + run_with_key!($runner, u32); - // Map, bounded value. - { - type Value = u32; - assert_ne!(Value::BOUND, Unbounded, "Must be Bounded"); - verify_and_run!($runner, u32, Value); - verify_and_run!($runner, Blob<10>, Value); - verify_and_run!($runner, MonotonicVec32, Value); - verify_and_run!($runner, MonotonicString32, Value); - } + assert_bounded!(Blob<10>); + run_with_key!($runner, Blob<10>); - // Map, unbounded value. - { - type Value = MonotonicVec32; - assert_eq!(Value::BOUND, Unbounded, "Must be Unbounded"); - verify_and_run!($runner, u32, Value); - verify_and_run!($runner, Blob<10>, Value); - verify_and_run!($runner, MonotonicVec32, Value); - verify_and_run!($runner, MonotonicString32, Value); - } + // Unbounded keys. + assert_unbounded!(MonotonicVec32); + run_with_key!($runner, MonotonicVec32); + + assert_unbounded!(MonotonicString32); + run_with_key!($runner, MonotonicString32); } }; } @@ -1440,7 +1452,7 @@ mod test { assert!(right_child.is_full()); let median_index = right_child.entries_len() / 2; let median_key = key(12); - assert_eq!(right_child.key(median_index), &median_key); + assert_eq!(right_child.key(median_index, btree.memory()), &median_key); // Overwrite the value of the median key. assert_eq!(btree.insert(median_key.clone(), value(123)), Some(value(0))); @@ -3089,7 +3101,7 @@ mod test { // [0, 1, 2, 3, 4, 5] [7, 8, 9, 10, 11] let root = btree.load_node(btree.root_addr); assert_eq!(root.node_type(), NodeType::Internal); - assert_eq!(root.keys(), vec![vec![6; 10_000]]); + assert_eq!(root.keys(btree.memory()), vec![vec![6; 10_000]]); assert_eq!(root.children_len(), 2); // Remove the element in the root. @@ -3101,7 +3113,7 @@ mod test { // [0, 1, 2, 3, 4] [7, 8, 9, 10, 11] let root = btree.load_node(btree.root_addr); assert_eq!(root.node_type(), NodeType::Internal); - assert_eq!(root.keys(), vec![vec![5; 10_000]]); + assert_eq!(root.keys(btree.memory()), vec![vec![5; 10_000]]); assert_eq!(root.children_len(), 2); // Remove the element in the root. This triggers the case where the root @@ -3113,7 +3125,7 @@ mod test { let root = btree.load_node(btree.root_addr); assert_eq!(root.node_type(), NodeType::Leaf); assert_eq!( - root.keys(), + root.keys(btree.memory()), vec![ vec![0; 10_000], vec![1; 10_000], diff --git a/src/btreemap/iter.rs b/src/btreemap/iter.rs index 82869508..1e653e16 100644 --- a/src/btreemap/iter.rs +++ b/src/btreemap/iter.rs @@ -94,7 +94,7 @@ where Bound::Included(key) | Bound::Excluded(key) => { let mut node = self.map.load_node(self.map.root_addr); loop { - match node.search(key) { + match node.search(key, self.map.memory()) { Ok(idx) => { if let Bound::Included(_) = self.range.start_bound() { // We found the key exactly matching the left bound. @@ -115,7 +115,7 @@ where }; if idx + 1 < node.entries_len() - && self.range.contains(node.key(idx + 1)) + && self.range.contains(node.key(idx + 1, self.map.memory())) { self.forward_cursors.push(Cursor::Node { node, @@ -152,7 +152,9 @@ where NodeType::Leaf => None, }; - if idx < node.entries_len() && self.range.contains(node.key(idx)) { + if idx < node.entries_len() + && self.range.contains(node.key(idx, self.map.memory())) + { self.forward_cursors.push(Cursor::Node { node, next: Index::Entry(idx), @@ -188,7 +190,7 @@ where Bound::Included(key) | Bound::Excluded(key) => { let mut node = self.map.load_node(self.map.root_addr); loop { - match node.search(key) { + match node.search(key, self.map.memory()) { Ok(idx) => { if let Bound::Included(_) = self.range.end_bound() { // We found the key exactly matching the right bound. @@ -208,7 +210,9 @@ where NodeType::Leaf => None, }; - if idx > 0 && self.range.contains(node.key(idx - 1)) { + if idx > 0 + && self.range.contains(node.key(idx - 1, self.map.memory())) + { self.backward_cursors.push(Cursor::Node { node, next: Index::Entry(idx - 1), @@ -243,7 +247,8 @@ where NodeType::Leaf => None, }; - if idx > 0 && self.range.contains(node.key(idx - 1)) { + if idx > 0 && self.range.contains(node.key(idx - 1, self.map.memory())) + { self.backward_cursors.push(Cursor::Node { node, next: Index::Entry(idx - 1), @@ -320,7 +325,7 @@ where next: Index::Entry(entry_idx), } => { // If the key does not belong to the range, iteration stops. - if !self.range.contains(node.key(entry_idx)) { + if !self.range.contains(node.key(entry_idx, self.map.memory())) { // Clear all cursors to avoid needless work in subsequent calls. self.forward_cursors = vec![]; self.backward_cursors = vec![]; @@ -328,7 +333,7 @@ where } let res = map(&node, entry_idx); - self.range.0 = Bound::Excluded(node.key(entry_idx).clone()); + self.range.0 = Bound::Excluded(node.key(entry_idx, self.map.memory()).clone()); let next = match node.node_type() { // If this is an internal node, add the next child to the cursors. @@ -403,7 +408,7 @@ where next: Index::Entry(entry_idx), } => { // If the key does not belong to the range, iteration stops. - if !self.range.contains(node.key(entry_idx)) { + if !self.range.contains(node.key(entry_idx, self.map.memory())) { // Clear all cursors to avoid needless work in subsequent calls. self.forward_cursors = vec![]; self.backward_cursors = vec![]; @@ -411,7 +416,7 @@ where } let res = map(&node, entry_idx); - self.range.1 = Bound::Excluded(node.key(entry_idx).clone()); + self.range.1 = Bound::Excluded(node.key(entry_idx, self.map.memory()).clone()); if let Some(next) = match node.node_type() { // If this is an internal node, add the previous child to the cursors. @@ -497,7 +502,7 @@ where fn next(&mut self) -> Option { self.0 - .next_map(|node, entry_idx| node.key(entry_idx).clone()) + .next_map(|node, entry_idx| node.key(entry_idx, self.0.map.memory()).clone()) } fn count(mut self) -> usize @@ -516,7 +521,7 @@ where { fn next_back(&mut self) -> Option { self.0 - .next_back_map(|node, entry_idx| node.key(entry_idx).clone()) + .next_back_map(|node, entry_idx| node.key(entry_idx, self.0.map.memory()).clone()) } } diff --git a/src/btreemap/node.rs b/src/btreemap/node.rs index 50af80e0..7079d7f0 100644 --- a/src/btreemap/node.rs +++ b/src/btreemap/node.rs @@ -39,6 +39,8 @@ pub enum NodeType { pub type Entry = (K, Vec); pub type EntryRef<'a, K> = (&'a K, &'a [u8]); +type LazyEntry = (LazyKey, LazyValue); + /// A node of a B-Tree. /// /// There are two versions of a `Node`: @@ -52,7 +54,7 @@ pub struct Node { address: Address, // List of tuples consisting of a key and the encoded value. // INVARIANT: the list is sorted by key. - keys_and_encoded_values: Vec<(K, Value)>, + keys_and_encoded_values: Vec>, // For the key at position I, children[I] points to the left // child of this key and children[I + 1] points to the right child. children: Vec
, @@ -106,14 +108,13 @@ impl Node { pub fn get_max(&self, memory: &M) -> Entry { match self.node_type { NodeType::Leaf => { - let last_idx = self.keys_and_encoded_values.len() - 1; + let entry = self + .keys_and_encoded_values + .last() + .expect("A node can never be empty"); ( - self.keys_and_encoded_values - .last() - .expect("A node can never be empty") - .0 - .clone(), - self.value(last_idx, memory).to_vec(), + self.get_key(entry, memory).clone(), + self.get_value(entry, memory).to_vec(), ) } NodeType::Internal => { @@ -164,32 +165,94 @@ impl Node { ) -> Entry { let (old_key, old_value) = core::mem::replace( &mut self.keys_and_encoded_values[idx], - (key, Value::by_value(value)), + (LazyKey::by_value(key), LazyValue::by_value(value)), ); - (old_key, self.extract_value(old_value, memory)) + ( + self.extract_key(old_key, memory), + self.extract_value(old_value, memory), + ) } /// Returns a reference to the entry at the specified index. pub fn entry(&self, idx: usize, memory: &M) -> EntryRef { - ( - &self.keys_and_encoded_values[idx].0, - self.value(idx, memory), - ) + (self.key(idx, memory), self.value(idx, memory)) + } + + /// Returns a reference to the cached key and loads it from memory if needed. + #[inline] + fn get_key<'a, M: Memory>(&'a self, (k, _): &'a LazyEntry, memory: &M) -> &'a K { + k.get_or_load(|offset| self.load_key_from_memory(offset, memory)) + } + + /// Returns a reference to the cached value and loads it from memory if needed. + #[inline] + fn get_value<'a, M: Memory>(&'a self, (_, v): &'a LazyEntry, memory: &M) -> &'a [u8] { + v.get_or_load(|offset| self.load_value_from_memory(offset, memory)) + } + + /// Returns a reference to the key at the specified index. + pub fn key(&self, idx: usize, memory: &M) -> &K { + self.get_key(&self.keys_and_encoded_values[idx], memory) } /// Returns a reference to the encoded value at the specified index. pub fn value(&self, idx: usize, memory: &M) -> &[u8] { - // Load and cache the value from the underlying memory if needed. - self.keys_and_encoded_values[idx] - .1 - .get_or_load(|offset| self.load_value_from_memory(offset, memory)) + self.get_value(&self.keys_and_encoded_values[idx], memory) + } + + /// Extracts the contents of key (by loading it first if it's not loaded yet). + fn extract_key(&self, key: LazyKey, memory: &M) -> K { + key.take_or_load(|offset| self.load_key_from_memory(offset, memory)) } /// Extracts the contents of value (by loading it first if it's not loaded yet). - fn extract_value(&self, value: Value, memory: &M) -> Vec { + fn extract_value(&self, value: LazyValue, memory: &M) -> Vec { value.take_or_load(|offset| self.load_value_from_memory(offset, memory)) } + /// Loads a key from stable memory at the given offset of this node. + fn load_key_from_memory(&self, mut offset: Bytes, memory: &M) -> K { + let reader = NodeReader { + address: self.address, + overflows: &self.overflows, + page_size: self.page_size(), + memory, + }; + + // Retrieve the key's size. + let key_offset = Address::from(offset.get()); + let key_size = match self.version { + Version::V1(_) => { + // In V1, the key's size is always stored in memory. + offset += U32_SIZE; + read_u32(&reader, key_offset) + } + Version::V2(_) => { + // In V2, if the key is fixed-size, use the maximum bound; + // otherwise, read its size from memory. + if K::BOUND.is_fixed_size() { + K::BOUND.max_size() + } else { + offset += U32_SIZE; + read_u32(&reader, key_offset) + } + } + }; + + let mut bytes = vec![]; + read_to_vec( + &reader, + Address::from((offset).get()), + &mut bytes, + key_size as usize, + ); + //println!("ABC load key_size: {key_size:?}"); + //println!("ABC load key: {bytes:?}"); + let key = K::from_bytes(Cow::Borrowed(&bytes)); + + key + } + /// Loads a value from stable memory at the given offset of this node. fn load_value_from_memory(&self, offset: Bytes, memory: &M) -> Vec { let reader = NodeReader { @@ -199,13 +262,13 @@ impl Node { memory, }; - let value_len = read_u32(&reader, Address::from(offset.get())) as usize; + let value_size = read_u32(&reader, Address::from(offset.get())) as usize; let mut bytes = vec![]; read_to_vec( &reader, Address::from((offset + U32_SIZE).get()), &mut bytes, - value_len, + value_size, ); bytes @@ -215,11 +278,6 @@ impl Node { self.version.page_size() } - /// Returns a reference to the key at the specified index. - pub fn key(&self, idx: usize) -> &K { - &self.keys_and_encoded_values[idx].0 - } - /// Returns the child's address at the given index. pub fn child(&self, idx: usize) -> Address { self.children[idx] @@ -251,28 +309,41 @@ impl Node { } /// Inserts a new entry at the specified index. - pub fn insert_entry(&mut self, idx: usize, (key, encoded_value): Entry) { + pub fn insert_entry(&mut self, idx: usize, (key, value): Entry) { self.keys_and_encoded_values - .insert(idx, (key, Value::by_value(encoded_value))); + .insert(idx, (LazyKey::by_value(key), LazyValue::by_value(value))); + // let keys: Vec<_> = self + // .keys_and_encoded_values + // .iter() + // .map(|(key, _)| format!("{key:?}")) + // .collect(); + //println!("ABC insert_entry: {:?}", keys); } /// Returns the entry at the specified index while consuming this node. pub fn into_entry(mut self, idx: usize, memory: &M) -> Entry { let keys_and_encoded_values = core::mem::take(&mut self.keys_and_encoded_values); let (key, value) = keys_and_encoded_values.into_iter().nth(idx).unwrap(); - (key, self.extract_value(value, memory)) + ( + self.extract_key(key, memory), + self.extract_value(value, memory), + ) } /// Removes the entry at the specified index. pub fn remove_entry(&mut self, idx: usize, memory: &M) -> Entry { let (key, value) = self.keys_and_encoded_values.remove(idx); - (key, self.extract_value(value, memory)) + //println!("ABC remove_entry: {:?}", key); + ( + self.extract_key(key, memory), + self.extract_value(value, memory), + ) } /// Adds a new entry at the back of the node. - pub fn push_entry(&mut self, (key, encoded_value): Entry) { + pub fn push_entry(&mut self, (key, value): Entry) { self.keys_and_encoded_values - .push((key, Value::by_value(encoded_value))); + .push((LazyKey::by_value(key), LazyValue::by_value(value))); } /// Removes an entry from the back of the node. @@ -282,12 +353,15 @@ impl Node { return None; } - let (key, last_value) = self + let (key, value) = self .keys_and_encoded_values .pop() .expect("node must not be empty"); - Some((key, self.extract_value(last_value, memory))) + Some(( + self.extract_key(key, memory), + self.extract_value(value, memory), + )) } /// Merges the entries and children of the `source` node into self, along with the median entry. @@ -307,19 +381,32 @@ impl Node { median: Entry, allocator: &mut Allocator, ) { - // Load all the values from the source node first, as they will be moved out. + // let self_keys: Vec<_> = self + // .keys_and_encoded_values + // .iter() + // .map(|(k, _)| format!("{k:?}")) + // .collect(); + + // let source_keys: Vec<_> = source + // .keys_and_encoded_values + // .iter() + // .map(|(k, _)| format!("{k:?}\n")) + // .collect(); + //println!("ABC merge\n self : {self_keys:?}\n source : {source_keys:?} \n"); + + // Load all the entries from the source node first, as they will be moved out. for i in 0..source.entries_len() { - source.value(i, allocator.memory()); + let _e = source.entry(i, allocator.memory()); } - if source.key(0) > self.key(0) { + if source.key(0, allocator.memory()) > self.key(0, allocator.memory()) { // The source node has keys that are greater than self. // Append the source node into self. - Self::append(self, &mut source, median); + Self::append(self, &mut source, median, allocator.memory()); } else { // self has keys that are greater than the source node. // Append self into the source node (which more efficient). - Self::append(&mut source, self, median); + Self::append(&mut source, self, median, allocator.memory()); // Move the entries and children into self. self.keys_and_encoded_values = core::mem::take(&mut source.keys_and_encoded_values); @@ -340,14 +427,14 @@ impl Node { /// /// POSTCONDITION: /// * `b` is empty. - fn append(a: &mut Node, b: &mut Node, median: Entry) { + fn append(a: &mut Node, b: &mut Node, median: Entry, memory: &M) { // Assert preconditions. let a_len = a.entries_len(); assert_eq!(a.node_type(), b.node_type()); assert!(b.entries_len() > 0); assert!(a_len > 0); - assert!(a.key(a_len - 1) < &median.0); - assert!(&median.0 < b.key(0)); + assert!(a.key(a_len - 1, memory) < &median.0); + assert!(&median.0 < b.key(0, memory)); a.push_entry(median); @@ -364,18 +451,15 @@ impl Node { #[cfg(test)] pub fn entries(&self, memory: &M) -> Vec> { - self.keys_and_encoded_values - .iter() - .enumerate() - .map(|(idx, (key, _))| (key.clone(), self.value(idx, memory).to_vec())) + (0..self.keys_and_encoded_values.len()) + .map(|i| (self.key(i, memory).clone(), self.value(i, memory).to_vec())) .collect() } #[cfg(test)] - pub fn keys(&self) -> Vec { - self.keys_and_encoded_values - .iter() - .map(|(key, _)| key.clone()) + pub fn keys(&self, memory: &M) -> Vec { + (0..self.keys_and_encoded_values.len()) + .map(|i| self.key(i, memory).clone()) .collect() } @@ -395,9 +479,26 @@ impl Node { /// of the matching key. If the value is not found then `Result::Err` is /// returned, containing the index where a matching key could be inserted /// while maintaining sorted order. - pub fn search(&self, key: &K) -> Result { - self.keys_and_encoded_values - .binary_search_by_key(&key, |entry| &entry.0) + pub fn search(&self, key: &K, memory: &M) -> Result { + // let self_keys: Vec<_> = self + // .keys_and_encoded_values + // .iter() + // .map(|(k, _)| format!("{k:?}")) + // .collect(); + // println!("\nABC search BEFORE: {self_keys:?}"); + + let result = self + .keys_and_encoded_values + .binary_search_by_key(&key, |entry| self.get_key(entry, memory)); + + // let self_keys: Vec<_> = self + // .keys_and_encoded_values + // .iter() + // .map(|(k, _)| format!("{k:?}")) + // .collect(); + //println!("ABC search AFTER : {self_keys:?}"); + + result } /// Returns the maximum size a node can be if it has bounded keys and values. @@ -422,9 +523,9 @@ impl Node { pub fn split(&mut self, sibling: &mut Node, memory: &M) -> Entry { debug_assert!(self.is_full()); - // Load the values that will be moved out of the node and into the new sibling. + // Load the entries that will be moved out of the node and into the new sibling. for idx in B..self.entries_len() { - self.value(idx, memory); + let _e = self.entry(idx, memory); } // Move the entries and children above the median into the new sibling. @@ -463,53 +564,134 @@ impl NodeHeader { } } -/// The value in a K/V pair. +struct LazyKey(LazyObject); + +impl LazyKey { + /// Create a lazy key with a memory offset. + #[inline] + pub fn by_ref(offset: Bytes) -> Self { + Self(LazyObject::by_ref(offset)) + } + + /// Create a lazy key from a key. + #[inline] + pub fn by_value(key: K) -> Self { + Self(LazyObject::by_value(key)) + } + + /// Returns a reference to the key, loading it if necessary. + #[inline] + pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> K) -> &K { + self.0.get_or_load(load) + } + + /// Consumes self and returns the key, loading it if necessary. + #[inline] + pub fn take_or_load(self, load: impl FnOnce(Bytes) -> K) -> K { + self.0.take_or_load(load) + } +} + +impl std::fmt::Debug for LazyKey { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match &self.0 { + LazyObject::ByVal(ref key) => { + let bytes = key.to_bytes_checked(); + f.debug_tuple("LazyKey") + .field(&format_args!("LazyKey::ByVal({:?})", bytes)) + .finish() + } + LazyObject::ByRef { offset, loaded } => match loaded.get() { + Some(key) => { + let bytes = key.to_bytes_checked(); + f.debug_tuple("LazyKey") + .field(&format_args!("LazyKey::ByRef(loaded:{:?})", bytes)) + .finish() + } + None => f + .debug_tuple("LazyKey") + .field(&format_args!("LazyKey::ByRef(offset: {:?})", offset)) + .finish(), + }, + } + } +} + +type Blob = Vec; + +#[derive(Debug)] +struct LazyValue(LazyObject); + +impl LazyValue { + /// Create a lazy value with a memory offset. + #[inline] + pub fn by_ref(offset: Bytes) -> Self { + Self(LazyObject::by_ref(offset)) + } + + /// Create a lazy value from a value. + #[inline] + pub fn by_value(value: Blob) -> Self { + Self(LazyObject::by_value(value)) + } + + /// Returns a reference to the key, loading it if necessary. + #[inline] + pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> Blob) -> &Blob { + self.0.get_or_load(load) + } + + /// Consumes self and returns the key, loading it if necessary. + #[inline] + pub fn take_or_load(self, load: impl FnOnce(Bytes) -> Blob) -> Blob { + self.0.take_or_load(load) + } +} + +/// A lazy-loaded object. #[derive(Debug)] -enum Value { - /// The value's encoded bytes. - ByVal(Vec), +enum LazyObject { + /// Object stored by value. + ByVal(T), + /// Object stored by reference, loaded on demand. ByRef { - /// The value's offset in the node. + /// Memory offset of the object. offset: Bytes, - /// The lazily loaded encoded bytes. - loaded_value: OnceCell>, + /// Cache for the lazily loaded object. + loaded: OnceCell, }, } -impl Value { +impl LazyObject { + /// Create a lazy object with a memory offset. pub fn by_ref(offset: Bytes) -> Self { Self::ByRef { offset, - loaded_value: Default::default(), + loaded: Default::default(), } } - pub fn by_value(value: Vec) -> Self { + /// Create a lazy object from a value. + pub fn by_value(value: T) -> Self { Self::ByVal(value) } - /// Returns a reference to the value if the value has been loaded or runs the given function to - /// load the value. - pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> Vec) -> &[u8] { + /// Get a reference to the object, loading it if necessary. + pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> T) -> &T { match self { - Value::ByVal(v) => &v[..], - Value::ByRef { - offset, - loaded_value: value, - } => value.get_or_init(|| load(*offset)), + LazyObject::ByVal(v) => v, + LazyObject::ByRef { offset, loaded } => loaded.get_or_init(|| load(*offset)), } } - /// Extracts the value while consuming self if the value has been loaded or runs the given - /// function to load the value. - pub fn take_or_load(self, load: impl FnOnce(Bytes) -> Vec) -> Vec { + /// Consume self and return the object, loading it if necessary. + pub fn take_or_load(self, load: impl FnOnce(Bytes) -> T) -> T { match self { - Value::ByVal(v) => v, - Value::ByRef { - offset, - loaded_value: value, - } => value.into_inner().unwrap_or_else(|| load(offset)), + LazyObject::ByVal(v) => v, + LazyObject::ByRef { offset, loaded } => { + loaded.into_inner().unwrap_or_else(|| load(offset)) + } } } } diff --git a/src/btreemap/node/v1.rs b/src/btreemap/node/v1.rs index 2dc02857..ddaf20aa 100644 --- a/src/btreemap/node/v1.rs +++ b/src/btreemap/node/v1.rs @@ -15,9 +15,13 @@ //! ---------------------------------------- //! # Entries (k) ↕ 2 bytes //! ---------------------------------------- <-- Entries (upto `CAPACITY` entries) -//! Key(0) +//! Key(0) size ↕ 4 bytes //! ---------------------------------------- -//! Value(0) +//! Key(0) ↕ `max_key_size` bytes +//! ---------------------------------------- +//! Value(0) size ↕ 4 bytes +//! ---------------------------------------- +//! Value(0) ↕ `max_value_size` bytes //! ---------------------------------------- //! Key(1) size ↕ 4 bytes //! ---------------------------------------- @@ -59,26 +63,37 @@ impl Node { max_value_size: u32, memory: &M, ) -> Self { - #[cfg(feature = "canbench")] - let _p = canbench::profile("node_load_v1"); - // Load the entries. let mut keys_encoded_values = Vec::with_capacity(header.num_entries as usize); let mut offset = NodeHeader::size(); - let mut buf = vec![]; + //const LOAD_SIZE_THRESHOLD: u32 = 8; + //let mut buf = vec![]; for _ in 0..header.num_entries { - // Read the key's size. - let key_size = read_u32(memory, address + offset); + let key_offset = offset; + //let key_size = read_u32(memory, address + offset); offset += U32_SIZE; - - // Read the key. - read_to_vec(memory, address + offset, &mut buf, key_size as usize); + // let key = if key_size <= LOAD_SIZE_THRESHOLD { + // read_to_vec(memory, address + offset, &mut buf, key_size as usize); + // LazyKey::by_value(K::from_bytes(Cow::Borrowed(&buf))) + // } else { + // LazyKey::by_ref(key_offset) + // }; + let key = LazyKey::by_ref(key_offset); offset += Bytes::from(max_key_size); - let key = K::from_bytes(Cow::Borrowed(&buf)); - // Values are loaded lazily. Store a reference and skip loading it. - keys_encoded_values.push((key, Value::by_ref(offset))); - offset += U32_SIZE + Bytes::from(max_value_size); + let value_offset = offset; + // let value_size = read_u32(memory, address + offset); + offset += U32_SIZE; + // let value = if value_size <= LOAD_SIZE_THRESHOLD { + // read_to_vec(memory, address + offset, &mut buf, value_size as usize); + // LazyValue::by_value(buf.to_vec()) + // } else { + // LazyValue::by_ref(value_offset) + // }; + let value = LazyValue::by_ref(value_offset); + offset += Bytes::from(max_value_size); + + keys_encoded_values.push((key, value)); } // Load children if this is an internal node. @@ -113,9 +128,6 @@ impl Node { } pub(super) fn save_v1(&self, memory: &M) { - #[cfg(feature = "canbench")] - let _p = canbench::profile("node_save_v1"); - match self.node_type { NodeType::Leaf => { assert!(self.children.is_empty()); @@ -129,10 +141,17 @@ impl Node { assert!(!self.keys_and_encoded_values.is_empty() || !self.children.is_empty()); // Assert entries are sorted in strictly increasing order. + + // TODO: remove debug code. + // let entries: Vec<_> = (0..self.entries_len()) + // .map(|i| (i, self.key(i, memory).to_bytes(), self.value(i, memory))) + // .collect(); + //println!("ABC: entries: {:?}", entries); + assert!(self .keys_and_encoded_values .windows(2) - .all(|e| e[0].0 < e[1].0)); + .all(|arr| self.get_key(&arr[0], memory) < self.get_key(&arr[1], memory))); let (max_key_size, max_value_size) = match self.version { Version::V1(DerivedPageSize { @@ -156,16 +175,16 @@ impl Node { let mut offset = NodeHeader::size(); - // Load all the values. This is necessary so that we don't overwrite referenced - // values when writing the entries to the node. + // Load all the entries. This is necessary so that we don't overwrite referenced + // entries when writing the entries to the node. for i in 0..self.keys_and_encoded_values.len() { - self.value(i, memory); + self.entry(i, memory); } // Write the entries. - for (idx, (key, _)) in self.keys_and_encoded_values.iter().enumerate() { + for i in 0..self.keys_and_encoded_values.len() { // Write the size of the key. - let key_bytes = key.to_bytes_checked(); + let key_bytes = self.key(i, memory).to_bytes_checked(); write_u32(memory, self.address + offset, key_bytes.len() as u32); offset += U32_SIZE; @@ -174,7 +193,7 @@ impl Node { offset += Bytes::from(max_key_size); // Write the size of the value. - let value = self.value(idx, memory); + let value = self.value(i, memory); write_u32(memory, self.address + offset, value.len() as u32); offset += U32_SIZE; diff --git a/src/btreemap/node/v2.rs b/src/btreemap/node/v2.rs index f559d777..c6a0555b 100644 --- a/src/btreemap/node/v2.rs +++ b/src/btreemap/node/v2.rs @@ -111,9 +111,6 @@ impl Node { header: NodeHeader, memory: &M, ) -> Self { - #[cfg(feature = "canbench")] - let _p = canbench::profile("node_load_v2"); - // Load the node, including any overflows, into a buffer. let overflows = read_overflows(address, memory); @@ -151,32 +148,49 @@ impl Node { // Load the keys. let mut keys_encoded_values = Vec::with_capacity(num_entries); - let mut buf = vec![]; + //const LOAD_SIZE_THRESHOLD: u32 = 8; + //let mut buf = vec![]; for _ in 0..num_entries { - // Load the key's size. + let key_offset = Bytes::from(offset.get()); + + // Advance offset by the key_size type size if applicable. let key_size = if K::BOUND.is_fixed_size() { // Key is fixed in size. The size of the key is always its max size. K::BOUND.max_size() } else { // Key is not fixed in size. Read the size from memory. - let value = read_u32(&reader, offset); + let key_size = read_u32(&reader, offset); + //println!("ABC read key_size: {:?}", key_size); offset += U32_SIZE; - value + key_size }; - - // Load the key. - read_to_vec(&reader, offset, &mut buf, key_size as usize); - let key = K::from_bytes(Cow::Borrowed(&buf)); + // let key = if key_size <= LOAD_SIZE_THRESHOLD { + // read_to_vec(&reader, offset, &mut buf, key_size as usize); + // LazyKey::by_value(K::from_bytes(Cow::Borrowed(&buf))) + // } else { + // LazyKey::by_ref(key_offset) + // }; + let key = LazyKey::by_ref(key_offset); + + // Advance offset by the size of the key. offset += Bytes::from(key_size); - keys_encoded_values.push((key, Value::by_ref(Bytes::from(0usize)))); + + keys_encoded_values.push((key, LazyValue::by_ref(Bytes::from(0usize)))); } // Load the values for (_key, value) in keys_encoded_values.iter_mut() { - // Load the values lazily. - *value = Value::by_ref(Bytes::from(offset.get())); - let value_size = read_u32(&reader, offset) as usize; - offset += U32_SIZE + Bytes::from(value_size as u64); + let value_offset = Bytes::from(offset.get()); + let value_size = read_u32(&reader, offset); + offset += U32_SIZE; + // *value = if value_size <= LOAD_SIZE_THRESHOLD { + // read_to_vec(&reader, offset, &mut buf, value_size as usize); + // LazyValue::by_value(buf.to_vec()) + // } else { + // LazyValue::by_ref(value_offset) + // }; + *value = LazyValue::by_ref(value_offset); + offset += Bytes::from(value_size as u64); } Self { @@ -191,17 +205,14 @@ impl Node { // Saves the node to memory. pub(super) fn save_v2(&mut self, allocator: &mut Allocator) { - #[cfg(feature = "canbench")] - let _p = canbench::profile("node_save_v2"); - let page_size = self.version.page_size().get(); assert!(page_size >= MINIMUM_PAGE_SIZE); - // Load all the values. This is necessary so that we don't overwrite referenced - // values when writing the entries to the node. - for i in 0..self.keys_and_encoded_values.len() { - self.value(i, allocator.memory()); - } + // Load all the entry. This is necessary so that we don't overwrite referenced + // entry when writing the entries to the node. + let entries: Vec<_> = (0..self.keys_and_encoded_values.len()) + .map(|i| self.entry(i, allocator.memory())) + .collect(); // Initialize a NodeWriter. The NodeWriter takes care of allocating/deallocating // overflow pages as needed. @@ -239,9 +250,8 @@ impl Node { } // Write the keys. - for (key, _) in self.keys_and_encoded_values.iter() { + for (key, _) in &entries { let key_bytes = key.to_bytes_checked(); - // Write the size of the key if it isn't fixed in size. if !K::BOUND.is_fixed_size() { writer.write_u32(offset, key_bytes.len() as u32); @@ -254,9 +264,8 @@ impl Node { } // Write the values. - for idx in 0..self.entries_len() { + for (_, value) in &entries { // Write the size of the value. - let value = self.value(idx, writer.memory()); writer.write_u32(offset, value.len() as u32); offset += U32_SIZE; From 2a4e075fbf4047876537ea0c837d7f3f9cce6c11 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Thu, 24 Apr 2025 18:01:14 +0200 Subject: [PATCH 40/68] rebase main --- src/btreemap.rs | 24 +-- src/btreemap/iter.rs | 29 ++-- src/btreemap/node.rs | 344 ++++++++++++++++++++++++++++++---------- src/btreemap/node/v1.rs | 61 ++++--- src/btreemap/node/v2.rs | 65 ++++---- 5 files changed, 367 insertions(+), 156 deletions(-) diff --git a/src/btreemap.rs b/src/btreemap.rs index 55651cef..e7e4c457 100644 --- a/src/btreemap.rs +++ b/src/btreemap.rs @@ -366,7 +366,7 @@ where let mut root = self.load_node(self.root_addr); // Check if the key already exists in the root. - if let Ok(idx) = root.search(&key) { + if let Ok(idx) = root.search(&key, self.memory()) { // The key exists. Overwrite it and return the previous value. let (_, previous_value) = root.swap_entry(idx, (key, value), self.memory()); self.save_node(&mut root); @@ -409,7 +409,7 @@ where assert!(!node.is_full()); // Look for the key in the node. - match node.search(&key) { + match node.search(&key, self.memory()) { Ok(idx) => { // The key is already in the node. // Overwrite it and return the previous value. @@ -442,7 +442,7 @@ where if child.is_full() { // Check if the key already exists in the child. - if let Ok(idx) = child.search(&key) { + if let Ok(idx) = child.search(&key, self.memory()) { // The key exists. Overwrite it and return the previous value. let (_, previous_value) = child.swap_entry(idx, (key, value), self.memory()); @@ -455,7 +455,7 @@ where // The children have now changed. Search again for // the child where we need to store the entry in. - let idx = node.search(&key).unwrap_or_else(|idx| idx); + let idx = node.search(&key, self.memory()).unwrap_or_else(|idx| idx); child = self.load_node(node.child(idx)); } @@ -469,7 +469,7 @@ where } } - /// Takes as input a nonfull internal `node` and index to its full child, then + /// Takes as input a non-full internal `node` and index to its full child, then /// splits this child into two, adding an additional child to `node`. /// /// Example: @@ -535,7 +535,7 @@ where { let node = self.load_node(node_addr); // Look for the key in the current node. - match node.search(key) { + match node.search(key, self.memory()) { Ok(idx) => Some(f(node, idx)), // Key found: apply `f`. Err(idx) => match node.node_type() { NodeType::Leaf => None, // At a leaf: key not present. @@ -652,7 +652,7 @@ where match node.node_type() { NodeType::Leaf => { - match node.search(key) { + match node.search(key, self.memory()) { Ok(idx) => { // Case 1: The node is a leaf node and the key exists in it. // This is the simplest case. The key is removed from the leaf. @@ -679,7 +679,7 @@ where } } NodeType::Internal => { - match node.search(key) { + match node.search(key, self.memory()) { Ok(idx) => { // Case 2: The node is an internal node and the key exists in it. @@ -1452,7 +1452,7 @@ mod test { assert!(right_child.is_full()); let median_index = right_child.entries_len() / 2; let median_key = key(12); - assert_eq!(right_child.key(median_index), &median_key); + assert_eq!(right_child.key(median_index, btree.memory()), &median_key); // Overwrite the value of the median key. assert_eq!(btree.insert(median_key.clone(), value(123)), Some(value(0))); @@ -3101,7 +3101,7 @@ mod test { // [0, 1, 2, 3, 4, 5] [7, 8, 9, 10, 11] let root = btree.load_node(btree.root_addr); assert_eq!(root.node_type(), NodeType::Internal); - assert_eq!(root.keys(), vec![vec![6; 10_000]]); + assert_eq!(root.keys(btree.memory()), vec![vec![6; 10_000]]); assert_eq!(root.children_len(), 2); // Remove the element in the root. @@ -3113,7 +3113,7 @@ mod test { // [0, 1, 2, 3, 4] [7, 8, 9, 10, 11] let root = btree.load_node(btree.root_addr); assert_eq!(root.node_type(), NodeType::Internal); - assert_eq!(root.keys(), vec![vec![5; 10_000]]); + assert_eq!(root.keys(btree.memory()), vec![vec![5; 10_000]]); assert_eq!(root.children_len(), 2); // Remove the element in the root. This triggers the case where the root @@ -3125,7 +3125,7 @@ mod test { let root = btree.load_node(btree.root_addr); assert_eq!(root.node_type(), NodeType::Leaf); assert_eq!( - root.keys(), + root.keys(btree.memory()), vec![ vec![0; 10_000], vec![1; 10_000], diff --git a/src/btreemap/iter.rs b/src/btreemap/iter.rs index 82869508..1e653e16 100644 --- a/src/btreemap/iter.rs +++ b/src/btreemap/iter.rs @@ -94,7 +94,7 @@ where Bound::Included(key) | Bound::Excluded(key) => { let mut node = self.map.load_node(self.map.root_addr); loop { - match node.search(key) { + match node.search(key, self.map.memory()) { Ok(idx) => { if let Bound::Included(_) = self.range.start_bound() { // We found the key exactly matching the left bound. @@ -115,7 +115,7 @@ where }; if idx + 1 < node.entries_len() - && self.range.contains(node.key(idx + 1)) + && self.range.contains(node.key(idx + 1, self.map.memory())) { self.forward_cursors.push(Cursor::Node { node, @@ -152,7 +152,9 @@ where NodeType::Leaf => None, }; - if idx < node.entries_len() && self.range.contains(node.key(idx)) { + if idx < node.entries_len() + && self.range.contains(node.key(idx, self.map.memory())) + { self.forward_cursors.push(Cursor::Node { node, next: Index::Entry(idx), @@ -188,7 +190,7 @@ where Bound::Included(key) | Bound::Excluded(key) => { let mut node = self.map.load_node(self.map.root_addr); loop { - match node.search(key) { + match node.search(key, self.map.memory()) { Ok(idx) => { if let Bound::Included(_) = self.range.end_bound() { // We found the key exactly matching the right bound. @@ -208,7 +210,9 @@ where NodeType::Leaf => None, }; - if idx > 0 && self.range.contains(node.key(idx - 1)) { + if idx > 0 + && self.range.contains(node.key(idx - 1, self.map.memory())) + { self.backward_cursors.push(Cursor::Node { node, next: Index::Entry(idx - 1), @@ -243,7 +247,8 @@ where NodeType::Leaf => None, }; - if idx > 0 && self.range.contains(node.key(idx - 1)) { + if idx > 0 && self.range.contains(node.key(idx - 1, self.map.memory())) + { self.backward_cursors.push(Cursor::Node { node, next: Index::Entry(idx - 1), @@ -320,7 +325,7 @@ where next: Index::Entry(entry_idx), } => { // If the key does not belong to the range, iteration stops. - if !self.range.contains(node.key(entry_idx)) { + if !self.range.contains(node.key(entry_idx, self.map.memory())) { // Clear all cursors to avoid needless work in subsequent calls. self.forward_cursors = vec![]; self.backward_cursors = vec![]; @@ -328,7 +333,7 @@ where } let res = map(&node, entry_idx); - self.range.0 = Bound::Excluded(node.key(entry_idx).clone()); + self.range.0 = Bound::Excluded(node.key(entry_idx, self.map.memory()).clone()); let next = match node.node_type() { // If this is an internal node, add the next child to the cursors. @@ -403,7 +408,7 @@ where next: Index::Entry(entry_idx), } => { // If the key does not belong to the range, iteration stops. - if !self.range.contains(node.key(entry_idx)) { + if !self.range.contains(node.key(entry_idx, self.map.memory())) { // Clear all cursors to avoid needless work in subsequent calls. self.forward_cursors = vec![]; self.backward_cursors = vec![]; @@ -411,7 +416,7 @@ where } let res = map(&node, entry_idx); - self.range.1 = Bound::Excluded(node.key(entry_idx).clone()); + self.range.1 = Bound::Excluded(node.key(entry_idx, self.map.memory()).clone()); if let Some(next) = match node.node_type() { // If this is an internal node, add the previous child to the cursors. @@ -497,7 +502,7 @@ where fn next(&mut self) -> Option { self.0 - .next_map(|node, entry_idx| node.key(entry_idx).clone()) + .next_map(|node, entry_idx| node.key(entry_idx, self.0.map.memory()).clone()) } fn count(mut self) -> usize @@ -516,7 +521,7 @@ where { fn next_back(&mut self) -> Option { self.0 - .next_back_map(|node, entry_idx| node.key(entry_idx).clone()) + .next_back_map(|node, entry_idx| node.key(entry_idx, self.0.map.memory()).clone()) } } diff --git a/src/btreemap/node.rs b/src/btreemap/node.rs index 50af80e0..7079d7f0 100644 --- a/src/btreemap/node.rs +++ b/src/btreemap/node.rs @@ -39,6 +39,8 @@ pub enum NodeType { pub type Entry = (K, Vec); pub type EntryRef<'a, K> = (&'a K, &'a [u8]); +type LazyEntry = (LazyKey, LazyValue); + /// A node of a B-Tree. /// /// There are two versions of a `Node`: @@ -52,7 +54,7 @@ pub struct Node { address: Address, // List of tuples consisting of a key and the encoded value. // INVARIANT: the list is sorted by key. - keys_and_encoded_values: Vec<(K, Value)>, + keys_and_encoded_values: Vec>, // For the key at position I, children[I] points to the left // child of this key and children[I + 1] points to the right child. children: Vec
, @@ -106,14 +108,13 @@ impl Node { pub fn get_max(&self, memory: &M) -> Entry { match self.node_type { NodeType::Leaf => { - let last_idx = self.keys_and_encoded_values.len() - 1; + let entry = self + .keys_and_encoded_values + .last() + .expect("A node can never be empty"); ( - self.keys_and_encoded_values - .last() - .expect("A node can never be empty") - .0 - .clone(), - self.value(last_idx, memory).to_vec(), + self.get_key(entry, memory).clone(), + self.get_value(entry, memory).to_vec(), ) } NodeType::Internal => { @@ -164,32 +165,94 @@ impl Node { ) -> Entry { let (old_key, old_value) = core::mem::replace( &mut self.keys_and_encoded_values[idx], - (key, Value::by_value(value)), + (LazyKey::by_value(key), LazyValue::by_value(value)), ); - (old_key, self.extract_value(old_value, memory)) + ( + self.extract_key(old_key, memory), + self.extract_value(old_value, memory), + ) } /// Returns a reference to the entry at the specified index. pub fn entry(&self, idx: usize, memory: &M) -> EntryRef { - ( - &self.keys_and_encoded_values[idx].0, - self.value(idx, memory), - ) + (self.key(idx, memory), self.value(idx, memory)) + } + + /// Returns a reference to the cached key and loads it from memory if needed. + #[inline] + fn get_key<'a, M: Memory>(&'a self, (k, _): &'a LazyEntry, memory: &M) -> &'a K { + k.get_or_load(|offset| self.load_key_from_memory(offset, memory)) + } + + /// Returns a reference to the cached value and loads it from memory if needed. + #[inline] + fn get_value<'a, M: Memory>(&'a self, (_, v): &'a LazyEntry, memory: &M) -> &'a [u8] { + v.get_or_load(|offset| self.load_value_from_memory(offset, memory)) + } + + /// Returns a reference to the key at the specified index. + pub fn key(&self, idx: usize, memory: &M) -> &K { + self.get_key(&self.keys_and_encoded_values[idx], memory) } /// Returns a reference to the encoded value at the specified index. pub fn value(&self, idx: usize, memory: &M) -> &[u8] { - // Load and cache the value from the underlying memory if needed. - self.keys_and_encoded_values[idx] - .1 - .get_or_load(|offset| self.load_value_from_memory(offset, memory)) + self.get_value(&self.keys_and_encoded_values[idx], memory) + } + + /// Extracts the contents of key (by loading it first if it's not loaded yet). + fn extract_key(&self, key: LazyKey, memory: &M) -> K { + key.take_or_load(|offset| self.load_key_from_memory(offset, memory)) } /// Extracts the contents of value (by loading it first if it's not loaded yet). - fn extract_value(&self, value: Value, memory: &M) -> Vec { + fn extract_value(&self, value: LazyValue, memory: &M) -> Vec { value.take_or_load(|offset| self.load_value_from_memory(offset, memory)) } + /// Loads a key from stable memory at the given offset of this node. + fn load_key_from_memory(&self, mut offset: Bytes, memory: &M) -> K { + let reader = NodeReader { + address: self.address, + overflows: &self.overflows, + page_size: self.page_size(), + memory, + }; + + // Retrieve the key's size. + let key_offset = Address::from(offset.get()); + let key_size = match self.version { + Version::V1(_) => { + // In V1, the key's size is always stored in memory. + offset += U32_SIZE; + read_u32(&reader, key_offset) + } + Version::V2(_) => { + // In V2, if the key is fixed-size, use the maximum bound; + // otherwise, read its size from memory. + if K::BOUND.is_fixed_size() { + K::BOUND.max_size() + } else { + offset += U32_SIZE; + read_u32(&reader, key_offset) + } + } + }; + + let mut bytes = vec![]; + read_to_vec( + &reader, + Address::from((offset).get()), + &mut bytes, + key_size as usize, + ); + //println!("ABC load key_size: {key_size:?}"); + //println!("ABC load key: {bytes:?}"); + let key = K::from_bytes(Cow::Borrowed(&bytes)); + + key + } + /// Loads a value from stable memory at the given offset of this node. fn load_value_from_memory(&self, offset: Bytes, memory: &M) -> Vec { let reader = NodeReader { @@ -199,13 +262,13 @@ impl Node { memory, }; - let value_len = read_u32(&reader, Address::from(offset.get())) as usize; + let value_size = read_u32(&reader, Address::from(offset.get())) as usize; let mut bytes = vec![]; read_to_vec( &reader, Address::from((offset + U32_SIZE).get()), &mut bytes, - value_len, + value_size, ); bytes @@ -215,11 +278,6 @@ impl Node { self.version.page_size() } - /// Returns a reference to the key at the specified index. - pub fn key(&self, idx: usize) -> &K { - &self.keys_and_encoded_values[idx].0 - } - /// Returns the child's address at the given index. pub fn child(&self, idx: usize) -> Address { self.children[idx] @@ -251,28 +309,41 @@ impl Node { } /// Inserts a new entry at the specified index. - pub fn insert_entry(&mut self, idx: usize, (key, encoded_value): Entry) { + pub fn insert_entry(&mut self, idx: usize, (key, value): Entry) { self.keys_and_encoded_values - .insert(idx, (key, Value::by_value(encoded_value))); + .insert(idx, (LazyKey::by_value(key), LazyValue::by_value(value))); + // let keys: Vec<_> = self + // .keys_and_encoded_values + // .iter() + // .map(|(key, _)| format!("{key:?}")) + // .collect(); + //println!("ABC insert_entry: {:?}", keys); } /// Returns the entry at the specified index while consuming this node. pub fn into_entry(mut self, idx: usize, memory: &M) -> Entry { let keys_and_encoded_values = core::mem::take(&mut self.keys_and_encoded_values); let (key, value) = keys_and_encoded_values.into_iter().nth(idx).unwrap(); - (key, self.extract_value(value, memory)) + ( + self.extract_key(key, memory), + self.extract_value(value, memory), + ) } /// Removes the entry at the specified index. pub fn remove_entry(&mut self, idx: usize, memory: &M) -> Entry { let (key, value) = self.keys_and_encoded_values.remove(idx); - (key, self.extract_value(value, memory)) + //println!("ABC remove_entry: {:?}", key); + ( + self.extract_key(key, memory), + self.extract_value(value, memory), + ) } /// Adds a new entry at the back of the node. - pub fn push_entry(&mut self, (key, encoded_value): Entry) { + pub fn push_entry(&mut self, (key, value): Entry) { self.keys_and_encoded_values - .push((key, Value::by_value(encoded_value))); + .push((LazyKey::by_value(key), LazyValue::by_value(value))); } /// Removes an entry from the back of the node. @@ -282,12 +353,15 @@ impl Node { return None; } - let (key, last_value) = self + let (key, value) = self .keys_and_encoded_values .pop() .expect("node must not be empty"); - Some((key, self.extract_value(last_value, memory))) + Some(( + self.extract_key(key, memory), + self.extract_value(value, memory), + )) } /// Merges the entries and children of the `source` node into self, along with the median entry. @@ -307,19 +381,32 @@ impl Node { median: Entry, allocator: &mut Allocator, ) { - // Load all the values from the source node first, as they will be moved out. + // let self_keys: Vec<_> = self + // .keys_and_encoded_values + // .iter() + // .map(|(k, _)| format!("{k:?}")) + // .collect(); + + // let source_keys: Vec<_> = source + // .keys_and_encoded_values + // .iter() + // .map(|(k, _)| format!("{k:?}\n")) + // .collect(); + //println!("ABC merge\n self : {self_keys:?}\n source : {source_keys:?} \n"); + + // Load all the entries from the source node first, as they will be moved out. for i in 0..source.entries_len() { - source.value(i, allocator.memory()); + let _e = source.entry(i, allocator.memory()); } - if source.key(0) > self.key(0) { + if source.key(0, allocator.memory()) > self.key(0, allocator.memory()) { // The source node has keys that are greater than self. // Append the source node into self. - Self::append(self, &mut source, median); + Self::append(self, &mut source, median, allocator.memory()); } else { // self has keys that are greater than the source node. // Append self into the source node (which more efficient). - Self::append(&mut source, self, median); + Self::append(&mut source, self, median, allocator.memory()); // Move the entries and children into self. self.keys_and_encoded_values = core::mem::take(&mut source.keys_and_encoded_values); @@ -340,14 +427,14 @@ impl Node { /// /// POSTCONDITION: /// * `b` is empty. - fn append(a: &mut Node, b: &mut Node, median: Entry) { + fn append(a: &mut Node, b: &mut Node, median: Entry, memory: &M) { // Assert preconditions. let a_len = a.entries_len(); assert_eq!(a.node_type(), b.node_type()); assert!(b.entries_len() > 0); assert!(a_len > 0); - assert!(a.key(a_len - 1) < &median.0); - assert!(&median.0 < b.key(0)); + assert!(a.key(a_len - 1, memory) < &median.0); + assert!(&median.0 < b.key(0, memory)); a.push_entry(median); @@ -364,18 +451,15 @@ impl Node { #[cfg(test)] pub fn entries(&self, memory: &M) -> Vec> { - self.keys_and_encoded_values - .iter() - .enumerate() - .map(|(idx, (key, _))| (key.clone(), self.value(idx, memory).to_vec())) + (0..self.keys_and_encoded_values.len()) + .map(|i| (self.key(i, memory).clone(), self.value(i, memory).to_vec())) .collect() } #[cfg(test)] - pub fn keys(&self) -> Vec { - self.keys_and_encoded_values - .iter() - .map(|(key, _)| key.clone()) + pub fn keys(&self, memory: &M) -> Vec { + (0..self.keys_and_encoded_values.len()) + .map(|i| self.key(i, memory).clone()) .collect() } @@ -395,9 +479,26 @@ impl Node { /// of the matching key. If the value is not found then `Result::Err` is /// returned, containing the index where a matching key could be inserted /// while maintaining sorted order. - pub fn search(&self, key: &K) -> Result { - self.keys_and_encoded_values - .binary_search_by_key(&key, |entry| &entry.0) + pub fn search(&self, key: &K, memory: &M) -> Result { + // let self_keys: Vec<_> = self + // .keys_and_encoded_values + // .iter() + // .map(|(k, _)| format!("{k:?}")) + // .collect(); + // println!("\nABC search BEFORE: {self_keys:?}"); + + let result = self + .keys_and_encoded_values + .binary_search_by_key(&key, |entry| self.get_key(entry, memory)); + + // let self_keys: Vec<_> = self + // .keys_and_encoded_values + // .iter() + // .map(|(k, _)| format!("{k:?}")) + // .collect(); + //println!("ABC search AFTER : {self_keys:?}"); + + result } /// Returns the maximum size a node can be if it has bounded keys and values. @@ -422,9 +523,9 @@ impl Node { pub fn split(&mut self, sibling: &mut Node, memory: &M) -> Entry { debug_assert!(self.is_full()); - // Load the values that will be moved out of the node and into the new sibling. + // Load the entries that will be moved out of the node and into the new sibling. for idx in B..self.entries_len() { - self.value(idx, memory); + let _e = self.entry(idx, memory); } // Move the entries and children above the median into the new sibling. @@ -463,53 +564,134 @@ impl NodeHeader { } } -/// The value in a K/V pair. +struct LazyKey(LazyObject); + +impl LazyKey { + /// Create a lazy key with a memory offset. + #[inline] + pub fn by_ref(offset: Bytes) -> Self { + Self(LazyObject::by_ref(offset)) + } + + /// Create a lazy key from a key. + #[inline] + pub fn by_value(key: K) -> Self { + Self(LazyObject::by_value(key)) + } + + /// Returns a reference to the key, loading it if necessary. + #[inline] + pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> K) -> &K { + self.0.get_or_load(load) + } + + /// Consumes self and returns the key, loading it if necessary. + #[inline] + pub fn take_or_load(self, load: impl FnOnce(Bytes) -> K) -> K { + self.0.take_or_load(load) + } +} + +impl std::fmt::Debug for LazyKey { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match &self.0 { + LazyObject::ByVal(ref key) => { + let bytes = key.to_bytes_checked(); + f.debug_tuple("LazyKey") + .field(&format_args!("LazyKey::ByVal({:?})", bytes)) + .finish() + } + LazyObject::ByRef { offset, loaded } => match loaded.get() { + Some(key) => { + let bytes = key.to_bytes_checked(); + f.debug_tuple("LazyKey") + .field(&format_args!("LazyKey::ByRef(loaded:{:?})", bytes)) + .finish() + } + None => f + .debug_tuple("LazyKey") + .field(&format_args!("LazyKey::ByRef(offset: {:?})", offset)) + .finish(), + }, + } + } +} + +type Blob = Vec; + +#[derive(Debug)] +struct LazyValue(LazyObject); + +impl LazyValue { + /// Create a lazy value with a memory offset. + #[inline] + pub fn by_ref(offset: Bytes) -> Self { + Self(LazyObject::by_ref(offset)) + } + + /// Create a lazy value from a value. + #[inline] + pub fn by_value(value: Blob) -> Self { + Self(LazyObject::by_value(value)) + } + + /// Returns a reference to the key, loading it if necessary. + #[inline] + pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> Blob) -> &Blob { + self.0.get_or_load(load) + } + + /// Consumes self and returns the key, loading it if necessary. + #[inline] + pub fn take_or_load(self, load: impl FnOnce(Bytes) -> Blob) -> Blob { + self.0.take_or_load(load) + } +} + +/// A lazy-loaded object. #[derive(Debug)] -enum Value { - /// The value's encoded bytes. - ByVal(Vec), +enum LazyObject { + /// Object stored by value. + ByVal(T), + /// Object stored by reference, loaded on demand. ByRef { - /// The value's offset in the node. + /// Memory offset of the object. offset: Bytes, - /// The lazily loaded encoded bytes. - loaded_value: OnceCell>, + /// Cache for the lazily loaded object. + loaded: OnceCell, }, } -impl Value { +impl LazyObject { + /// Create a lazy object with a memory offset. pub fn by_ref(offset: Bytes) -> Self { Self::ByRef { offset, - loaded_value: Default::default(), + loaded: Default::default(), } } - pub fn by_value(value: Vec) -> Self { + /// Create a lazy object from a value. + pub fn by_value(value: T) -> Self { Self::ByVal(value) } - /// Returns a reference to the value if the value has been loaded or runs the given function to - /// load the value. - pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> Vec) -> &[u8] { + /// Get a reference to the object, loading it if necessary. + pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> T) -> &T { match self { - Value::ByVal(v) => &v[..], - Value::ByRef { - offset, - loaded_value: value, - } => value.get_or_init(|| load(*offset)), + LazyObject::ByVal(v) => v, + LazyObject::ByRef { offset, loaded } => loaded.get_or_init(|| load(*offset)), } } - /// Extracts the value while consuming self if the value has been loaded or runs the given - /// function to load the value. - pub fn take_or_load(self, load: impl FnOnce(Bytes) -> Vec) -> Vec { + /// Consume self and return the object, loading it if necessary. + pub fn take_or_load(self, load: impl FnOnce(Bytes) -> T) -> T { match self { - Value::ByVal(v) => v, - Value::ByRef { - offset, - loaded_value: value, - } => value.into_inner().unwrap_or_else(|| load(offset)), + LazyObject::ByVal(v) => v, + LazyObject::ByRef { offset, loaded } => { + loaded.into_inner().unwrap_or_else(|| load(offset)) + } } } } diff --git a/src/btreemap/node/v1.rs b/src/btreemap/node/v1.rs index e8f533dc..f522c580 100644 --- a/src/btreemap/node/v1.rs +++ b/src/btreemap/node/v1.rs @@ -63,26 +63,37 @@ impl Node { max_value_size: u32, memory: &M, ) -> Self { - #[cfg(feature = "canbench")] - let _p = canbench::profile("node_load_v1"); - // Load the entries. let mut keys_encoded_values = Vec::with_capacity(header.num_entries as usize); let mut offset = NodeHeader::size(); - let mut buf = vec![]; + //const LOAD_SIZE_THRESHOLD: u32 = 8; + //let mut buf = vec![]; for _ in 0..header.num_entries { - // Read the key's size. - let key_size = read_u32(memory, address + offset); + let key_offset = offset; + //let key_size = read_u32(memory, address + offset); offset += U32_SIZE; - - // Read the key. - read_to_vec(memory, address + offset, &mut buf, key_size as usize); + // let key = if key_size <= LOAD_SIZE_THRESHOLD { + // read_to_vec(memory, address + offset, &mut buf, key_size as usize); + // LazyKey::by_value(K::from_bytes(Cow::Borrowed(&buf))) + // } else { + // LazyKey::by_ref(key_offset) + // }; + let key = LazyKey::by_ref(key_offset); offset += Bytes::from(max_key_size); - let key = K::from_bytes(Cow::Borrowed(&buf)); - // Values are loaded lazily. Store a reference and skip loading it. - keys_encoded_values.push((key, Value::by_ref(offset))); - offset += U32_SIZE + Bytes::from(max_value_size); + let value_offset = offset; + // let value_size = read_u32(memory, address + offset); + offset += U32_SIZE; + // let value = if value_size <= LOAD_SIZE_THRESHOLD { + // read_to_vec(memory, address + offset, &mut buf, value_size as usize); + // LazyValue::by_value(buf.to_vec()) + // } else { + // LazyValue::by_ref(value_offset) + // }; + let value = LazyValue::by_ref(value_offset); + offset += Bytes::from(max_value_size); + + keys_encoded_values.push((key, value)); } // Load children if this is an internal node. @@ -117,9 +128,6 @@ impl Node { } pub(super) fn save_v1(&self, memory: &M) { - #[cfg(feature = "canbench")] - let _p = canbench::profile("node_save_v1"); - match self.node_type { NodeType::Leaf => { assert!(self.children.is_empty()); @@ -133,10 +141,17 @@ impl Node { assert!(!self.keys_and_encoded_values.is_empty() || !self.children.is_empty()); // Assert entries are sorted in strictly increasing order. + + // TODO: remove debug code. + // let entries: Vec<_> = (0..self.entries_len()) + // .map(|i| (i, self.key(i, memory).to_bytes(), self.value(i, memory))) + // .collect(); + //println!("ABC: entries: {:?}", entries); + assert!(self .keys_and_encoded_values .windows(2) - .all(|e| e[0].0 < e[1].0)); + .all(|arr| self.get_key(&arr[0], memory) < self.get_key(&arr[1], memory))); let (max_key_size, max_value_size) = match self.version { Version::V1(DerivedPageSize { @@ -160,16 +175,16 @@ impl Node { let mut offset = NodeHeader::size(); - // Load all the values. This is necessary so that we don't overwrite referenced - // values when writing the entries to the node. + // Load all the entries. This is necessary so that we don't overwrite referenced + // entries when writing the entries to the node. for i in 0..self.keys_and_encoded_values.len() { - self.value(i, memory); + self.entry(i, memory); } // Write the entries. - for (idx, (key, _)) in self.keys_and_encoded_values.iter().enumerate() { + for i in 0..self.keys_and_encoded_values.len() { // Write the size of the key. - let key_bytes = key.to_bytes_checked(); + let key_bytes = self.key(i, memory).to_bytes_checked(); write_u32(memory, self.address + offset, key_bytes.len() as u32); offset += U32_SIZE; @@ -178,7 +193,7 @@ impl Node { offset += Bytes::from(max_key_size); // Write the size of the value. - let value = self.value(idx, memory); + let value = self.value(i, memory); write_u32(memory, self.address + offset, value.len() as u32); offset += U32_SIZE; diff --git a/src/btreemap/node/v2.rs b/src/btreemap/node/v2.rs index f559d777..c6a0555b 100644 --- a/src/btreemap/node/v2.rs +++ b/src/btreemap/node/v2.rs @@ -111,9 +111,6 @@ impl Node { header: NodeHeader, memory: &M, ) -> Self { - #[cfg(feature = "canbench")] - let _p = canbench::profile("node_load_v2"); - // Load the node, including any overflows, into a buffer. let overflows = read_overflows(address, memory); @@ -151,32 +148,49 @@ impl Node { // Load the keys. let mut keys_encoded_values = Vec::with_capacity(num_entries); - let mut buf = vec![]; + //const LOAD_SIZE_THRESHOLD: u32 = 8; + //let mut buf = vec![]; for _ in 0..num_entries { - // Load the key's size. + let key_offset = Bytes::from(offset.get()); + + // Advance offset by the key_size type size if applicable. let key_size = if K::BOUND.is_fixed_size() { // Key is fixed in size. The size of the key is always its max size. K::BOUND.max_size() } else { // Key is not fixed in size. Read the size from memory. - let value = read_u32(&reader, offset); + let key_size = read_u32(&reader, offset); + //println!("ABC read key_size: {:?}", key_size); offset += U32_SIZE; - value + key_size }; - - // Load the key. - read_to_vec(&reader, offset, &mut buf, key_size as usize); - let key = K::from_bytes(Cow::Borrowed(&buf)); + // let key = if key_size <= LOAD_SIZE_THRESHOLD { + // read_to_vec(&reader, offset, &mut buf, key_size as usize); + // LazyKey::by_value(K::from_bytes(Cow::Borrowed(&buf))) + // } else { + // LazyKey::by_ref(key_offset) + // }; + let key = LazyKey::by_ref(key_offset); + + // Advance offset by the size of the key. offset += Bytes::from(key_size); - keys_encoded_values.push((key, Value::by_ref(Bytes::from(0usize)))); + + keys_encoded_values.push((key, LazyValue::by_ref(Bytes::from(0usize)))); } // Load the values for (_key, value) in keys_encoded_values.iter_mut() { - // Load the values lazily. - *value = Value::by_ref(Bytes::from(offset.get())); - let value_size = read_u32(&reader, offset) as usize; - offset += U32_SIZE + Bytes::from(value_size as u64); + let value_offset = Bytes::from(offset.get()); + let value_size = read_u32(&reader, offset); + offset += U32_SIZE; + // *value = if value_size <= LOAD_SIZE_THRESHOLD { + // read_to_vec(&reader, offset, &mut buf, value_size as usize); + // LazyValue::by_value(buf.to_vec()) + // } else { + // LazyValue::by_ref(value_offset) + // }; + *value = LazyValue::by_ref(value_offset); + offset += Bytes::from(value_size as u64); } Self { @@ -191,17 +205,14 @@ impl Node { // Saves the node to memory. pub(super) fn save_v2(&mut self, allocator: &mut Allocator) { - #[cfg(feature = "canbench")] - let _p = canbench::profile("node_save_v2"); - let page_size = self.version.page_size().get(); assert!(page_size >= MINIMUM_PAGE_SIZE); - // Load all the values. This is necessary so that we don't overwrite referenced - // values when writing the entries to the node. - for i in 0..self.keys_and_encoded_values.len() { - self.value(i, allocator.memory()); - } + // Load all the entry. This is necessary so that we don't overwrite referenced + // entry when writing the entries to the node. + let entries: Vec<_> = (0..self.keys_and_encoded_values.len()) + .map(|i| self.entry(i, allocator.memory())) + .collect(); // Initialize a NodeWriter. The NodeWriter takes care of allocating/deallocating // overflow pages as needed. @@ -239,9 +250,8 @@ impl Node { } // Write the keys. - for (key, _) in self.keys_and_encoded_values.iter() { + for (key, _) in &entries { let key_bytes = key.to_bytes_checked(); - // Write the size of the key if it isn't fixed in size. if !K::BOUND.is_fixed_size() { writer.write_u32(offset, key_bytes.len() as u32); @@ -254,9 +264,8 @@ impl Node { } // Write the values. - for idx in 0..self.entries_len() { + for (_, value) in &entries { // Write the size of the value. - let value = self.value(idx, writer.memory()); writer.write_u32(offset, value.len() as u32); offset += U32_SIZE; From eef1e1bfa831d3b6998b066a7b0e2e79bf745520 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Fri, 25 Apr 2025 18:28:38 +0200 Subject: [PATCH 41/68] mv parse_benchmarks.py --- parse_benchmarks.py => benchmarks/scripts/parse_benchmarks.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename parse_benchmarks.py => benchmarks/scripts/parse_benchmarks.py (100%) diff --git a/parse_benchmarks.py b/benchmarks/scripts/parse_benchmarks.py similarity index 100% rename from parse_benchmarks.py rename to benchmarks/scripts/parse_benchmarks.py From 7bab3189bf3474d1763c6b80062f74ded7fecb5d Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Fri, 25 Apr 2025 18:46:34 +0200 Subject: [PATCH 42/68] . --- benchmarks/scripts/parse_benchmarks.py | 105 ++++++++++++++++++------- 1 file changed, 76 insertions(+), 29 deletions(-) diff --git a/benchmarks/scripts/parse_benchmarks.py b/benchmarks/scripts/parse_benchmarks.py index 0134a374..dd40668b 100755 --- a/benchmarks/scripts/parse_benchmarks.py +++ b/benchmarks/scripts/parse_benchmarks.py @@ -173,19 +173,64 @@ def main(): print(f"Usage: {sys.argv[0]} ") sys.exit(1) - logging.basicConfig(level=logging.ERROR, format="%(levelname)s: %(message)s") + logging.basicConfig(level=logging.WARNING, format="%(levelname)s: %(message)s") logger = logging.getLogger(__name__) benchmarks = load_benchmarks(sys.argv[1], verbose=True, logger=logger) used = set() all_tables = [] - for version, func, type_ in product( + for version, func in product( [2, 1], FUNCTIONS, - ['blob', 'vec'], ): - size_grid = [4, 8, 16, 32, 64, 128, 256, 512, 1024] - name = f'btreemap_v{version}_{func}_{type_}' + + # Big tables blob/vec 4-1024 + for type_ in ['blob', 'vec']: + size_grid = [4, 8, 16, 32, 64, 128, 256, 512, 1024] + name = f'btreemap_v{version}_{func}_{type_}' + table = { + 'name': name, + 'columns': 'keys', + 'rows': 'values', + 'instructions': {r: {c: None for c in size_grid} for r in size_grid}, + 'instructions_change': {r: {c: None for c in size_grid} for r in size_grid} + } + for key_size in size_grid: + for value_size in size_grid: + filters = { + 'version': version, + 'mem_manager': False, + 'func': func, + 'schema': 'type-key-value', + 'type': type_, + 'key_size': key_size, + 'value_size': value_size, + } + selected = [ + b for b in benchmarks + if all(b.get(k) == v for k, v in filters.items()) + ] + if len(selected) == 0: + continue + if len(selected) > 1: + logger.error(f"Multiple matches for {filters}: {selected}") + continue + data = selected[0] if selected else None + table['instructions'][value_size][key_size] = data['instructions'] if data else None + table['instructions_change'][value_size][key_size] = data['instructions_change'] if data else None + used.add(data['name']) if data else None + + has_any = any( + cell is not None + for row in table['instructions'].values() + for cell in row.values() + ) + if has_any: + all_tables.append(table) + + # Small tables u64/blob/vec 8-512 + name = f'btreemap_v{version}_{func}' + type_grid = ['u64', 'blob8', 'vec8', 'blob512', 'vec512'] table = { 'name': name, 'columns': 'keys', @@ -193,30 +238,32 @@ def main(): 'instructions': {r: {c: None for c in size_grid} for r in size_grid}, 'instructions_change': {r: {c: None for c in size_grid} for r in size_grid} } - for key_size in size_grid: - for value_size in size_grid: - filters = { - 'version': version, - 'mem_manager': False, - 'func': func, - 'schema': 'type-key-value', - 'type': type_, - 'key_size': key_size, - 'value_size': value_size, - } - selected = [ - b for b in benchmarks - if all(b.get(k) == v for k, v in filters.items()) - ] - if len(selected) == 0: - continue - if len(selected) > 1: - logger.error(f"Multiple matches for {filters}: {selected}") - continue - data = selected[0] if selected else None - table['instructions'][value_size][key_size] = data['instructions'] if data else None - table['instructions_change'][value_size][key_size] = data['instructions_change'] if data else None - used.add(data['name']) if data else None + for key, value, mem_manager in product( + type_grid, + type_grid, + [False, True], + ): + filters = { + 'version': version, + 'mem_manager': mem_manager, + 'func': func, + 'schema': 'types-a-b', + 'type_a': key, + 'type_b': value, + } + selected = [ + b for b in benchmarks + if all(b.get(k) == v for k, v in filters.items()) + ] + if len(selected) == 0: + continue + if len(selected) > 1: + logger.error(f"Multiple matches for {filters}: {selected}") + continue + data = selected[0] if selected else None + table['instructions'][value_size][key_size] = data['instructions'] if data else None + table['instructions_change'][value_size][key_size] = data['instructions_change'] if data else None + used.add(data['name']) if data else None has_any = any( cell is not None From 33cda6e422177196ea2ec0317c1a472d1653f89f Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Fri, 25 Apr 2025 19:48:23 +0200 Subject: [PATCH 43/68] rm small tables --- benchmarks/scripts/parse_benchmarks.py | 45 -------------------------- 1 file changed, 45 deletions(-) diff --git a/benchmarks/scripts/parse_benchmarks.py b/benchmarks/scripts/parse_benchmarks.py index dd40668b..2918275a 100755 --- a/benchmarks/scripts/parse_benchmarks.py +++ b/benchmarks/scripts/parse_benchmarks.py @@ -227,51 +227,6 @@ def main(): ) if has_any: all_tables.append(table) - - # Small tables u64/blob/vec 8-512 - name = f'btreemap_v{version}_{func}' - type_grid = ['u64', 'blob8', 'vec8', 'blob512', 'vec512'] - table = { - 'name': name, - 'columns': 'keys', - 'rows': 'values', - 'instructions': {r: {c: None for c in size_grid} for r in size_grid}, - 'instructions_change': {r: {c: None for c in size_grid} for r in size_grid} - } - for key, value, mem_manager in product( - type_grid, - type_grid, - [False, True], - ): - filters = { - 'version': version, - 'mem_manager': mem_manager, - 'func': func, - 'schema': 'types-a-b', - 'type_a': key, - 'type_b': value, - } - selected = [ - b for b in benchmarks - if all(b.get(k) == v for k, v in filters.items()) - ] - if len(selected) == 0: - continue - if len(selected) > 1: - logger.error(f"Multiple matches for {filters}: {selected}") - continue - data = selected[0] if selected else None - table['instructions'][value_size][key_size] = data['instructions'] if data else None - table['instructions_change'][value_size][key_size] = data['instructions_change'] if data else None - used.add(data['name']) if data else None - - has_any = any( - cell is not None - for row in table['instructions'].values() - for cell in row.values() - ) - if has_any: - all_tables.append(table) for bench in benchmarks: if bench['name'] not in used: From 5b2bcb22ffe6ea8385982ce3c9e81c4cf80b2585 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Fri, 25 Apr 2025 20:20:34 +0200 Subject: [PATCH 44/68] comment --- benchmarks/scripts/parse_benchmarks.py | 1 + 1 file changed, 1 insertion(+) diff --git a/benchmarks/scripts/parse_benchmarks.py b/benchmarks/scripts/parse_benchmarks.py index 2918275a..a7f1ee04 100755 --- a/benchmarks/scripts/parse_benchmarks.py +++ b/benchmarks/scripts/parse_benchmarks.py @@ -235,5 +235,6 @@ def main(): save_all_tables(all_tables, size_grid, './tmp/all_benchmarks.csv') +# This script allows to extract btreemap benchmarks into a CSV file. if __name__ == '__main__': main() From fdac8809c3b25e85cd3591c1d195bf9467fd17d0 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Fri, 25 Apr 2025 20:34:14 +0200 Subject: [PATCH 45/68] canbench persist --- canbench_results.yml | 114 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/canbench_results.yml b/canbench_results.yml index 34b3762b..72c4e786 100644 --- a/canbench_results.yml +++ b/canbench_results.yml @@ -2429,4 +2429,118 @@ benches: heap_increase: 0 stable_memory_increase: 0 scopes: {} + memory_manager_baseline: + total: + instructions: 1176576907 + heap_increase: 0 + stable_memory_increase: 8000 + scopes: {} + memory_manager_grow: + total: + instructions: 346600495 + heap_increase: 2 + stable_memory_increase: 32000 + scopes: {} + memory_manager_overhead: + total: + instructions: 1181961433 + heap_increase: 0 + stable_memory_increase: 8320 + scopes: {} + vec_get_blob_128: + total: + instructions: 19216242 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + vec_get_blob_16: + total: + instructions: 6432226 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + vec_get_blob_32: + total: + instructions: 7151657 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + vec_get_blob_4: + total: + instructions: 4869627 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + vec_get_blob_4_mem_manager: + total: + instructions: 7236977 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + vec_get_blob_64: + total: + instructions: 11320056 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + vec_get_blob_64_mem_manager: + total: + instructions: 13640204 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + vec_get_blob_8: + total: + instructions: 5776205 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + vec_get_u64: + total: + instructions: 5330306 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + vec_insert_blob_128: + total: + instructions: 4151425 + heap_increase: 0 + stable_memory_increase: 19 + scopes: {} + vec_insert_blob_16: + total: + instructions: 3316228 + heap_increase: 0 + stable_memory_increase: 2 + scopes: {} + vec_insert_blob_32: + total: + instructions: 3435468 + heap_increase: 0 + stable_memory_increase: 5 + scopes: {} + vec_insert_blob_4: + total: + instructions: 3227469 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + vec_insert_blob_64: + total: + instructions: 3675805 + heap_increase: 0 + stable_memory_increase: 9 + scopes: {} + vec_insert_blob_8: + total: + instructions: 3256890 + heap_increase: 0 + stable_memory_increase: 1 + scopes: {} + vec_insert_u64: + total: + instructions: 5929433 + heap_increase: 0 + stable_memory_increase: 1 + scopes: {} version: 0.1.11 From ae892462f45c0b4f2baf6cab7a5c338eb0b0413a Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Wed, 7 May 2025 13:19:38 +0200 Subject: [PATCH 46/68] update canbench_results.yml --- canbench_results.csv | 425 ++++++++++++++++++++++ canbench_results.yml | 834 +++++++++++++++++++++---------------------- 2 files changed, 842 insertions(+), 417 deletions(-) create mode 100644 canbench_results.csv diff --git a/canbench_results.csv b/canbench_results.csv new file mode 100644 index 00000000..72da453f --- /dev/null +++ b/canbench_results.csv @@ -0,0 +1,425 @@ +status name instructions instructions % heap_increase heap_increase % stable_memory_increase stable_memory_increase % + btreemap_v1_contains_blob8_u64 194964325 1.33% 0 0 + btreemap_v1_contains_blob_1024_128 4811678256 -0.61% 0 0 + btreemap_v1_contains_blob_128_128 848821075 0.03% 0 0 + btreemap_v1_contains_blob_16_128 227130263 -1.15% 0 0 + btreemap_v1_contains_blob_256_128 1400918183 -0.36% 0 0 + btreemap_v1_contains_blob_32_1024 258423010 -0.75% 0 0 + btreemap_v1_contains_blob_32_128 252967804 0.81% 0 0 + btreemap_v1_contains_blob_32_16 262136410 -0.70% 0 0 + btreemap_v1_contains_blob_32_256 258805575 1.01% 0 0 + btreemap_v1_contains_blob_32_32 260774803 -0.33% 0 0 + btreemap_v1_contains_blob_32_4 257441140 -0.79% 0 0 + btreemap_v1_contains_blob_32_512 255106465 -0.62% 0 0 + btreemap_v1_contains_blob_32_64 254263738 0.42% 0 0 + btreemap_v1_contains_blob_32_8 256262361 1.08% 0 0 + btreemap_v1_contains_blob_4_128 165470839 0.71% 0 0 + btreemap_v1_contains_blob_512_128 2543816260 -0.56% 0 0 + btreemap_v1_contains_blob_64_128 494398463 -0.98% 0 0 + btreemap_v1_contains_blob_8_128 188408544 -1.02% 0 0 + btreemap_v1_contains_u64_blob8 165774167 -1.65% 0 0 + btreemap_v1_contains_u64_u64 165565754 -1.49% 0 0 + btreemap_v1_get_blob8_u64 203390426 1.27% 0 0 + btreemap_v1_get_blob_1024_128 4868477772 -0.54% 0 0 + btreemap_v1_get_blob_128_128 867025588 0.07% 0 0 + btreemap_v1_get_blob_16_128 240229350 -1.65% 0 0 + btreemap_v1_get_blob_256_128 1426193247 -0.25% 0 0 + btreemap_v1_get_blob_32_1024 276684587 -1.22% 0 0 + btreemap_v1_get_blob_32_128 265367267 0.36% 0 0 + btreemap_v1_get_blob_32_16 270023113 -0.67% 0 0 + btreemap_v1_get_blob_32_256 272563236 0.53% 0 0 + btreemap_v1_get_blob_32_32 269464920 -0.14% 0 0 + btreemap_v1_get_blob_32_4 264590610 -0.70% 0 0 + btreemap_v1_get_blob_32_512 270506018 -1.16% 0 0 + btreemap_v1_get_blob_32_64 264723575 0.18% 0 0 + btreemap_v1_get_blob_32_8 264461611 1.16% 0 0 + btreemap_v1_get_blob_4_128 178539304 0.64% 0 0 + btreemap_v1_get_blob_512_128 2578989071 -0.53% 0 0 + btreemap_v1_get_blob_64_128 508633530 -1.35% 0 0 + btreemap_v1_get_blob_8_128 201236677 -1.94% 0 0 + btreemap_v1_get_u64_blob8 173008513 -1.53% 0 0 + btreemap_v1_get_u64_u64 173995203 -1.37% 0 0 + btreemap_v1_insert_blob8_u64 329986725 -0.06% 0 6 0.00% + btreemap_v1_insert_blob_1024_128 5007942824 -0.15% 0 262 0.00% + btreemap_v1_insert_blob_128_128 1026805160 0.03% 0 61 0.00% + btreemap_v1_insert_blob_16_128 391942071 -0.49% 0 32 0.00% + btreemap_v1_insert_blob_256_128 1576965603 0.14% 0 90 0.00% + btreemap_v1_insert_blob_32_1024 585609756 -0.24% 0 230 0.00% + btreemap_v1_insert_blob_32_128 424489333 -0.08% 0 37 0.00% + btreemap_v1_insert_blob_32_16 405326475 -0.12% 0 14 0.00% + btreemap_v1_insert_blob_32_256 454178716 0.30% 0 66 0.00% + btreemap_v1_insert_blob_32_32 408531668 0.01% 0 17 0.00% + btreemap_v1_insert_blob_32_4 393759972 -0.20% 0 11 0.00% + btreemap_v1_insert_blob_32_512 495214435 -0.27% 0 121 0.00% + btreemap_v1_insert_blob_32_64 412537755 0.16% 0 24 0.00% + btreemap_v1_insert_blob_32_8 398133513 0.23% 0 12 0.00% + btreemap_v1_insert_blob_4_128 313593329 -0.43% 0 17 0.00% + btreemap_v1_insert_blob_512_128 2754557121 -0.04% 0 148 0.00% + btreemap_v1_insert_blob_64_128 671082804 0.14% 0 46 0.00% + btreemap_v1_insert_blob_8_128 358579533 -0.45% 0 27 0.00% + btreemap_v1_insert_u64_blob8 339932921 0.05% 0 7 0.00% + btreemap_v1_insert_u64_u64 345608503 0.08% 0 7 0.00% + btreemap_v1_pop_first_blob8_u64 441600212 -0.70% 0 0 + btreemap_v1_pop_first_blob_1024_128 9210292778 -0.55% 0 0 + btreemap_v1_pop_first_blob_128_128 1819146872 0.08% 0 0 + btreemap_v1_pop_first_blob_16_128 588472296 -0.81% 0 0 + btreemap_v1_pop_first_blob_256_128 2896727052 -0.01% 0 0 + btreemap_v1_pop_first_blob_32_1024 958303933 -0.16% 0 0 + btreemap_v1_pop_first_blob_32_128 696856907 -0.35% 0 0 + btreemap_v1_pop_first_blob_32_16 643862300 -0.10% 0 0 + btreemap_v1_pop_first_blob_32_256 733623810 -0.38% 0 0 + btreemap_v1_pop_first_blob_32_32 654116869 -0.35% 0 0 + btreemap_v1_pop_first_blob_32_4 624710634 -0.08% 0 0 + btreemap_v1_pop_first_blob_32_512 799092498 -0.10% 0 0 + btreemap_v1_pop_first_blob_32_64 663763332 -0.59% 0 0 + btreemap_v1_pop_first_blob_32_8 640838262 0.01% 0 0 + btreemap_v1_pop_first_blob_4_128 279547807 -0.48% 0 0 + btreemap_v1_pop_first_blob_512_128 4985501756 -0.53% 0 0 + btreemap_v1_pop_first_blob_64_128 1148383275 -0.28% 0 0 + btreemap_v1_pop_first_blob_8_128 466033258 -0.67% 0 0 + btreemap_v1_pop_first_u64_blob8 554388115 -0.38% 0 0 + btreemap_v1_pop_first_u64_u64 557488351 -0.32% 0 0 + btreemap_v1_pop_last_blob8_u64 426716755 -0.79% 0 0 + btreemap_v1_pop_last_blob_1024_128 9027882338 -0.40% 0 0 + btreemap_v1_pop_last_blob_128_128 1774788118 0.09% 0 0 + btreemap_v1_pop_last_blob_16_128 579169231 -0.92% 0 0 + btreemap_v1_pop_last_blob_256_128 2829351769 0.04% 0 0 + btreemap_v1_pop_last_blob_32_1024 937223741 -0.14% 0 0 + btreemap_v1_pop_last_blob_32_128 674115649 -0.33% 0 0 + btreemap_v1_pop_last_blob_32_16 624838280 -0.58% 0 0 + btreemap_v1_pop_last_blob_32_256 711983530 -0.40% 0 0 + btreemap_v1_pop_last_blob_32_32 635001845 -0.55% 0 0 + btreemap_v1_pop_last_blob_32_4 612396356 -0.64% 0 0 + btreemap_v1_pop_last_blob_32_512 781703090 -0.43% 0 0 + btreemap_v1_pop_last_blob_32_64 643402362 -0.34% 0 0 + btreemap_v1_pop_last_blob_32_8 617542418 -0.29% 0 0 + btreemap_v1_pop_last_blob_4_128 271975462 -0.43% 0 0 + btreemap_v1_pop_last_blob_512_128 4867658077 -0.42% 0 0 + btreemap_v1_pop_last_blob_64_128 1116571899 -0.42% 0 0 + btreemap_v1_pop_last_blob_8_128 462788982 -0.67% 0 0 + btreemap_v1_pop_last_u64_blob8 541957924 -0.42% 0 0 + btreemap_v1_pop_last_u64_u64 544107722 -0.35% 0 0 + btreemap_v1_remove_blob8_u64 440652789 0.46% 0 0 + btreemap_v1_remove_blob_1024_128 6330406626 -0.45% 0 0 + btreemap_v1_remove_blob_128_128 1321192633 0.06% 0 0 + btreemap_v1_remove_blob_16_128 539010219 -0.56% 0 0 + btreemap_v1_remove_blob_256_128 2046189107 0.06% 0 0 + btreemap_v1_remove_blob_32_1024 826965331 -0.08% 0 0 + btreemap_v1_remove_blob_32_128 589987880 -0.29% 0 0 + btreemap_v1_remove_blob_32_16 546351365 -0.26% 0 0 + btreemap_v1_remove_blob_32_256 626317576 -0.24% 0 0 + btreemap_v1_remove_blob_32_32 555010200 -0.16% 0 0 + btreemap_v1_remove_blob_32_4 538629074 -0.05% 0 0 + btreemap_v1_remove_blob_32_512 697870456 -0.13% 0 0 + btreemap_v1_remove_blob_32_64 576024269 -0.25% 0 0 + btreemap_v1_remove_blob_32_8 539283194 -0.28% 0 0 + btreemap_v1_remove_blob_4_128 344004557 -0.10% 0 0 + btreemap_v1_remove_blob_512_128 3456175013 -0.25% 0 0 + btreemap_v1_remove_blob_64_128 876109417 -0.22% 0 0 + btreemap_v1_remove_blob_8_128 470964477 -0.38% 0 0 + btreemap_v1_remove_u64_blob8 486384152 0.13% 0 0 + btreemap_v1_remove_u64_u64 499799718 0.17% 0 0 + btreemap_v2_contains_10mib_values 142217957 0.03% 0 0 + btreemap_v2_contains_blob8_u64 277214343 1.00% 0 0 + btreemap_v2_contains_blob_1024_128 4898946611 0.22% 0 0 + btreemap_v2_contains_blob_128_128 925555742 0.43% 0 0 + btreemap_v2_contains_blob_16_128 300251473 0.44% 0 0 + btreemap_v2_contains_blob_256_128 1482925551 0.44% 0 0 + btreemap_v2_contains_blob_32_1024 337656769 1.79% 0 0 + btreemap_v2_contains_blob_32_128 333839954 1.50% 0 0 + btreemap_v2_contains_blob_32_16 338174754 1.57% 0 0 + btreemap_v2_contains_blob_32_256 340508248 1.87% 0 0 + btreemap_v2_contains_blob_32_32 339595438 1.89% 0 0 + btreemap_v2_contains_blob_32_4 336896704 1.91% 0 0 + btreemap_v2_contains_blob_32_512 334090366 1.43% 0 0 + btreemap_v2_contains_blob_32_64 339081358 2.24% 0 0 + btreemap_v2_contains_blob_32_8 337301632 1.83% 0 0 + btreemap_v2_contains_blob_4_128 244740121 -0.05% 0 0 + btreemap_v2_contains_blob_512_128 2625290726 0.09% 0 0 + btreemap_v2_contains_blob_64_128 582248673 1.02% 0 0 + btreemap_v2_contains_blob_8_128 269128362 1.43% 0 0 + btreemap_v2_contains_u64_blob8 233256018 0.81% 0 0 + btreemap_v2_contains_u64_u64 238556483 1.70% 0 0 + btreemap_v2_contains_u64_vec8 233256018 0.81% 0 0 + btreemap_v2_contains_vec8_u64 366392438 0.69% 0 0 + btreemap_v2_contains_vec_1024_128 2831649126 0.01% 0 0 + btreemap_v2_contains_vec_128_128 697463829 0.09% 0 0 + btreemap_v2_contains_vec_16_128 429709958 -0.02% 0 0 + btreemap_v2_contains_vec_256_128 1219637100 0.47% 0 0 + btreemap_v2_contains_vec_32_1024 583325661 0.93% 0 0 + btreemap_v2_contains_vec_32_128 488605668 -0.12% 0 0 + btreemap_v2_contains_vec_32_16 407833357 0.70% 0 0 + btreemap_v2_contains_vec_32_256 518646836 -0.46% 0 0 + btreemap_v2_contains_vec_32_32 408431266 0.73% 0 0 + btreemap_v2_contains_vec_32_4 406670633 0.78% 0 0 + btreemap_v2_contains_vec_32_512 535001628 -0.70% 0 0 + btreemap_v2_contains_vec_32_64 463282662 0.29% 0 0 + btreemap_v2_contains_vec_32_8 406570012 0.80% 0 0 + btreemap_v2_contains_vec_4_128 396937070 -0.20% 0 0 + btreemap_v2_contains_vec_512_128 1811262338 -0.10% 0 0 + btreemap_v2_contains_vec_64_128 594718276 -0.10% 0 0 + btreemap_v2_contains_vec_8_128 389233979 2.93% 0 0 + btreemap_v2_get_10mib_values 1227477610 0.00% 0 0 + btreemap_v2_get_blob8_u64 299887024 0.82% 0 0 + btreemap_v2_get_blob_1024_128 4955392518 0.07% 0 0 + btreemap_v2_get_blob_128_128 947748410 -0.16% 0 0 + btreemap_v2_get_blob_16_128 314026459 -2.05% 0 0 + btreemap_v2_get_blob_256_128 1508348279 -0.06% 0 0 + btreemap_v2_get_blob_32_1024 356990156 -0.30% 0 0 + btreemap_v2_get_blob_32_128 347448180 -0.93% 0 0 + btreemap_v2_get_blob_32_16 347299656 -1.71% 0 0 + btreemap_v2_get_blob_32_256 355303994 -0.40% 0 0 + btreemap_v2_get_blob_32_32 349432439 -1.35% 0 0 + btreemap_v2_get_blob_32_4 344295894 -1.07% 0 0 + btreemap_v2_get_blob_32_512 350683063 -0.68% 0 0 + btreemap_v2_get_blob_32_64 350846830 -0.60% 0 0 + btreemap_v2_get_blob_32_8 345200526 -1.53% 0 0 + btreemap_v2_get_blob_4_128 257331691 -2.04% 0 0 + btreemap_v2_get_blob_512_128 2661000456 -0.18% 0 0 + btreemap_v2_get_blob_64_128 599970891 -0.25% 0 0 + btreemap_v2_get_blob_8_128 282280016 -1.61% 0 0 + btreemap_v2_get_u64_blob8 243494852 -2.61% 0 0 + btreemap_v2_get_u64_u64 250731335 -2.33% 0 0 + btreemap_v2_get_u64_vec8 244234847 -3.05% 0 0 + btreemap_v2_get_vec8_u64 376783066 0.71% 0 0 + btreemap_v2_get_vec_1024_128 2901574721 1.57% 0 0 + btreemap_v2_get_vec_128_128 710234642 0.09% 0 0 + btreemap_v2_get_vec_16_128 439609550 -0.03% 0 0 + btreemap_v2_get_vec_256_128 1232922460 0.46% 0 0 + btreemap_v2_get_vec_32_1024 597773339 -0.37% 0 0 + btreemap_v2_get_vec_32_128 498889261 -0.12% 0 0 + btreemap_v2_get_vec_32_16 415897245 0.68% 0 0 + btreemap_v2_get_vec_32_256 538935052 -0.01% 0 0 + btreemap_v2_get_vec_32_32 416645143 0.72% 0 0 + btreemap_v2_get_vec_32_4 414613272 0.76% 0 0 + btreemap_v2_get_vec_32_512 558129383 2.71% 0 0 + btreemap_v2_get_vec_32_64 471860937 0.28% 0 0 + btreemap_v2_get_vec_32_8 414552400 0.78% 0 0 + btreemap_v2_get_vec_4_128 406578925 -0.19% 0 0 + btreemap_v2_get_vec_512_128 1824668003 -0.10% 0 0 + btreemap_v2_get_vec_64_128 606199240 -0.09% 0 0 + btreemap_v2_get_vec_8_128 399016651 2.80% 0 0 + btreemap_v2_insert_10mib_values 5247391058 0.00% 322 0.00% 3613 0.00% + btreemap_v2_insert_blob8_u64 441373352 0.08% 0 4 0.00% + btreemap_v2_insert_blob_1024_128 5106163080 -0.01% 0 196 0.00% + btreemap_v2_insert_blob_128_128 1134482770 0.46% 0 46 0.00% + btreemap_v2_insert_blob_16_128 495587755 0.42% 0 24 0.00% + btreemap_v2_insert_blob_256_128 1684101470 0.31% 0 67 0.00% + btreemap_v2_insert_blob_32_1024 687624180 0.49% 0 173 0.00% + btreemap_v2_insert_blob_32_128 529998238 0.73% 0 28 0.00% + btreemap_v2_insert_blob_32_16 510178804 0.94% 0 11 0.00% + btreemap_v2_insert_blob_32_256 561097508 0.71% 0 49 0.00% + btreemap_v2_insert_blob_32_32 515356067 0.86% 0 13 0.00% + btreemap_v2_insert_blob_32_4 498526133 0.96% 0 8 0.00% + btreemap_v2_insert_blob_32_512 598012415 0.54% 0 91 0.00% + btreemap_v2_insert_blob_32_64 520261508 0.71% 0 18 0.00% + btreemap_v2_insert_blob_32_8 506047152 1.04% 0 9 0.00% + btreemap_v2_insert_blob_4_128 411190916 -0.30% 0 13 0.00% + btreemap_v2_insert_blob_512_128 2856354766 0.02% 0 111 0.00% + btreemap_v2_insert_blob_64_128 778656834 0.70% 0 34 0.00% + btreemap_v2_insert_blob_8_128 463637152 0.03% 0 20 0.00% + btreemap_v2_insert_u64_blob8 422673065 0.60% 0 5 0.00% + btreemap_v2_insert_u64_u64 431142993 0.55% 0 6 0.00% + btreemap_v2_insert_u64_vec8 429735780 0.94% 0 21 0.00% + btreemap_v2_insert_vec8_u64 582161939 0.37% 0 16 0.00% + btreemap_v2_insert_vec_1024_128 3320218687 0.13% 0 193 0.00% + btreemap_v2_insert_vec_128_128 1097316458 0.31% 0 51 0.00% + btreemap_v2_insert_vec_16_128 704073865 0.13% 0 31 0.00% + btreemap_v2_insert_vec_256_128 1507394441 0.53% 0 71 0.00% + btreemap_v2_insert_vec_32_1024 1223025783 0.09% 0 171 0.00% + btreemap_v2_insert_vec_32_128 761860698 0.26% 0 33 0.00% + btreemap_v2_insert_vec_32_16 664111576 0.39% 0 20 0.00% + btreemap_v2_insert_vec_32_256 890884138 0.17% 0 54 0.00% + btreemap_v2_insert_vec_32_32 666104854 0.43% 0 20 0.00% + btreemap_v2_insert_vec_32_4 660982082 0.34% 0 20 0.00% + btreemap_v2_insert_vec_32_512 1009309654 0.41% 0 91 0.00% + btreemap_v2_insert_vec_32_64 691846737 0.35% 0 24 0.00% + btreemap_v2_insert_vec_32_8 660579111 0.27% 0 20 0.00% + btreemap_v2_insert_vec_4_128 608945447 0.06% 0 16 0.00% + btreemap_v2_insert_vec_512_128 2128531367 0.33% 0 112 0.00% + btreemap_v2_insert_vec_64_128 879671097 0.27% 0 41 0.00% + btreemap_v2_insert_vec_8_128 666730079 0.14% 0 23 0.00% + btreemap_v2_mem_manager_contains_blob512_u64 2716382295 0.34% 0 0 + btreemap_v2_mem_manager_contains_u64_blob512 309085018 0.10% 0 0 + btreemap_v2_mem_manager_contains_u64_u64 314061355 0.49% 0 0 + btreemap_v2_mem_manager_contains_u64_vec512 395977762 1.42% 0 0 + btreemap_v2_mem_manager_contains_vec512_u64 1773578767 1.36% 0 0 + btreemap_v2_mem_manager_get_blob512_u64 2761459393 0.33% 0 0 + btreemap_v2_mem_manager_get_u64_blob512 326380391 -2.05% 0 0 + btreemap_v2_mem_manager_get_u64_u64 328140916 -2.40% 0 0 + btreemap_v2_mem_manager_get_u64_vec512 423093906 -1.00% 0 0 + btreemap_v2_mem_manager_get_vec512_u64 1811142474 1.33% 0 0 + btreemap_v2_mem_manager_insert_blob512_u64 2958972800 0.10% 0 0 + btreemap_v2_mem_manager_insert_u64_blob512 646615329 0.33% 0 0 + btreemap_v2_mem_manager_insert_u64_u64 560299851 0.41% 0 0 + btreemap_v2_mem_manager_insert_u64_vec512 898844460 0.80% 0 0 + btreemap_v2_mem_manager_insert_vec512_u64 2251012407 1.06% 0 0 + btreemap_v2_mem_manager_remove_blob512_u64 3844702018 0.25% 0 0 + btreemap_v2_mem_manager_remove_u64_blob512 946812832 -0.21% 0 0 + btreemap_v2_mem_manager_remove_u64_u64 806835295 -0.48% 0 0 + btreemap_v2_mem_manager_remove_u64_vec512 1283899492 0.07% 0 0 + btreemap_v2_mem_manager_remove_vec512_u64 3327399755 0.91% 0 0 + btreemap_v2_pop_first_blob8_u64 610097435 -1.17% 0 0 + btreemap_v2_pop_first_blob_1024_128 9397216286 -0.04% 0 0 + btreemap_v2_pop_first_blob_128_128 2007433379 0.13% 0 0 + btreemap_v2_pop_first_blob_16_128 758505635 -0.65% 0 0 + btreemap_v2_pop_first_blob_256_128 3093241998 0.26% 0 0 + btreemap_v2_pop_first_blob_32_1024 1134488534 -0.11% 0 0 + btreemap_v2_pop_first_blob_32_128 878776661 -0.38% 0 0 + btreemap_v2_pop_first_blob_32_16 820290659 -0.82% 0 0 + btreemap_v2_pop_first_blob_32_256 909475486 -0.33% 0 0 + btreemap_v2_pop_first_blob_32_32 832679269 -0.74% 0 0 + btreemap_v2_pop_first_blob_32_4 803396353 -0.49% 0 0 + btreemap_v2_pop_first_blob_32_512 975136110 -0.21% 0 0 + btreemap_v2_pop_first_blob_32_64 840995585 -0.50% 0 0 + btreemap_v2_pop_first_blob_32_8 819129261 -0.70% 0 0 + btreemap_v2_pop_first_blob_4_128 372375122 -0.80% 0 0 + btreemap_v2_pop_first_blob_512_128 5170729534 0.00% 0 0 + btreemap_v2_pop_first_blob_64_128 1329714089 -0.02% 0 0 + btreemap_v2_pop_first_blob_8_128 612208263 -0.83% 0 0 + btreemap_v2_pop_first_u64_blob8 705892053 -1.12% 0 0 + btreemap_v2_pop_first_u64_u64 719150807 -1.21% 0 0 + btreemap_v2_pop_first_u64_vec8 710034544 -1.36% 0 0 + btreemap_v2_pop_first_vec8_u64 783784225 -0.28% 0 0 + btreemap_v2_pop_first_vec_1024_128 5768601227 0.10% 0 0 + btreemap_v2_pop_first_vec_128_128 1815908841 0.24% 0 0 + btreemap_v2_pop_first_vec_16_128 1025275233 -0.20% 0 0 + btreemap_v2_pop_first_vec_256_128 2526957213 0.21% 0 0 + btreemap_v2_pop_first_vec_32_1024 1812672679 -0.08% 0 0 + btreemap_v2_pop_first_vec_32_128 1205877175 -0.26% 0 0 + btreemap_v2_pop_first_vec_32_16 1038665239 -0.10% 0 0 + btreemap_v2_pop_first_vec_32_256 1328280204 -0.03% 0 0 + btreemap_v2_pop_first_vec_32_32 1055171969 -0.33% 0 0 + btreemap_v2_pop_first_vec_32_4 1036107253 -0.89% 0 0 + btreemap_v2_pop_first_vec_32_512 1490507215 -0.06% 0 0 + btreemap_v2_pop_first_vec_32_64 1090635398 -0.28% 0 0 + btreemap_v2_pop_first_vec_32_8 1048510168 -0.81% 0 0 + btreemap_v2_pop_first_vec_4_128 537971781 -0.18% 0 0 + btreemap_v2_pop_first_vec_512_128 3605170755 0.19% 0 0 + btreemap_v2_pop_first_vec_64_128 1400023412 -0.13% 0 0 + btreemap_v2_pop_first_vec_8_128 846583253 -0.19% 0 0 + btreemap_v2_pop_last_blob8_u64 593267468 -1.20% 0 0 + btreemap_v2_pop_last_blob_1024_128 9217874627 0.01% 0 0 + btreemap_v2_pop_last_blob_128_128 1959347279 0.11% 0 0 + btreemap_v2_pop_last_blob_16_128 739233011 -0.68% 0 0 + btreemap_v2_pop_last_blob_256_128 3018533213 0.23% 0 0 + btreemap_v2_pop_last_blob_32_1024 1114768577 -0.06% 0 0 + btreemap_v2_pop_last_blob_32_128 856410708 -0.40% 0 0 + btreemap_v2_pop_last_blob_32_16 799923507 -0.80% 0 0 + btreemap_v2_pop_last_blob_32_256 888911791 -0.27% 0 0 + btreemap_v2_pop_last_blob_32_32 811998333 -0.77% 0 0 + btreemap_v2_pop_last_blob_32_4 788882349 -0.60% 0 0 + btreemap_v2_pop_last_blob_32_512 957263780 -0.19% 0 0 + btreemap_v2_pop_last_blob_32_64 822799302 -0.53% 0 0 + btreemap_v2_pop_last_blob_32_8 798965415 -0.71% 0 0 + btreemap_v2_pop_last_blob_4_128 363906126 -0.79% 0 0 + btreemap_v2_pop_last_blob_512_128 5052214736 -0.03% 0 0 + btreemap_v2_pop_last_blob_64_128 1308620317 -0.05% 0 0 + btreemap_v2_pop_last_blob_8_128 612185424 -0.81% 0 0 + btreemap_v2_pop_last_u64_blob8 693662883 -1.12% 0 0 + btreemap_v2_pop_last_u64_u64 705949750 -1.14% 0 0 + btreemap_v2_pop_last_u64_vec8 696415691 -1.32% 0 0 + btreemap_v2_pop_last_vec8_u64 764594107 -0.21% 0 0 + btreemap_v2_pop_last_vec_1024_128 6018998629 0.11% 0 0 + btreemap_v2_pop_last_vec_128_128 1831437061 0.17% 0 0 + btreemap_v2_pop_last_vec_16_128 1013525971 -0.15% 0 0 + btreemap_v2_pop_last_vec_256_128 2582856979 0.32% 0 0 + btreemap_v2_pop_last_vec_32_1024 1807678468 -0.09% 0 0 + btreemap_v2_pop_last_vec_32_128 1204371315 -0.27% 0 0 + btreemap_v2_pop_last_vec_32_16 1028791023 -0.22% 0 0 + btreemap_v2_pop_last_vec_32_256 1325707543 0.01% 0 0 + btreemap_v2_pop_last_vec_32_32 1044763371 -0.31% 0 0 + btreemap_v2_pop_last_vec_32_4 1033959258 -0.85% 0 0 + btreemap_v2_pop_last_vec_32_512 1490497731 -0.15% 0 0 + btreemap_v2_pop_last_vec_32_64 1085292901 -0.27% 0 0 + btreemap_v2_pop_last_vec_32_8 1035755953 -0.86% 0 0 + btreemap_v2_pop_last_vec_4_128 529153123 -0.19% 0 0 + btreemap_v2_pop_last_vec_512_128 3726754094 0.13% 0 0 + btreemap_v2_pop_last_vec_64_128 1412106259 -0.16% 0 0 + btreemap_v2_pop_last_vec_8_128 854240460 -0.22% 0 0 + btreemap_v2_range_count_1k_0b 16863 -0.17% 0 0 + btreemap_v2_range_count_1k_10kib 2433555 0.70% 0 0 + btreemap_v2_range_count_20_10mib 20572756 0.04% 0 0 + btreemap_v2_range_key_sum_1k_0b 17472 -0.17% 0 0 + btreemap_v2_range_key_sum_1k_10kib 57248241 0.03% 0 0 + btreemap_v2_range_key_sum_20_10mib 1105826495 0.00% 0 0 + btreemap_v2_range_value_sum_1k_0b 17486 -0.17% 0 0 + btreemap_v2_range_value_sum_1k_10kib 57260237 0.03% 0 0 + btreemap_v2_range_value_sum_20_10mib 1105826731 0.00% 0 0 + btreemap_v2_remove_10mib_values 5573675958 0.00% 0 657 0.00% + btreemap_v2_remove_blob8_u64 589204655 0.36% 0 0 + btreemap_v2_remove_blob_1024_128 6474679665 -0.02% 0 0 + btreemap_v2_remove_blob_128_128 1466727057 0.08% 0 0 + btreemap_v2_remove_blob_16_128 680456789 -0.32% 0 0 + btreemap_v2_remove_blob_256_128 2195090992 0.28% 0 0 + btreemap_v2_remove_blob_32_1024 967043546 0.03% 0 0 + btreemap_v2_remove_blob_32_128 732131285 -0.20% 0 0 + btreemap_v2_remove_blob_32_16 687946321 -0.39% 0 0 + btreemap_v2_remove_blob_32_256 767243066 -0.12% 0 0 + btreemap_v2_remove_blob_32_32 696520229 -0.37% 0 0 + btreemap_v2_remove_blob_32_4 680067993 -0.21% 0 0 + btreemap_v2_remove_blob_32_512 838959445 -0.04% 0 0 + btreemap_v2_remove_blob_32_64 720951953 -0.26% 0 0 + btreemap_v2_remove_blob_32_8 679964928 -0.41% 0 0 + btreemap_v2_remove_blob_4_128 455950575 -0.28% 0 0 + btreemap_v2_remove_blob_512_128 3599722153 0.02% 0 0 + btreemap_v2_remove_blob_64_128 1020586460 0.06% 0 0 + btreemap_v2_remove_blob_8_128 608937116 -0.29% 0 0 + btreemap_v2_remove_u64_blob8 598070676 -0.49% 0 0 + btreemap_v2_remove_u64_u64 620231677 -0.53% 0 0 + btreemap_v2_remove_u64_vec8 603988416 -0.62% 0 0 + btreemap_v2_remove_vec8_u64 751143040 0.30% 0 0 + btreemap_v2_remove_vec_1024_128 4984095519 -1.03% 0 0 + btreemap_v2_remove_vec_128_128 1452997160 -0.44% 0 0 + btreemap_v2_remove_vec_16_128 907562996 0.00% 0 0 + btreemap_v2_remove_vec_256_128 2315915215 0.00% 0 0 + btreemap_v2_remove_vec_32_1024 1680348770 -0.20% 0 0 + btreemap_v2_remove_vec_32_128 1011708017 -0.12% 0 0 + btreemap_v2_remove_vec_32_16 834826918 0.28% 0 0 + btreemap_v2_remove_vec_32_256 1238341769 0.03% 0 0 + btreemap_v2_remove_vec_32_32 841693645 0.30% 0 0 + btreemap_v2_remove_vec_32_4 840170276 0.31% 0 0 + btreemap_v2_remove_vec_32_512 1401695456 0.87% 0 0 + btreemap_v2_remove_vec_32_64 924632537 0.58% 0 0 + btreemap_v2_remove_vec_32_8 833854541 0.30% 0 0 + btreemap_v2_remove_vec_4_128 647882487 -1.27% 0 0 + btreemap_v2_remove_vec_512_128 3266943550 -0.04% 0 0 + btreemap_v2_remove_vec_64_128 1179932505 -0.10% 0 0 + btreemap_v2_remove_vec_8_128 822292826 0.57% 0 0 + btreemap_v2_scan_iter_1k_0b 1493608 0.01% 0 0 + btreemap_v2_scan_iter_1k_10kib 57070268 0.00% 0 0 + btreemap_v2_scan_iter_20_10mib 1103719780 0.00% 0 0 + btreemap_v2_scan_iter_rev_1k_0b 1495895 0.01% 0 0 + btreemap_v2_scan_iter_rev_1k_10kib 57048055 0.00% 0 0 + btreemap_v2_scan_iter_rev_20_10mib 1103719362 0.00% 0 0 + btreemap_v2_scan_keys_1k_0b 948235 0.01% 0 0 + btreemap_v2_scan_keys_1k_10kib 2361935 0.01% 0 0 + btreemap_v2_scan_keys_20_10mib 18465489 0.00% 0 0 + btreemap_v2_scan_keys_rev_1k_0b 965620 0.01% 0 0 + btreemap_v2_scan_keys_rev_1k_10kib 2357983 0.01% 0 0 + btreemap_v2_scan_keys_rev_20_10mib 18465824 0.00% 0 0 + btreemap_v2_scan_values_1k_0b 1491006 0.01% 0 0 + btreemap_v2_scan_values_1k_10kib 57067666 0.00% 0 0 + btreemap_v2_scan_values_20_10mib 1103719730 0.00% 0 0 + btreemap_v2_scan_values_rev_1k_0b 1493293 0.01% 0 0 + btreemap_v2_scan_values_rev_1k_10kib 57045453 0.00% 0 0 + btreemap_v2_scan_values_rev_20_10mib 1103719312 0.00% 0 0 + memory_manager_baseline 1176576907 0.00% 0 8000 0.00% + memory_manager_grow 346601964 0.00% 2 0.00% 32000 0.00% + memory_manager_overhead 1181961735 0.00% 0 8320 0.00% + vec_get_blob_128 19156662 -0.31% 0 0 + vec_get_blob_16 6375946 -0.87% 0 0 + vec_get_blob_32 7093505 -0.81% 0 0 + vec_get_blob_4 4824327 -0.93% 0 0 + vec_get_blob_4_mem_manager 7191677 -0.63% 0 0 + vec_get_blob_64 11260944 -0.52% 0 0 + vec_get_blob_64_mem_manager 13581092 -0.43% 0 0 + vec_get_blob_8 5723201 -0.92% 0 0 + vec_get_u64 5270306 -1.13% 0 0 + vec_insert_blob_128 4151425 0.00% 0 19 0.00% + vec_insert_blob_16 3316228 0.00% 0 2 0.00% + vec_insert_blob_32 3435468 0.00% 0 5 0.00% + vec_insert_blob_4 3227469 0.00% 0 0 + vec_insert_blob_64 3675805 0.00% 0 9 0.00% + vec_insert_blob_8 3256890 0.00% 0 1 0.00% + vec_insert_u64 5869520 -1.01% 0 1 0.00% diff --git a/canbench_results.yml b/canbench_results.yml index 72c4e786..ae4dcbe4 100644 --- a/canbench_results.yml +++ b/canbench_results.yml @@ -1,2431 +1,2431 @@ benches: btreemap_v1_contains_blob8_u64: total: - instructions: 192404980 + instructions: 194964325 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_1024_128: total: - instructions: 4841087105 + instructions: 4811678256 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_128_128: total: - instructions: 848576334 + instructions: 848821075 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_16_128: total: - instructions: 229783109 + instructions: 227130263 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_256_128: total: - instructions: 1405955072 + instructions: 1400918183 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_32_1024: total: - instructions: 260366378 + instructions: 258423010 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_32_128: total: - instructions: 250945917 + instructions: 252967804 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_32_16: total: - instructions: 263985403 + instructions: 262136410 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_32_256: total: - instructions: 256218866 + instructions: 258805575 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_32_32: total: - instructions: 261642152 + instructions: 260774803 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_32_4: total: - instructions: 259485115 + instructions: 257441140 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_32_512: total: - instructions: 256710347 + instructions: 255106465 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_32_64: total: - instructions: 253200293 + instructions: 254263738 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_32_8: total: - instructions: 253531704 + instructions: 256262361 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_4_128: total: - instructions: 164310854 + instructions: 165470839 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_512_128: total: - instructions: 2558114814 + instructions: 2543816260 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_64_128: total: - instructions: 499276473 + instructions: 494398463 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_8_128: total: - instructions: 190349023 + instructions: 188408544 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_u64_blob8: total: - instructions: 168557358 + instructions: 165774167 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_u64_u64: total: - instructions: 168076033 + instructions: 165565754 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob8_u64: total: - instructions: 200831001 + instructions: 203390426 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_1024_128: total: - instructions: 4894778854 + instructions: 4868477772 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_128_128: total: - instructions: 866386638 + instructions: 867025588 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_16_128: total: - instructions: 244252154 + instructions: 240229350 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_256_128: total: - instructions: 1429747414 + instructions: 1426193247 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_32_1024: total: - instructions: 280106753 + instructions: 276684587 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_32_128: total: - instructions: 264428450 + instructions: 265367267 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_32_16: total: - instructions: 271839337 + instructions: 270023113 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_32_256: total: - instructions: 271119738 + instructions: 272563236 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_32_32: total: - instructions: 269854309 + instructions: 269464920 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_32_4: total: - instructions: 266461283 + instructions: 264590610 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_32_512: total: - instructions: 273686516 + instructions: 270506018 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_32_64: total: - instructions: 264234944 + instructions: 264723575 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_32_8: total: - instructions: 261431662 + instructions: 264461611 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_4_128: total: - instructions: 177411615 + instructions: 178539304 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_512_128: total: - instructions: 2592720058 + instructions: 2578989071 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_64_128: total: - instructions: 515600037 + instructions: 508633530 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_8_128: total: - instructions: 205217432 + instructions: 201236677 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_u64_blob8: total: - instructions: 175701037 + instructions: 173008513 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_u64_u64: total: - instructions: 176409011 + instructions: 173995203 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_insert_blob8_u64: total: - instructions: 330197598 + instructions: 329986725 heap_increase: 0 stable_memory_increase: 6 scopes: {} btreemap_v1_insert_blob_1024_128: total: - instructions: 5015476464 + instructions: 5007942824 heap_increase: 0 stable_memory_increase: 262 scopes: {} btreemap_v1_insert_blob_128_128: total: - instructions: 1026455537 + instructions: 1026805160 heap_increase: 0 stable_memory_increase: 61 scopes: {} btreemap_v1_insert_blob_16_128: total: - instructions: 393861615 + instructions: 391942071 heap_increase: 0 stable_memory_increase: 32 scopes: {} btreemap_v1_insert_blob_256_128: total: - instructions: 1574808547 + instructions: 1576965603 heap_increase: 0 stable_memory_increase: 90 scopes: {} btreemap_v1_insert_blob_32_1024: total: - instructions: 586992426 + instructions: 585609756 heap_increase: 0 stable_memory_increase: 230 scopes: {} btreemap_v1_insert_blob_32_128: total: - instructions: 424843737 + instructions: 424489333 heap_increase: 0 stable_memory_increase: 37 scopes: {} btreemap_v1_insert_blob_32_16: total: - instructions: 405798192 + instructions: 405326475 heap_increase: 0 stable_memory_increase: 14 scopes: {} btreemap_v1_insert_blob_32_256: total: - instructions: 452817458 + instructions: 454178716 heap_increase: 0 stable_memory_increase: 66 scopes: {} btreemap_v1_insert_blob_32_32: total: - instructions: 408475463 + instructions: 408531668 heap_increase: 0 stable_memory_increase: 17 scopes: {} btreemap_v1_insert_blob_32_4: total: - instructions: 394551749 + instructions: 393759972 heap_increase: 0 stable_memory_increase: 11 scopes: {} btreemap_v1_insert_blob_32_512: total: - instructions: 496535046 + instructions: 495214435 heap_increase: 0 stable_memory_increase: 121 scopes: {} btreemap_v1_insert_blob_32_64: total: - instructions: 411896685 + instructions: 412537755 heap_increase: 0 stable_memory_increase: 24 scopes: {} btreemap_v1_insert_blob_32_8: total: - instructions: 397206540 + instructions: 398133513 heap_increase: 0 stable_memory_increase: 12 scopes: {} btreemap_v1_insert_blob_4_128: total: - instructions: 314942911 + instructions: 313593329 heap_increase: 0 stable_memory_increase: 17 scopes: {} btreemap_v1_insert_blob_512_128: total: - instructions: 2755573810 + instructions: 2754557121 heap_increase: 0 stable_memory_increase: 148 scopes: {} btreemap_v1_insert_blob_64_128: total: - instructions: 670128686 + instructions: 671082804 heap_increase: 0 stable_memory_increase: 46 scopes: {} btreemap_v1_insert_blob_8_128: total: - instructions: 360214534 + instructions: 358579533 heap_increase: 0 stable_memory_increase: 27 scopes: {} btreemap_v1_insert_u64_blob8: total: - instructions: 339761585 + instructions: 339932921 heap_increase: 0 stable_memory_increase: 7 scopes: {} btreemap_v1_insert_u64_u64: total: - instructions: 345342581 + instructions: 345608503 heap_increase: 0 stable_memory_increase: 7 scopes: {} btreemap_v1_pop_first_blob8_u64: total: - instructions: 444720569 + instructions: 441600212 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_1024_128: total: - instructions: 9261592813 + instructions: 9210292778 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_128_128: total: - instructions: 1817778012 + instructions: 1819146872 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_16_128: total: - instructions: 593286637 + instructions: 588472296 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_256_128: total: - instructions: 2896968751 + instructions: 2896727052 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_32_1024: total: - instructions: 959870868 + instructions: 958303933 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_32_128: total: - instructions: 699286043 + instructions: 696856907 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_32_16: total: - instructions: 644506427 + instructions: 643862300 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_32_256: total: - instructions: 736390642 + instructions: 733623810 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_32_32: total: - instructions: 656441746 + instructions: 654116869 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_32_4: total: - instructions: 625217842 + instructions: 624710634 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_32_512: total: - instructions: 799853029 + instructions: 799092498 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_32_64: total: - instructions: 667712194 + instructions: 663763332 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_32_8: total: - instructions: 640805887 + instructions: 640838262 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_4_128: total: - instructions: 280909282 + instructions: 279547807 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_512_128: total: - instructions: 5012121460 + instructions: 4985501756 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_64_128: total: - instructions: 1151643164 + instructions: 1148383275 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_8_128: total: - instructions: 469166093 + instructions: 466033258 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_u64_blob8: total: - instructions: 556510476 + instructions: 554388115 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_u64_u64: total: - instructions: 559277236 + instructions: 557488351 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob8_u64: total: - instructions: 430135402 + instructions: 426716755 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_1024_128: total: - instructions: 9063815846 + instructions: 9027882338 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_128_128: total: - instructions: 1773217986 + instructions: 1774788118 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_16_128: total: - instructions: 584548731 + instructions: 579169231 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_256_128: total: - instructions: 2828277188 + instructions: 2829351769 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_32_1024: total: - instructions: 938492602 + instructions: 937223741 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_32_128: total: - instructions: 676354903 + instructions: 674115649 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_32_16: total: - instructions: 628503764 + instructions: 624838280 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_32_256: total: - instructions: 714857866 + instructions: 711983530 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_32_32: total: - instructions: 638532322 + instructions: 635001845 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_32_4: total: - instructions: 616339307 + instructions: 612396356 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_32_512: total: - instructions: 785077508 + instructions: 781703090 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_32_64: total: - instructions: 645617999 + instructions: 643402362 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_32_8: total: - instructions: 619342043 + instructions: 617542418 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_4_128: total: - instructions: 273152047 + instructions: 271975462 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_512_128: total: - instructions: 4888295538 + instructions: 4867658077 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_64_128: total: - instructions: 1121279390 + instructions: 1116571899 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_8_128: total: - instructions: 465916920 + instructions: 462788982 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_u64_blob8: total: - instructions: 544226480 + instructions: 541957924 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_u64_u64: total: - instructions: 546034093 + instructions: 544107722 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob8_u64: total: - instructions: 438619290 + instructions: 440652789 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_1024_128: total: - instructions: 6358955616 + instructions: 6330406626 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_128_128: total: - instructions: 1320363518 + instructions: 1321192633 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_16_128: total: - instructions: 542024477 + instructions: 539010219 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_256_128: total: - instructions: 2044886726 + instructions: 2046189107 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_32_1024: total: - instructions: 827622133 + instructions: 826965331 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_32_128: total: - instructions: 591703191 + instructions: 589987880 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_32_16: total: - instructions: 547780911 + instructions: 546351365 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_32_256: total: - instructions: 627846490 + instructions: 626317576 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_32_32: total: - instructions: 555889629 + instructions: 555010200 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_32_4: total: - instructions: 538909331 + instructions: 538629074 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_32_512: total: - instructions: 698810337 + instructions: 697870456 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_32_64: total: - instructions: 577466550 + instructions: 576024269 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_32_8: total: - instructions: 540805249 + instructions: 539283194 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_4_128: total: - instructions: 344332716 + instructions: 344004557 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_512_128: total: - instructions: 3464987218 + instructions: 3456175013 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_64_128: total: - instructions: 878034091 + instructions: 876109417 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_8_128: total: - instructions: 472768582 + instructions: 470964477 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_u64_blob8: total: - instructions: 485773174 + instructions: 486384152 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_u64_u64: total: - instructions: 498958513 + instructions: 499799718 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_10mib_values: total: - instructions: 142172404 + instructions: 142217957 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob8_u64: total: - instructions: 274472580 + instructions: 277214343 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_1024_128: total: - instructions: 4888113392 + instructions: 4898946611 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_128_128: total: - instructions: 921635587 + instructions: 925555742 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_16_128: total: - instructions: 298926344 + instructions: 300251473 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_256_128: total: - instructions: 1476448577 + instructions: 1482925551 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_1024: total: - instructions: 331723097 + instructions: 337656769 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_128: total: - instructions: 328902616 + instructions: 333839954 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_16: total: - instructions: 332943555 + instructions: 338174754 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_256: total: - instructions: 334271619 + instructions: 340508248 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_32: total: - instructions: 333308190 + instructions: 339595438 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_4: total: - instructions: 330570325 + instructions: 336896704 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_512: total: - instructions: 329379217 + instructions: 334090366 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_64: total: - instructions: 331640411 + instructions: 339081358 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_8: total: - instructions: 331252604 + instructions: 337301632 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_4_128: total: - instructions: 244866658 + instructions: 244740121 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_512_128: total: - instructions: 2622812000 + instructions: 2625290726 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_64_128: total: - instructions: 576398113 + instructions: 582248673 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_8_128: total: - instructions: 265341082 + instructions: 269128362 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_u64_blob8: total: - instructions: 231389818 + instructions: 233256018 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_u64_u64: total: - instructions: 234571046 + instructions: 238556483 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_u64_vec8: total: - instructions: 231389818 + instructions: 233256018 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec8_u64: total: - instructions: 363865474 + instructions: 366392438 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_1024_128: total: - instructions: 2831338815 + instructions: 2831649126 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_128_128: total: - instructions: 696836232 + instructions: 697463829 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_16_128: total: - instructions: 429805265 + instructions: 429709958 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_256_128: total: - instructions: 1213972484 + instructions: 1219637100 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_1024: total: - instructions: 577978742 + instructions: 583325661 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_128: total: - instructions: 489185033 + instructions: 488605668 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_16: total: - instructions: 405008744 + instructions: 407833357 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_256: total: - instructions: 521037355 + instructions: 518646836 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_32: total: - instructions: 405462644 + instructions: 408431266 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_4: total: - instructions: 403519431 + instructions: 406670633 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_512: total: - instructions: 538788189 + instructions: 535001628 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_64: total: - instructions: 461934047 + instructions: 463282662 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_8: total: - instructions: 403356570 + instructions: 406570012 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_4_128: total: - instructions: 397722332 + instructions: 396937070 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_512_128: total: - instructions: 1813147976 + instructions: 1811262338 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_64_128: total: - instructions: 595292478 + instructions: 594718276 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_8_128: total: - instructions: 378137062 + instructions: 389233979 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_10mib_values: total: - instructions: 1227438335 + instructions: 1227477610 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob8_u64: total: - instructions: 297434310 + instructions: 299887024 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_1024_128: total: - instructions: 4951787511 + instructions: 4955392518 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_128_128: total: - instructions: 949302963 + instructions: 947748410 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_16_128: total: - instructions: 320589738 + instructions: 314026459 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_256_128: total: - instructions: 1509206562 + instructions: 1508348279 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_1024: total: - instructions: 358059333 + instructions: 356990156 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_128: total: - instructions: 350707452 + instructions: 347448180 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_16: total: - instructions: 353348466 + instructions: 347299656 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_256: total: - instructions: 356718978 + instructions: 355303994 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_32: total: - instructions: 354219331 + instructions: 349432439 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_4: total: - instructions: 348029515 + instructions: 344295894 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_512: total: - instructions: 353097169 + instructions: 350683063 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_64: total: - instructions: 352954098 + instructions: 350846830 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_8: total: - instructions: 350573859 + instructions: 345200526 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_4_128: total: - instructions: 262677855 + instructions: 257331691 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_512_128: total: - instructions: 2665812755 + instructions: 2661000456 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_64_128: total: - instructions: 601488871 + instructions: 599970891 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_8_128: total: - instructions: 286898634 + instructions: 282280016 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_u64_blob8: total: - instructions: 250017565 + instructions: 243494852 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_u64_u64: total: - instructions: 256706265 + instructions: 250731335 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_u64_vec8: total: - instructions: 251930098 + instructions: 244234847 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec8_u64: total: - instructions: 374122015 + instructions: 376783066 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_1024_128: total: - instructions: 2856597689 + instructions: 2901574721 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_128_128: total: - instructions: 709607342 + instructions: 710234642 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_16_128: total: - instructions: 439737518 + instructions: 439609550 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_256_128: total: - instructions: 1227258042 + instructions: 1232922460 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_1024: total: - instructions: 599978021 + instructions: 597773339 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_128: total: - instructions: 499470578 + instructions: 498889261 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_16: total: - instructions: 413077375 + instructions: 415897245 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_256: total: - instructions: 538970368 + instructions: 538935052 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_32: total: - instructions: 413676756 + instructions: 416645143 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_4: total: - instructions: 411466454 + instructions: 414613272 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_512: total: - instructions: 543377322 + instructions: 558129383 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_64: total: - instructions: 470538835 + instructions: 471860937 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_8: total: - instructions: 411342877 + instructions: 414552400 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_4_128: total: - instructions: 407364152 + instructions: 406578925 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_512_128: total: - instructions: 1826539276 + instructions: 1824668003 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_64_128: total: - instructions: 606773904 + instructions: 606199240 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_8_128: total: - instructions: 388154870 + instructions: 399016651 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_insert_10mib_values: total: - instructions: 5247381607 + instructions: 5247391058 heap_increase: 322 stable_memory_increase: 3613 scopes: {} btreemap_v2_insert_blob8_u64: total: - instructions: 441032184 + instructions: 441373352 heap_increase: 0 stable_memory_increase: 4 scopes: {} btreemap_v2_insert_blob_1024_128: total: - instructions: 5106748945 + instructions: 5106163080 heap_increase: 0 stable_memory_increase: 196 scopes: {} btreemap_v2_insert_blob_128_128: total: - instructions: 1129324662 + instructions: 1134482770 heap_increase: 0 stable_memory_increase: 46 scopes: {} btreemap_v2_insert_blob_16_128: total: - instructions: 493504535 + instructions: 495587755 heap_increase: 0 stable_memory_increase: 24 scopes: {} btreemap_v2_insert_blob_256_128: total: - instructions: 1678818342 + instructions: 1684101470 heap_increase: 0 stable_memory_increase: 67 scopes: {} btreemap_v2_insert_blob_32_1024: total: - instructions: 684286239 + instructions: 687624180 heap_increase: 0 stable_memory_increase: 173 scopes: {} btreemap_v2_insert_blob_32_128: total: - instructions: 526182471 + instructions: 529998238 heap_increase: 0 stable_memory_increase: 28 scopes: {} btreemap_v2_insert_blob_32_16: total: - instructions: 505430171 + instructions: 510178804 heap_increase: 0 stable_memory_increase: 11 scopes: {} btreemap_v2_insert_blob_32_256: total: - instructions: 557130690 + instructions: 561097508 heap_increase: 0 stable_memory_increase: 49 scopes: {} btreemap_v2_insert_blob_32_32: total: - instructions: 510941484 + instructions: 515356067 heap_increase: 0 stable_memory_increase: 13 scopes: {} btreemap_v2_insert_blob_32_4: total: - instructions: 493801642 + instructions: 498526133 heap_increase: 0 stable_memory_increase: 8 scopes: {} btreemap_v2_insert_blob_32_512: total: - instructions: 594780948 + instructions: 598012415 heap_increase: 0 stable_memory_increase: 91 scopes: {} btreemap_v2_insert_blob_32_64: total: - instructions: 516598879 + instructions: 520261508 heap_increase: 0 stable_memory_increase: 18 scopes: {} btreemap_v2_insert_blob_32_8: total: - instructions: 500842430 + instructions: 506047152 heap_increase: 0 stable_memory_increase: 9 scopes: {} btreemap_v2_insert_blob_4_128: total: - instructions: 412410749 + instructions: 411190916 heap_increase: 0 stable_memory_increase: 13 scopes: {} btreemap_v2_insert_blob_512_128: total: - instructions: 2855923459 + instructions: 2856354766 heap_increase: 0 stable_memory_increase: 111 scopes: {} btreemap_v2_insert_blob_64_128: total: - instructions: 773253385 + instructions: 778656834 heap_increase: 0 stable_memory_increase: 34 scopes: {} btreemap_v2_insert_blob_8_128: total: - instructions: 463511327 + instructions: 463637152 heap_increase: 0 stable_memory_increase: 20 scopes: {} btreemap_v2_insert_u64_blob8: total: - instructions: 420165705 + instructions: 422673065 heap_increase: 0 stable_memory_increase: 5 scopes: {} btreemap_v2_insert_u64_u64: total: - instructions: 428784053 + instructions: 431142993 heap_increase: 0 stable_memory_increase: 6 scopes: {} btreemap_v2_insert_u64_vec8: total: - instructions: 425736804 + instructions: 429735780 heap_increase: 0 stable_memory_increase: 21 scopes: {} btreemap_v2_insert_vec8_u64: total: - instructions: 579996622 + instructions: 582161939 heap_increase: 0 stable_memory_increase: 16 scopes: {} btreemap_v2_insert_vec_1024_128: total: - instructions: 3315990001 + instructions: 3320218687 heap_increase: 0 stable_memory_increase: 193 scopes: {} btreemap_v2_insert_vec_128_128: total: - instructions: 1093934829 + instructions: 1097316458 heap_increase: 0 stable_memory_increase: 51 scopes: {} btreemap_v2_insert_vec_16_128: total: - instructions: 703129374 + instructions: 704073865 heap_increase: 0 stable_memory_increase: 31 scopes: {} btreemap_v2_insert_vec_256_128: total: - instructions: 1499382744 + instructions: 1507394441 heap_increase: 0 stable_memory_increase: 71 scopes: {} btreemap_v2_insert_vec_32_1024: total: - instructions: 1221878910 + instructions: 1223025783 heap_increase: 0 stable_memory_increase: 171 scopes: {} btreemap_v2_insert_vec_32_128: total: - instructions: 759896597 + instructions: 761860698 heap_increase: 0 stable_memory_increase: 33 scopes: {} btreemap_v2_insert_vec_32_16: total: - instructions: 661502010 + instructions: 664111576 heap_increase: 0 stable_memory_increase: 20 scopes: {} btreemap_v2_insert_vec_32_256: total: - instructions: 889401216 + instructions: 890884138 heap_increase: 0 stable_memory_increase: 54 scopes: {} btreemap_v2_insert_vec_32_32: total: - instructions: 663274347 + instructions: 666104854 heap_increase: 0 stable_memory_increase: 20 scopes: {} btreemap_v2_insert_vec_32_4: total: - instructions: 658751257 + instructions: 660982082 heap_increase: 0 stable_memory_increase: 20 scopes: {} btreemap_v2_insert_vec_32_512: total: - instructions: 1005199763 + instructions: 1009309654 heap_increase: 0 stable_memory_increase: 91 scopes: {} btreemap_v2_insert_vec_32_64: total: - instructions: 689418054 + instructions: 691846737 heap_increase: 0 stable_memory_increase: 24 scopes: {} btreemap_v2_insert_vec_32_8: total: - instructions: 658797740 + instructions: 660579111 heap_increase: 0 stable_memory_increase: 20 scopes: {} btreemap_v2_insert_vec_4_128: total: - instructions: 608558208 + instructions: 608945447 heap_increase: 0 stable_memory_increase: 16 scopes: {} btreemap_v2_insert_vec_512_128: total: - instructions: 2121579122 + instructions: 2128531367 heap_increase: 0 stable_memory_increase: 112 scopes: {} btreemap_v2_insert_vec_64_128: total: - instructions: 877271955 + instructions: 879671097 heap_increase: 0 stable_memory_increase: 41 scopes: {} btreemap_v2_insert_vec_8_128: total: - instructions: 665810021 + instructions: 666730079 heap_increase: 0 stable_memory_increase: 23 scopes: {} btreemap_v2_mem_manager_contains_blob512_u64: total: - instructions: 2707283290 + instructions: 2716382295 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_contains_u64_blob512: total: - instructions: 308772545 + instructions: 309085018 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_contains_u64_u64: total: - instructions: 312538209 + instructions: 314061355 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_contains_u64_vec512: total: - instructions: 390417972 + instructions: 395977762 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_contains_vec512_u64: total: - instructions: 1749726676 + instructions: 1773578767 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_blob512_u64: total: - instructions: 2752362123 + instructions: 2761459393 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_u64_blob512: total: - instructions: 333198984 + instructions: 326380391 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_u64_u64: total: - instructions: 336204098 + instructions: 328140916 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_u64_vec512: total: - instructions: 427374471 + instructions: 423093906 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_vec512_u64: total: - instructions: 1787291841 + instructions: 1811142474 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_blob512_u64: total: - instructions: 2955955174 + instructions: 2958972800 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_u64_blob512: total: - instructions: 644462309 + instructions: 646615329 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_u64_u64: total: - instructions: 557991985 + instructions: 560299851 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_u64_vec512: total: - instructions: 891669337 + instructions: 898844460 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_vec512_u64: total: - instructions: 2227488234 + instructions: 2251012407 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_blob512_u64: total: - instructions: 3835034819 + instructions: 3844702018 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_u64_blob512: total: - instructions: 948782285 + instructions: 946812832 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_u64_u64: total: - instructions: 810717102 + instructions: 806835295 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_u64_vec512: total: - instructions: 1283006391 + instructions: 1283899492 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_vec512_u64: total: - instructions: 3297384664 + instructions: 3327399755 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob8_u64: total: - instructions: 617303857 + instructions: 610097435 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_1024_128: total: - instructions: 9400875452 + instructions: 9397216286 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_128_128: total: - instructions: 2004881412 + instructions: 2007433379 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_16_128: total: - instructions: 763500904 + instructions: 758505635 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_256_128: total: - instructions: 3085312367 + instructions: 3093241998 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_1024: total: - instructions: 1135710878 + instructions: 1134488534 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_128: total: - instructions: 882120705 + instructions: 878776661 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_16: total: - instructions: 827097840 + instructions: 820290659 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_256: total: - instructions: 912455234 + instructions: 909475486 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_32: total: - instructions: 838869815 + instructions: 832679269 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_4: total: - instructions: 807319067 + instructions: 803396353 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_512: total: - instructions: 977149672 + instructions: 975136110 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_64: total: - instructions: 845239297 + instructions: 840995585 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_8: total: - instructions: 824920261 + instructions: 819129261 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_4_128: total: - instructions: 375377277 + instructions: 372375122 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_512_128: total: - instructions: 5170716867 + instructions: 5170729534 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_64_128: total: - instructions: 1330009074 + instructions: 1329714089 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_8_128: total: - instructions: 617318022 + instructions: 612208263 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_u64_blob8: total: - instructions: 713899333 + instructions: 705892053 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_u64_u64: total: - instructions: 727979729 + instructions: 719150807 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_u64_vec8: total: - instructions: 719801043 + instructions: 710034544 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec8_u64: total: - instructions: 785966609 + instructions: 783784225 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_1024_128: total: - instructions: 5762665068 + instructions: 5768601227 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_128_128: total: - instructions: 1811516659 + instructions: 1815908841 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_16_128: total: - instructions: 1027296998 + instructions: 1025275233 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_256_128: total: - instructions: 2521539128 + instructions: 2526957213 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_1024: total: - instructions: 1814089965 + instructions: 1812672679 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_128: total: - instructions: 1208977447 + instructions: 1205877175 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_16: total: - instructions: 1039721189 + instructions: 1038665239 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_256: total: - instructions: 1328651716 + instructions: 1328280204 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_32: total: - instructions: 1058699254 + instructions: 1055171969 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_4: total: - instructions: 1045400006 + instructions: 1036107253 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_512: total: - instructions: 1491330199 + instructions: 1490507215 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_64: total: - instructions: 1093749625 + instructions: 1090635398 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_8: total: - instructions: 1057049984 + instructions: 1048510168 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_4_128: total: - instructions: 538967951 + instructions: 537971781 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_512_128: total: - instructions: 3598383536 + instructions: 3605170755 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_64_128: total: - instructions: 1401842064 + instructions: 1400023412 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_8_128: total: - instructions: 848169529 + instructions: 846583253 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob8_u64: total: - instructions: 600502538 + instructions: 593267468 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_1024_128: total: - instructions: 9217012025 + instructions: 9217874627 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_128_128: total: - instructions: 1957199634 + instructions: 1959347279 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_16_128: total: - instructions: 744320686 + instructions: 739233011 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_256_128: total: - instructions: 3011499317 + instructions: 3018533213 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_1024: total: - instructions: 1115396827 + instructions: 1114768577 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_128: total: - instructions: 859853922 + instructions: 856410708 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_16: total: - instructions: 806360194 + instructions: 799923507 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_256: total: - instructions: 891320794 + instructions: 888911791 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_32: total: - instructions: 818264570 + instructions: 811998333 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_4: total: - instructions: 793675589 + instructions: 788882349 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_512: total: - instructions: 959083225 + instructions: 957263780 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_64: total: - instructions: 827177067 + instructions: 822799302 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_8: total: - instructions: 804695603 + instructions: 798965415 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_4_128: total: - instructions: 366800060 + instructions: 363906126 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_512_128: total: - instructions: 5053486921 + instructions: 5052214736 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_64_128: total: - instructions: 1309238428 + instructions: 1308620317 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_8_128: total: - instructions: 617173124 + instructions: 612185424 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_u64_blob8: total: - instructions: 701523450 + instructions: 693662883 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_u64_u64: total: - instructions: 714112421 + instructions: 705949750 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_u64_vec8: total: - instructions: 705766018 + instructions: 696415691 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec8_u64: total: - instructions: 766225096 + instructions: 764594107 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_1024_128: total: - instructions: 6012206614 + instructions: 6018998629 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_128_128: total: - instructions: 1828348579 + instructions: 1831437061 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_16_128: total: - instructions: 1015076755 + instructions: 1013525971 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_256_128: total: - instructions: 2574526031 + instructions: 2582856979 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_1024: total: - instructions: 1809327234 + instructions: 1807678468 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_128: total: - instructions: 1207678989 + instructions: 1204371315 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_16: total: - instructions: 1031044920 + instructions: 1028791023 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_256: total: - instructions: 1325556542 + instructions: 1325707543 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_32: total: - instructions: 1048061923 + instructions: 1044763371 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_4: total: - instructions: 1042839808 + instructions: 1033959258 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_512: total: - instructions: 1492706866 + instructions: 1490497731 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_64: total: - instructions: 1088253911 + instructions: 1085292901 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_8: total: - instructions: 1044711670 + instructions: 1035755953 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_4_128: total: - instructions: 530157433 + instructions: 529153123 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_512_128: total: - instructions: 3721776710 + instructions: 3726754094 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_64_128: total: - instructions: 1414358129 + instructions: 1412106259 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_8_128: total: - instructions: 856147026 + instructions: 854240460 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_count_1k_0b: total: - instructions: 16892 + instructions: 16863 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_count_1k_10kib: total: - instructions: 2416565 + instructions: 2433555 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_count_20_10mib: total: - instructions: 20564081 + instructions: 20572756 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_key_sum_1k_0b: total: - instructions: 17501 + instructions: 17472 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_key_sum_1k_10kib: total: - instructions: 57233526 + instructions: 57248241 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_key_sum_20_10mib: total: - instructions: 1105817690 + instructions: 1105826495 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_value_sum_1k_0b: total: - instructions: 17515 + instructions: 17486 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_value_sum_1k_10kib: total: - instructions: 57245522 + instructions: 57260237 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_value_sum_20_10mib: total: - instructions: 1105817926 + instructions: 1105826731 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_10mib_values: total: - instructions: 5573636474 + instructions: 5573675958 heap_increase: 0 stable_memory_increase: 657 scopes: {} btreemap_v2_remove_blob8_u64: total: - instructions: 587085401 + instructions: 589204655 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_1024_128: total: - instructions: 6476180416 + instructions: 6474679665 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_128_128: total: - instructions: 1465625047 + instructions: 1466727057 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_16_128: total: - instructions: 682632734 + instructions: 680456789 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_256_128: total: - instructions: 2188863420 + instructions: 2195090992 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_1024: total: - instructions: 966780709 + instructions: 967043546 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_128: total: - instructions: 733628247 + instructions: 732131285 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_16: total: - instructions: 690627146 + instructions: 687946321 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_256: total: - instructions: 768182232 + instructions: 767243066 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_32: total: - instructions: 699082591 + instructions: 696520229 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_4: total: - instructions: 681465908 + instructions: 680067993 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_512: total: - instructions: 839279049 + instructions: 838959445 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_64: total: - instructions: 722801855 + instructions: 720951953 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_8: total: - instructions: 682765857 + instructions: 679964928 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_4_128: total: - instructions: 457237151 + instructions: 455950575 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_512_128: total: - instructions: 3599019974 + instructions: 3599722153 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_64_128: total: - instructions: 1019995696 + instructions: 1020586460 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_8_128: total: - instructions: 610683599 + instructions: 608937116 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_u64_blob8: total: - instructions: 601041979 + instructions: 598070676 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_u64_u64: total: - instructions: 623526291 + instructions: 620231677 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_u64_vec8: total: - instructions: 607759768 + instructions: 603988416 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec8_u64: total: - instructions: 748907285 + instructions: 751143040 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_1024_128: total: - instructions: 5035938287 + instructions: 4984095519 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_128_128: total: - instructions: 1459354860 + instructions: 1452997160 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_16_128: total: - instructions: 907562607 + instructions: 907562996 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_256_128: total: - instructions: 2315837497 + instructions: 2315915215 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_1024: total: - instructions: 1683646505 + instructions: 1680348770 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_128: total: - instructions: 1012910545 + instructions: 1011708017 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_16: total: - instructions: 832461707 + instructions: 834826918 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_256: total: - instructions: 1238006415 + instructions: 1238341769 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_32: total: - instructions: 839169569 + instructions: 841693645 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_4: total: - instructions: 837549457 + instructions: 840170276 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_512: total: - instructions: 1389586314 + instructions: 1401695456 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_64: total: - instructions: 919280606 + instructions: 924632537 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_8: total: - instructions: 831328078 + instructions: 833854541 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_4_128: total: - instructions: 656203864 + instructions: 647882487 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_512_128: total: - instructions: 3268373381 + instructions: 3266943550 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_64_128: total: - instructions: 1181082626 + instructions: 1179932505 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_8_128: total: - instructions: 817603904 + instructions: 822292826 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_iter_1k_0b: total: - instructions: 1493528 + instructions: 1493608 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_iter_1k_10kib: total: - instructions: 57070019 + instructions: 57070268 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_iter_20_10mib: total: - instructions: 1103719700 + instructions: 1103719780 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_iter_rev_1k_0b: total: - instructions: 1495815 + instructions: 1495895 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_iter_rev_1k_10kib: total: - instructions: 57047806 + instructions: 57048055 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_iter_rev_20_10mib: total: - instructions: 1103719282 + instructions: 1103719362 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_keys_1k_0b: total: - instructions: 948155 + instructions: 948235 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_keys_1k_10kib: total: - instructions: 2361671 + instructions: 2361935 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_keys_20_10mib: total: - instructions: 18465409 + instructions: 18465489 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_keys_rev_1k_0b: total: - instructions: 965540 + instructions: 965620 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_keys_rev_1k_10kib: total: - instructions: 2357719 + instructions: 2357983 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_keys_rev_20_10mib: total: - instructions: 18465744 + instructions: 18465824 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_values_1k_0b: total: - instructions: 1490926 + instructions: 1491006 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_values_1k_10kib: total: - instructions: 57067417 + instructions: 57067666 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_values_20_10mib: total: - instructions: 1103719650 + instructions: 1103719730 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_values_rev_1k_0b: total: - instructions: 1493213 + instructions: 1493293 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_values_rev_1k_10kib: total: - instructions: 57045204 + instructions: 57045453 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_values_rev_20_10mib: total: - instructions: 1103719232 + instructions: 1103719312 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -2437,67 +2437,67 @@ benches: scopes: {} memory_manager_grow: total: - instructions: 346600495 + instructions: 346601964 heap_increase: 2 stable_memory_increase: 32000 scopes: {} memory_manager_overhead: total: - instructions: 1181961433 + instructions: 1181961735 heap_increase: 0 stable_memory_increase: 8320 scopes: {} vec_get_blob_128: total: - instructions: 19216242 + instructions: 19156662 heap_increase: 0 stable_memory_increase: 0 scopes: {} vec_get_blob_16: total: - instructions: 6432226 + instructions: 6375946 heap_increase: 0 stable_memory_increase: 0 scopes: {} vec_get_blob_32: total: - instructions: 7151657 + instructions: 7093505 heap_increase: 0 stable_memory_increase: 0 scopes: {} vec_get_blob_4: total: - instructions: 4869627 + instructions: 4824327 heap_increase: 0 stable_memory_increase: 0 scopes: {} vec_get_blob_4_mem_manager: total: - instructions: 7236977 + instructions: 7191677 heap_increase: 0 stable_memory_increase: 0 scopes: {} vec_get_blob_64: total: - instructions: 11320056 + instructions: 11260944 heap_increase: 0 stable_memory_increase: 0 scopes: {} vec_get_blob_64_mem_manager: total: - instructions: 13640204 + instructions: 13581092 heap_increase: 0 stable_memory_increase: 0 scopes: {} vec_get_blob_8: total: - instructions: 5776205 + instructions: 5723201 heap_increase: 0 stable_memory_increase: 0 scopes: {} vec_get_u64: total: - instructions: 5330306 + instructions: 5270306 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -2539,7 +2539,7 @@ benches: scopes: {} vec_insert_u64: total: - instructions: 5929433 + instructions: 5869520 heap_increase: 0 stable_memory_increase: 1 scopes: {} From 1cb6c4f516d1da50a65d404f2fa0c816fff0fa9b Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Wed, 7 May 2025 13:32:06 +0200 Subject: [PATCH 47/68] canbench_results.csv --- canbench_results.csv | 425 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 425 insertions(+) create mode 100644 canbench_results.csv diff --git a/canbench_results.csv b/canbench_results.csv new file mode 100644 index 00000000..434310d5 --- /dev/null +++ b/canbench_results.csv @@ -0,0 +1,425 @@ +status name instructions instructions % heap_increase heap_increase % stable_memory_increase stable_memory_increase % + btreemap_v1_contains_blob8_u64 211759351 10.06% 0 0 + btreemap_v1_contains_blob_1024_128 2923070314 -39.62% 0 0 + btreemap_v1_contains_blob_128_128 586681710 -30.86% 0 0 + btreemap_v1_contains_blob_16_128 220858136 -3.88% 0 0 + btreemap_v1_contains_blob_256_128 905328105 -35.61% 0 0 + btreemap_v1_contains_blob_32_1024 242119920 -7.01% 0 0 + btreemap_v1_contains_blob_32_128 241308402 -3.84% 0 0 + btreemap_v1_contains_blob_32_16 239873765 -9.13% 0 0 + btreemap_v1_contains_blob_32_256 243386253 -5.01% 0 0 + btreemap_v1_contains_blob_32_32 243575003 -6.91% 0 0 + btreemap_v1_contains_blob_32_4 241410476 -6.97% 0 0 + btreemap_v1_contains_blob_32_512 240957040 -6.14% 0 0 + btreemap_v1_contains_blob_32_64 243475219 -3.84% 0 0 + btreemap_v1_contains_blob_32_8 242676389 -4.28% 0 0 + btreemap_v1_contains_blob_4_128 184183433 12.09% 0 0 + btreemap_v1_contains_blob_512_128 1576846144 -38.36% 0 0 + btreemap_v1_contains_blob_64_128 320540281 -35.80% 0 0 + btreemap_v1_contains_blob_8_128 203452595 6.88% 0 0 + btreemap_v1_contains_u64_blob8 195936121 16.24% 0 0 + btreemap_v1_contains_u64_u64 195637945 16.40% 0 0 + btreemap_v1_get_blob8_u64 228006700 13.53% 0 0 + btreemap_v1_get_blob_1024_128 3063370184 -37.42% 0 0 + btreemap_v1_get_blob_128_128 618071643 -28.66% 0 0 + btreemap_v1_get_blob_16_128 234460160 -4.01% 0 0 + btreemap_v1_get_blob_256_128 953014900 -33.34% 0 0 + btreemap_v1_get_blob_32_1024 261521483 -6.64% 0 0 + btreemap_v1_get_blob_32_128 255664415 -3.31% 0 0 + btreemap_v1_get_blob_32_16 251352906 -7.54% 0 0 + btreemap_v1_get_blob_32_256 258584257 -4.62% 0 0 + btreemap_v1_get_blob_32_32 255953363 -5.15% 0 0 + btreemap_v1_get_blob_32_4 251644862 -5.56% 0 0 + btreemap_v1_get_blob_32_512 257682989 -5.85% 0 0 + btreemap_v1_get_blob_32_64 257137603 -2.69% 0 0 + btreemap_v1_get_blob_32_8 253272462 -3.12% 0 0 + btreemap_v1_get_blob_4_128 197258791 11.19% 0 0 + btreemap_v1_get_blob_512_128 1655392974 -36.15% 0 0 + btreemap_v1_get_blob_64_128 343675563 -33.34% 0 0 + btreemap_v1_get_blob_8_128 217102964 5.79% 0 0 + btreemap_v1_get_u64_blob8 205884318 17.18% 0 0 + btreemap_v1_get_u64_u64 207146407 17.42% 0 0 + btreemap_v1_insert_blob8_u64 396246565 20.00% 0 6 0.00% + btreemap_v1_insert_blob_1024_128 4200937391 -16.24% 0 262 0.00% + btreemap_v1_insert_blob_128_128 959970566 -6.48% 0 61 0.00% + btreemap_v1_insert_blob_16_128 449743412 14.19% 0 32 0.00% + btreemap_v1_insert_blob_256_128 1414931268 -10.15% 0 90 0.00% + btreemap_v1_insert_blob_32_1024 633304276 7.89% 0 230 0.00% + btreemap_v1_insert_blob_32_128 476226800 12.09% 0 37 0.00% + btreemap_v1_insert_blob_32_16 453146051 11.67% 0 14 0.00% + btreemap_v1_insert_blob_32_256 503713185 11.24% 0 66 0.00% + btreemap_v1_insert_blob_32_32 457819021 12.08% 0 17 0.00% + btreemap_v1_insert_blob_32_4 442537289 12.16% 0 11 0.00% + btreemap_v1_insert_blob_32_512 545510072 9.86% 0 121 0.00% + btreemap_v1_insert_blob_32_64 465911227 13.11% 0 24 0.00% + btreemap_v1_insert_blob_32_8 448294913 12.86% 0 12 0.00% + btreemap_v1_insert_blob_4_128 385759253 22.49% 0 17 0.00% + btreemap_v1_insert_blob_512_128 2358031431 -14.43% 0 148 0.00% + btreemap_v1_insert_blob_64_128 589604672 -12.02% 0 46 0.00% + btreemap_v1_insert_blob_8_128 426050413 18.28% 0 27 0.00% + btreemap_v1_insert_u64_blob8 427286535 25.76% 0 7 0.00% + btreemap_v1_insert_u64_u64 433187735 25.44% 0 7 0.00% + btreemap_v1_pop_first_blob8_u64 473557853 6.48% 0 0 + btreemap_v1_pop_first_blob_1024_128 5970419483 -35.54% 0 0 + btreemap_v1_pop_first_blob_128_128 1353296147 -25.55% 0 0 + btreemap_v1_pop_first_blob_16_128 606479509 2.22% 0 0 + btreemap_v1_pop_first_blob_256_128 2003606210 -30.84% 0 0 + btreemap_v1_pop_first_blob_32_1024 944564093 -1.59% 0 0 + btreemap_v1_pop_first_blob_32_128 688721384 -1.51% 0 0 + btreemap_v1_pop_first_blob_32_16 631409287 -2.03% 0 0 + btreemap_v1_pop_first_blob_32_256 722689785 -1.86% 0 0 + btreemap_v1_pop_first_blob_32_32 641576789 -2.26% 0 0 + btreemap_v1_pop_first_blob_32_4 615187906 -1.60% 0 0 + btreemap_v1_pop_first_blob_32_512 791214259 -1.08% 0 0 + btreemap_v1_pop_first_blob_32_64 654987386 -1.91% 0 0 + btreemap_v1_pop_first_blob_32_8 630956289 -1.54% 0 0 + btreemap_v1_pop_first_blob_4_128 313012237 11.43% 0 0 + btreemap_v1_pop_first_blob_512_128 3331966529 -33.52% 0 0 + btreemap_v1_pop_first_blob_64_128 850715002 -26.13% 0 0 + btreemap_v1_pop_first_blob_8_128 499931006 6.56% 0 0 + btreemap_v1_pop_first_u64_blob8 629390088 13.10% 0 0 + btreemap_v1_pop_first_u64_u64 634110263 13.38% 0 0 + btreemap_v1_pop_last_blob8_u64 453208199 5.36% 0 0 + btreemap_v1_pop_last_blob_1024_128 5653622366 -37.62% 0 0 + btreemap_v1_pop_last_blob_128_128 1288294439 -27.35% 0 0 + btreemap_v1_pop_last_blob_16_128 580598535 -0.68% 0 0 + btreemap_v1_pop_last_blob_256_128 1897610675 -32.91% 0 0 + btreemap_v1_pop_last_blob_32_1024 914456697 -2.56% 0 0 + btreemap_v1_pop_last_blob_32_128 658535050 -2.63% 0 0 + btreemap_v1_pop_last_blob_32_16 601805413 -4.25% 0 0 + btreemap_v1_pop_last_blob_32_256 692264004 -3.16% 0 0 + btreemap_v1_pop_last_blob_32_32 613006457 -4.00% 0 0 + btreemap_v1_pop_last_blob_32_4 590425428 -4.20% 0 0 + btreemap_v1_pop_last_blob_32_512 763185085 -2.79% 0 0 + btreemap_v1_pop_last_blob_32_64 626386665 -2.98% 0 0 + btreemap_v1_pop_last_blob_32_8 602414937 -2.73% 0 0 + btreemap_v1_pop_last_blob_4_128 300024062 9.84% 0 0 + btreemap_v1_pop_last_blob_512_128 3166825350 -35.22% 0 0 + btreemap_v1_pop_last_blob_64_128 814156892 -27.39% 0 0 + btreemap_v1_pop_last_blob_8_128 486002981 4.31% 0 0 + btreemap_v1_pop_last_u64_blob8 605635567 11.28% 0 0 + btreemap_v1_pop_last_u64_u64 611140012 11.92% 0 0 + btreemap_v1_remove_blob8_u64 531002231 21.06% 0 0 + btreemap_v1_remove_blob_1024_128 5926512437 -6.80% 0 0 + btreemap_v1_remove_blob_128_128 1320209273 -0.01% 0 0 + btreemap_v1_remove_blob_16_128 622875413 14.92% 0 0 + btreemap_v1_remove_blob_256_128 1958643680 -4.22% 0 0 + btreemap_v1_remove_blob_32_1024 900339296 8.79% 0 0 + btreemap_v1_remove_blob_32_128 666065836 12.57% 0 0 + btreemap_v1_remove_blob_32_16 621144455 13.39% 0 0 + btreemap_v1_remove_blob_32_256 701793569 11.78% 0 0 + btreemap_v1_remove_blob_32_32 630637055 13.45% 0 0 + btreemap_v1_remove_blob_32_4 613532980 13.85% 0 0 + btreemap_v1_remove_blob_32_512 774589473 10.84% 0 0 + btreemap_v1_remove_blob_32_64 656148571 13.63% 0 0 + btreemap_v1_remove_blob_32_8 614925897 13.71% 0 0 + btreemap_v1_remove_blob_4_128 416145277 20.86% 0 0 + btreemap_v1_remove_blob_512_128 3309955653 -4.47% 0 0 + btreemap_v1_remove_blob_64_128 812816693 -7.43% 0 0 + btreemap_v1_remove_blob_8_128 557944980 18.02% 0 0 + btreemap_v1_remove_u64_blob8 603617818 24.26% 0 0 + btreemap_v1_remove_u64_u64 618985724 24.06% 0 0 + btreemap_v2_contains_10mib_values 142229061 0.04% 0 0 + btreemap_v2_contains_blob8_u64 289226191 5.38% 0 0 + btreemap_v2_contains_blob_1024_128 3005203865 -38.52% 0 0 + btreemap_v2_contains_blob_128_128 665161980 -27.83% 0 0 + btreemap_v2_contains_blob_16_128 297834362 -0.37% 0 0 + btreemap_v2_contains_blob_256_128 986418835 -33.19% 0 0 + btreemap_v2_contains_blob_32_1024 320717629 -3.32% 0 0 + btreemap_v2_contains_blob_32_128 320105518 -2.67% 0 0 + btreemap_v2_contains_blob_32_16 319122399 -4.15% 0 0 + btreemap_v2_contains_blob_32_256 322411139 -3.55% 0 0 + btreemap_v2_contains_blob_32_32 323180427 -3.04% 0 0 + btreemap_v2_contains_blob_32_4 320480094 -3.05% 0 0 + btreemap_v2_contains_blob_32_512 319717271 -2.93% 0 0 + btreemap_v2_contains_blob_32_64 322961913 -2.62% 0 0 + btreemap_v2_contains_blob_32_8 321660352 -2.90% 0 0 + btreemap_v2_contains_blob_4_128 264477664 8.01% 0 0 + btreemap_v2_contains_blob_512_128 1657965792 -36.79% 0 0 + btreemap_v2_contains_blob_64_128 399999970 -30.60% 0 0 + btreemap_v2_contains_blob_8_128 276684378 4.27% 0 0 + btreemap_v2_contains_u64_blob8 248830506 7.54% 0 0 + btreemap_v2_contains_u64_u64 252328166 7.57% 0 0 + btreemap_v2_contains_u64_vec8 248830521 7.54% 0 0 + btreemap_v2_contains_vec8_u64 330812594 -9.08% 0 0 + btreemap_v2_contains_vec_1024_128 1843714851 -34.88% 0 0 + btreemap_v2_contains_vec_128_128 558700681 -19.82% 0 0 + btreemap_v2_contains_vec_16_128 381089663 -11.33% 0 0 + btreemap_v2_contains_vec_256_128 913133811 -24.78% 0 0 + btreemap_v2_contains_vec_32_1024 525532811 -9.07% 0 0 + btreemap_v2_contains_vec_32_128 433817678 -11.32% 0 0 + btreemap_v2_contains_vec_32_16 362681237 -10.45% 0 0 + btreemap_v2_contains_vec_32_256 441968223 -15.18% 0 0 + btreemap_v2_contains_vec_32_32 362811328 -10.52% 0 0 + btreemap_v2_contains_vec_32_4 361801209 -10.34% 0 0 + btreemap_v2_contains_vec_32_512 477582588 -11.36% 0 0 + btreemap_v2_contains_vec_32_64 403656070 -12.62% 0 0 + btreemap_v2_contains_vec_32_8 361893193 -10.28% 0 0 + btreemap_v2_contains_vec_4_128 352654217 -11.33% 0 0 + btreemap_v2_contains_vec_512_128 1262723316 -30.36% 0 0 + btreemap_v2_contains_vec_64_128 508396314 -14.60% 0 0 + btreemap_v2_contains_vec_8_128 353928369 -6.40% 0 0 + btreemap_v2_get_10mib_values 1227489038 0.00% 0 0 + btreemap_v2_get_blob8_u64 311375610 4.69% 0 0 + btreemap_v2_get_blob_1024_128 3145327402 -36.48% 0 0 + btreemap_v2_get_blob_128_128 699353541 -26.33% 0 0 + btreemap_v2_get_blob_16_128 312328058 -2.58% 0 0 + btreemap_v2_get_blob_256_128 1033911664 -31.49% 0 0 + btreemap_v2_get_blob_32_1024 341317244 -4.68% 0 0 + btreemap_v2_get_blob_32_128 335497552 -4.34% 0 0 + btreemap_v2_get_blob_32_16 330797351 -6.38% 0 0 + btreemap_v2_get_blob_32_256 338773598 -5.03% 0 0 + btreemap_v2_get_blob_32_32 335953842 -5.16% 0 0 + btreemap_v2_get_blob_32_4 330634736 -5.00% 0 0 + btreemap_v2_get_blob_32_512 337631374 -4.38% 0 0 + btreemap_v2_get_blob_32_64 337542901 -4.37% 0 0 + btreemap_v2_get_blob_32_8 332027903 -5.29% 0 0 + btreemap_v2_get_blob_4_128 277362907 5.59% 0 0 + btreemap_v2_get_blob_512_128 1736330972 -34.87% 0 0 + btreemap_v2_get_blob_64_128 424734913 -29.39% 0 0 + btreemap_v2_get_blob_8_128 290961444 1.42% 0 0 + btreemap_v2_get_u64_blob8 258970434 3.58% 0 0 + btreemap_v2_get_u64_u64 264841316 3.17% 0 0 + btreemap_v2_get_u64_vec8 259682300 3.08% 0 0 + btreemap_v2_get_vec8_u64 342546743 -8.44% 0 0 + btreemap_v2_get_vec_1024_128 1902078541 -33.41% 0 0 + btreemap_v2_get_vec_128_128 571504421 -19.46% 0 0 + btreemap_v2_get_vec_16_128 392344000 -10.78% 0 0 + btreemap_v2_get_vec_256_128 926534339 -24.50% 0 0 + btreemap_v2_get_vec_32_1024 534959850 -10.84% 0 0 + btreemap_v2_get_vec_32_128 444486505 -11.01% 0 0 + btreemap_v2_get_vec_32_16 370797516 -10.24% 0 0 + btreemap_v2_get_vec_32_256 460035533 -14.65% 0 0 + btreemap_v2_get_vec_32_32 371058030 -10.30% 0 0 + btreemap_v2_get_vec_32_4 369795743 -10.13% 0 0 + btreemap_v2_get_vec_32_512 498363887 -8.28% 0 0 + btreemap_v2_get_vec_32_64 412651033 -12.30% 0 0 + btreemap_v2_get_vec_32_8 369932871 -10.07% 0 0 + btreemap_v2_get_vec_4_128 363627402 -10.74% 0 0 + btreemap_v2_get_vec_512_128 1275901478 -30.15% 0 0 + btreemap_v2_get_vec_64_128 519647911 -14.36% 0 0 + btreemap_v2_get_vec_8_128 364617986 -6.06% 0 0 + btreemap_v2_insert_10mib_values 5239496713 -0.15% 322 0.00% 3613 0.00% + btreemap_v2_insert_blob8_u64 501406012 13.69% 0 4 0.00% + btreemap_v2_insert_blob_1024_128 4301642559 -15.77% 0 196 0.00% + btreemap_v2_insert_blob_128_128 1063162256 -5.86% 0 46 0.00% + btreemap_v2_insert_blob_16_128 550704865 11.59% 0 24 0.00% + btreemap_v2_insert_blob_256_128 1518470887 -9.55% 0 67 0.00% + btreemap_v2_insert_blob_32_1024 733519556 7.19% 0 173 0.00% + btreemap_v2_insert_blob_32_128 577751249 9.80% 0 28 0.00% + btreemap_v2_insert_blob_32_16 555295702 9.87% 0 11 0.00% + btreemap_v2_insert_blob_32_256 603998784 8.41% 0 49 0.00% + btreemap_v2_insert_blob_32_32 561181272 9.83% 0 13 0.00% + btreemap_v2_insert_blob_32_4 544246473 10.22% 0 8 0.00% + btreemap_v2_insert_blob_32_512 645597894 8.54% 0 91 0.00% + btreemap_v2_insert_blob_32_64 568401524 10.03% 0 18 0.00% + btreemap_v2_insert_blob_32_8 549872785 9.79% 0 9 0.00% + btreemap_v2_insert_blob_4_128 478337516 15.99% 0 13 0.00% + btreemap_v2_insert_blob_512_128 2460920551 -13.83% 0 111 0.00% + btreemap_v2_insert_blob_64_128 691588465 -10.56% 0 34 0.00% + btreemap_v2_insert_blob_8_128 524887535 13.24% 0 20 0.00% + btreemap_v2_insert_u64_blob8 491267828 16.92% 0 5 0.00% + btreemap_v2_insert_u64_u64 500389354 16.70% 0 6 0.00% + btreemap_v2_insert_u64_vec8 500397911 17.54% 0 21 0.00% + btreemap_v2_insert_vec8_u64 615775979 6.17% 0 16 0.00% + btreemap_v2_insert_vec_1024_128 2789774196 -15.87% 0 193 0.00% + btreemap_v2_insert_vec_128_128 1043230064 -4.64% 0 51 0.00% + btreemap_v2_insert_vec_16_128 738652590 5.05% 0 31 0.00% + btreemap_v2_insert_vec_256_128 1435492594 -4.26% 0 71 0.00% + btreemap_v2_insert_vec_32_1024 1245163592 1.91% 0 171 0.00% + btreemap_v2_insert_vec_32_128 783483944 3.10% 0 33 0.00% + btreemap_v2_insert_vec_32_16 691915077 4.60% 0 20 0.00% + btreemap_v2_insert_vec_32_256 906700575 1.95% 0 54 0.00% + btreemap_v2_insert_vec_32_32 685726202 3.39% 0 20 0.00% + btreemap_v2_insert_vec_32_4 686747488 4.25% 0 20 0.00% + btreemap_v2_insert_vec_32_512 1023452540 1.82% 0 91 0.00% + btreemap_v2_insert_vec_32_64 717393138 4.06% 0 24 0.00% + btreemap_v2_insert_vec_32_8 685924657 4.12% 0 20 0.00% + btreemap_v2_insert_vec_4_128 648453626 6.56% 0 16 0.00% + btreemap_v2_insert_vec_512_128 1905084957 -10.20% 0 112 0.00% + btreemap_v2_insert_vec_64_128 874271746 -0.34% 0 41 0.00% + btreemap_v2_insert_vec_8_128 706827447 6.16% 0 23 0.00% + btreemap_v2_mem_manager_contains_blob512_u64 1774999668 -34.44% 0 0 + btreemap_v2_mem_manager_contains_u64_blob512 313977726 1.69% 0 0 + btreemap_v2_mem_manager_contains_u64_u64 317618134 1.63% 0 0 + btreemap_v2_mem_manager_contains_u64_vec512 399550369 2.34% 0 0 + btreemap_v2_mem_manager_contains_vec512_u64 1258962439 -28.05% 0 0 + btreemap_v2_mem_manager_get_blob512_u64 1862858506 -32.32% 0 0 + btreemap_v2_mem_manager_get_u64_blob512 332256827 -0.28% 0 0 + btreemap_v2_mem_manager_get_u64_u64 330627562 -1.66% 0 0 + btreemap_v2_mem_manager_get_u64_vec512 428458229 0.25% 0 0 + btreemap_v2_mem_manager_get_vec512_u64 1304137627 -27.03% 0 0 + btreemap_v2_mem_manager_insert_blob512_u64 2600002993 -12.04% 0 0 + btreemap_v2_mem_manager_insert_u64_blob512 706443234 9.62% 0 0 + btreemap_v2_mem_manager_insert_u64_u64 620833749 11.26% 0 0 + btreemap_v2_mem_manager_insert_u64_vec512 960101805 7.67% 0 0 + btreemap_v2_mem_manager_insert_vec512_u64 2034628657 -8.66% 0 0 + btreemap_v2_mem_manager_remove_blob512_u64 3735769042 -2.59% 0 0 + btreemap_v2_mem_manager_remove_u64_blob512 1034316689 9.02% 0 0 + btreemap_v2_mem_manager_remove_u64_u64 891255172 9.93% 0 0 + btreemap_v2_mem_manager_remove_u64_vec512 1374321734 7.12% 0 0 + btreemap_v2_mem_manager_remove_vec512_u64 3208154994 -2.71% 0 0 + btreemap_v2_pop_first_blob8_u64 631088340 2.23% 0 0 + btreemap_v2_pop_first_blob_1024_128 6148488854 -34.60% 0 0 + btreemap_v2_pop_first_blob_128_128 1533695548 -23.50% 0 0 + btreemap_v2_pop_first_blob_16_128 765876708 0.31% 0 0 + btreemap_v2_pop_first_blob_256_128 2187144686 -29.11% 0 0 + btreemap_v2_pop_first_blob_32_1024 1117750658 -1.58% 0 0 + btreemap_v2_pop_first_blob_32_128 862534207 -2.22% 0 0 + btreemap_v2_pop_first_blob_32_16 804111934 -2.78% 0 0 + btreemap_v2_pop_first_blob_32_256 894498313 -1.97% 0 0 + btreemap_v2_pop_first_blob_32_32 813850354 -2.98% 0 0 + btreemap_v2_pop_first_blob_32_4 787641034 -2.44% 0 0 + btreemap_v2_pop_first_blob_32_512 961994628 -1.55% 0 0 + btreemap_v2_pop_first_blob_32_64 825807026 -2.30% 0 0 + btreemap_v2_pop_first_blob_32_8 804781651 -2.44% 0 0 + btreemap_v2_pop_first_blob_4_128 399767601 6.50% 0 0 + btreemap_v2_pop_first_blob_512_128 3511373203 -32.09% 0 0 + btreemap_v2_pop_first_blob_64_128 1026931135 -22.79% 0 0 + btreemap_v2_pop_first_blob_8_128 635221526 2.90% 0 0 + btreemap_v2_pop_first_u64_blob8 754042045 5.62% 0 0 + btreemap_v2_pop_first_u64_u64 769803712 5.75% 0 0 + btreemap_v2_pop_first_u64_vec8 758178172 5.33% 0 0 + btreemap_v2_pop_first_vec8_u64 733451417 -6.68% 0 0 + btreemap_v2_pop_first_vec_1024_128 4085492377 -29.10% 0 0 + btreemap_v2_pop_first_vec_128_128 1540727192 -14.95% 0 0 + btreemap_v2_pop_first_vec_16_128 969444515 -5.63% 0 0 + btreemap_v2_pop_first_vec_256_128 2055925554 -18.47% 0 0 + btreemap_v2_pop_first_vec_32_1024 1716234050 -5.39% 0 0 + btreemap_v2_pop_first_vec_32_128 1116028836 -7.69% 0 0 + btreemap_v2_pop_first_vec_32_16 962987550 -7.38% 0 0 + btreemap_v2_pop_first_vec_32_256 1244569779 -6.33% 0 0 + btreemap_v2_pop_first_vec_32_32 956119681 -9.69% 0 0 + btreemap_v2_pop_first_vec_32_4 949164944 -9.21% 0 0 + btreemap_v2_pop_first_vec_32_512 1400657612 -6.08% 0 0 + btreemap_v2_pop_first_vec_32_64 1002684437 -8.33% 0 0 + btreemap_v2_pop_first_vec_32_8 960390900 -9.14% 0 0 + btreemap_v2_pop_first_vec_4_128 519698941 -3.58% 0 0 + btreemap_v2_pop_first_vec_512_128 2758804409 -23.33% 0 0 + btreemap_v2_pop_first_vec_64_128 1263023099 -9.90% 0 0 + btreemap_v2_pop_first_vec_8_128 809323878 -4.58% 0 0 + btreemap_v2_pop_last_blob8_u64 607439368 1.16% 0 0 + btreemap_v2_pop_last_blob_1024_128 5832426499 -36.72% 0 0 + btreemap_v2_pop_last_blob_128_128 1467537205 -25.02% 0 0 + btreemap_v2_pop_last_blob_16_128 739718766 -0.62% 0 0 + btreemap_v2_pop_last_blob_256_128 2081004971 -30.90% 0 0 + btreemap_v2_pop_last_blob_32_1024 1086858863 -2.56% 0 0 + btreemap_v2_pop_last_blob_32_128 832469601 -3.18% 0 0 + btreemap_v2_pop_last_blob_32_16 772186199 -4.24% 0 0 + btreemap_v2_pop_last_blob_32_256 863409770 -3.13% 0 0 + btreemap_v2_pop_last_blob_32_32 783418714 -4.26% 0 0 + btreemap_v2_pop_last_blob_32_4 762427090 -3.94% 0 0 + btreemap_v2_pop_last_blob_32_512 934735771 -2.54% 0 0 + btreemap_v2_pop_last_blob_32_64 797724621 -3.56% 0 0 + btreemap_v2_pop_last_blob_32_8 773667111 -3.86% 0 0 + btreemap_v2_pop_last_blob_4_128 386680341 5.42% 0 0 + btreemap_v2_pop_last_blob_512_128 3346682035 -33.77% 0 0 + btreemap_v2_pop_last_blob_64_128 991695186 -24.25% 0 0 + btreemap_v2_pop_last_blob_8_128 625286841 1.31% 0 0 + btreemap_v2_pop_last_u64_blob8 729561134 4.00% 0 0 + btreemap_v2_pop_last_u64_u64 745541863 4.40% 0 0 + btreemap_v2_pop_last_u64_vec8 733261353 3.90% 0 0 + btreemap_v2_pop_last_vec8_u64 709505630 -7.40% 0 0 + btreemap_v2_pop_last_vec_1024_128 4309218972 -28.33% 0 0 + btreemap_v2_pop_last_vec_128_128 1553713281 -15.02% 0 0 + btreemap_v2_pop_last_vec_16_128 947485094 -6.66% 0 0 + btreemap_v2_pop_last_vec_256_128 2130596399 -17.24% 0 0 + btreemap_v2_pop_last_vec_32_1024 1698020522 -6.15% 0 0 + btreemap_v2_pop_last_vec_32_128 1097506258 -9.12% 0 0 + btreemap_v2_pop_last_vec_32_16 941565660 -8.68% 0 0 + btreemap_v2_pop_last_vec_32_256 1227274752 -7.41% 0 0 + btreemap_v2_pop_last_vec_32_32 936683027 -10.63% 0 0 + btreemap_v2_pop_last_vec_32_4 934322536 -10.41% 0 0 + btreemap_v2_pop_last_vec_32_512 1390764407 -6.83% 0 0 + btreemap_v2_pop_last_vec_32_64 983151868 -9.66% 0 0 + btreemap_v2_pop_last_vec_32_8 938072784 -10.21% 0 0 + btreemap_v2_pop_last_vec_4_128 504146543 -4.91% 0 0 + btreemap_v2_pop_last_vec_512_128 2874258445 -22.77% 0 0 + btreemap_v2_pop_last_vec_64_128 1256318631 -11.17% 0 0 + btreemap_v2_pop_last_vec_8_128 801981363 -6.33% 0 0 + btreemap_v2_range_count_1k_0b 20349 20.47% 0 0 + btreemap_v2_range_count_1k_10kib 3045335 26.02% 0 0 + btreemap_v2_range_count_20_10mib 20585137 0.10% 0 0 + btreemap_v2_range_key_sum_1k_0b 20840 19.08% 0 0 + btreemap_v2_range_key_sum_1k_10kib 57762193 0.92% 0 0 + btreemap_v2_range_key_sum_20_10mib 1105837398 0.00% 0 0 + btreemap_v2_range_value_sum_1k_0b 20854 19.06% 0 0 + btreemap_v2_range_value_sum_1k_10kib 57774189 0.92% 0 0 + btreemap_v2_range_value_sum_20_10mib 1105837634 0.00% 0 0 + btreemap_v2_remove_10mib_values 5564493299 -0.16% 0 657 0.00% + btreemap_v2_remove_blob8_u64 668804448 13.92% 0 0 + btreemap_v2_remove_blob_1024_128 6065208536 -6.35% 0 0 + btreemap_v2_remove_blob_128_128 1459264335 -0.43% 0 0 + btreemap_v2_remove_blob_16_128 758014983 11.04% 0 0 + btreemap_v2_remove_blob_256_128 2099751636 -4.07% 0 0 + btreemap_v2_remove_blob_32_1024 1037909662 7.36% 0 0 + btreemap_v2_remove_blob_32_128 803140084 9.48% 0 0 + btreemap_v2_remove_blob_32_16 756969960 9.61% 0 0 + btreemap_v2_remove_blob_32_256 838700580 9.18% 0 0 + btreemap_v2_remove_blob_32_32 767167635 9.74% 0 0 + btreemap_v2_remove_blob_32_4 751873616 10.33% 0 0 + btreemap_v2_remove_blob_32_512 912806115 8.76% 0 0 + btreemap_v2_remove_blob_32_64 795027356 9.99% 0 0 + btreemap_v2_remove_blob_32_8 750612254 9.94% 0 0 + btreemap_v2_remove_blob_4_128 522853604 14.35% 0 0 + btreemap_v2_remove_blob_512_128 3450228763 -4.13% 0 0 + btreemap_v2_remove_blob_64_128 948856984 -6.97% 0 0 + btreemap_v2_remove_blob_8_128 686452108 12.41% 0 0 + btreemap_v2_remove_u64_blob8 689742274 14.76% 0 0 + btreemap_v2_remove_u64_u64 713265933 14.39% 0 0 + btreemap_v2_remove_u64_vec8 696380317 14.58% 0 0 + btreemap_v2_remove_vec8_u64 806781054 7.73% 0 0 + btreemap_v2_remove_vec_1024_128 4539882292 -9.85% 0 0 + btreemap_v2_remove_vec_128_128 1464082933 0.32% 0 0 + btreemap_v2_remove_vec_16_128 975339295 7.47% 0 0 + btreemap_v2_remove_vec_256_128 2294300929 -0.93% 0 0 + btreemap_v2_remove_vec_32_1024 1733753822 2.98% 0 0 + btreemap_v2_remove_vec_32_128 1070855323 5.72% 0 0 + btreemap_v2_remove_vec_32_16 891843519 7.13% 0 0 + btreemap_v2_remove_vec_32_256 1280799340 3.46% 0 0 + btreemap_v2_remove_vec_32_32 898799502 7.11% 0 0 + btreemap_v2_remove_vec_32_4 897668964 7.18% 0 0 + btreemap_v2_remove_vec_32_512 1455570807 4.75% 0 0 + btreemap_v2_remove_vec_32_64 983544352 6.99% 0 0 + btreemap_v2_remove_vec_32_8 891552185 7.24% 0 0 + btreemap_v2_remove_vec_4_128 688616727 4.94% 0 0 + btreemap_v2_remove_vec_512_128 3131183908 -4.20% 0 0 + btreemap_v2_remove_vec_64_128 1193393218 1.04% 0 0 + btreemap_v2_remove_vec_8_128 877538654 7.33% 0 0 + btreemap_v2_scan_iter_1k_0b 2040278 36.61% 0 0 + btreemap_v2_scan_iter_1k_10kib 57556076 0.85% 0 0 + btreemap_v2_scan_iter_20_10mib 1103728361 0.00% 0 0 + btreemap_v2_scan_iter_rev_1k_0b 2042771 36.57% 0 0 + btreemap_v2_scan_iter_rev_1k_10kib 57527921 0.84% 0 0 + btreemap_v2_scan_iter_rev_20_10mib 1103728224 0.00% 0 0 + btreemap_v2_scan_keys_1k_0b 1646692 73.67% 0 0 + btreemap_v2_scan_keys_1k_10kib 3053417 29.29% 0 0 + btreemap_v2_scan_keys_20_10mib 18479257 0.07% 0 0 + btreemap_v2_scan_keys_rev_1k_0b 1647441 70.62% 0 0 + btreemap_v2_scan_keys_rev_1k_10kib 3035323 28.74% 0 0 + btreemap_v2_scan_keys_rev_20_10mib 18479261 0.07% 0 0 + btreemap_v2_scan_values_1k_0b 2017444 35.31% 0 0 + btreemap_v2_scan_values_1k_10kib 57533242 0.82% 0 0 + btreemap_v2_scan_values_20_10mib 1103727903 0.00% 0 0 + btreemap_v2_scan_values_rev_1k_0b 2019543 35.25% 0 0 + btreemap_v2_scan_values_rev_1k_10kib 57504693 0.81% 0 0 + btreemap_v2_scan_values_rev_20_10mib 1103727760 0.00% 0 0 +new memory_manager_baseline 1176576907 0 8000 +new memory_manager_grow 346601964 2 32000 +new memory_manager_overhead 1181961735 0 8320 +new vec_get_blob_128 19156662 0 0 +new vec_get_blob_16 6375946 0 0 +new vec_get_blob_32 7093505 0 0 +new vec_get_blob_4 4824327 0 0 +new vec_get_blob_4_mem_manager 7191677 0 0 +new vec_get_blob_64 11260944 0 0 +new vec_get_blob_64_mem_manager 13581092 0 0 +new vec_get_blob_8 5723201 0 0 +new vec_get_u64 5270306 0 0 +new vec_insert_blob_128 4151425 0 19 +new vec_insert_blob_16 3316228 0 2 +new vec_insert_blob_32 3435468 0 5 +new vec_insert_blob_4 3227469 0 0 +new vec_insert_blob_64 3675805 0 9 +new vec_insert_blob_8 3256890 0 1 +new vec_insert_u64 5869520 0 1 From d8f568b02f0c02ba913d8a4e8c164fcab81f51df Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Wed, 7 May 2025 14:30:26 +0200 Subject: [PATCH 48/68] add canbench_results.csv --- canbench_results.csv | 794 +++++++++++++++++++++---------------------- 1 file changed, 397 insertions(+), 397 deletions(-) diff --git a/canbench_results.csv b/canbench_results.csv index 72da453f..0334697d 100644 --- a/canbench_results.csv +++ b/canbench_results.csv @@ -1,425 +1,425 @@ status name instructions instructions % heap_increase heap_increase % stable_memory_increase stable_memory_increase % - btreemap_v1_contains_blob8_u64 194964325 1.33% 0 0 - btreemap_v1_contains_blob_1024_128 4811678256 -0.61% 0 0 - btreemap_v1_contains_blob_128_128 848821075 0.03% 0 0 - btreemap_v1_contains_blob_16_128 227130263 -1.15% 0 0 - btreemap_v1_contains_blob_256_128 1400918183 -0.36% 0 0 - btreemap_v1_contains_blob_32_1024 258423010 -0.75% 0 0 - btreemap_v1_contains_blob_32_128 252967804 0.81% 0 0 - btreemap_v1_contains_blob_32_16 262136410 -0.70% 0 0 - btreemap_v1_contains_blob_32_256 258805575 1.01% 0 0 - btreemap_v1_contains_blob_32_32 260774803 -0.33% 0 0 - btreemap_v1_contains_blob_32_4 257441140 -0.79% 0 0 - btreemap_v1_contains_blob_32_512 255106465 -0.62% 0 0 - btreemap_v1_contains_blob_32_64 254263738 0.42% 0 0 - btreemap_v1_contains_blob_32_8 256262361 1.08% 0 0 - btreemap_v1_contains_blob_4_128 165470839 0.71% 0 0 - btreemap_v1_contains_blob_512_128 2543816260 -0.56% 0 0 - btreemap_v1_contains_blob_64_128 494398463 -0.98% 0 0 - btreemap_v1_contains_blob_8_128 188408544 -1.02% 0 0 - btreemap_v1_contains_u64_blob8 165774167 -1.65% 0 0 - btreemap_v1_contains_u64_u64 165565754 -1.49% 0 0 - btreemap_v1_get_blob8_u64 203390426 1.27% 0 0 - btreemap_v1_get_blob_1024_128 4868477772 -0.54% 0 0 - btreemap_v1_get_blob_128_128 867025588 0.07% 0 0 - btreemap_v1_get_blob_16_128 240229350 -1.65% 0 0 - btreemap_v1_get_blob_256_128 1426193247 -0.25% 0 0 - btreemap_v1_get_blob_32_1024 276684587 -1.22% 0 0 - btreemap_v1_get_blob_32_128 265367267 0.36% 0 0 - btreemap_v1_get_blob_32_16 270023113 -0.67% 0 0 - btreemap_v1_get_blob_32_256 272563236 0.53% 0 0 - btreemap_v1_get_blob_32_32 269464920 -0.14% 0 0 - btreemap_v1_get_blob_32_4 264590610 -0.70% 0 0 - btreemap_v1_get_blob_32_512 270506018 -1.16% 0 0 - btreemap_v1_get_blob_32_64 264723575 0.18% 0 0 - btreemap_v1_get_blob_32_8 264461611 1.16% 0 0 - btreemap_v1_get_blob_4_128 178539304 0.64% 0 0 - btreemap_v1_get_blob_512_128 2578989071 -0.53% 0 0 - btreemap_v1_get_blob_64_128 508633530 -1.35% 0 0 - btreemap_v1_get_blob_8_128 201236677 -1.94% 0 0 - btreemap_v1_get_u64_blob8 173008513 -1.53% 0 0 - btreemap_v1_get_u64_u64 173995203 -1.37% 0 0 - btreemap_v1_insert_blob8_u64 329986725 -0.06% 0 6 0.00% - btreemap_v1_insert_blob_1024_128 5007942824 -0.15% 0 262 0.00% - btreemap_v1_insert_blob_128_128 1026805160 0.03% 0 61 0.00% - btreemap_v1_insert_blob_16_128 391942071 -0.49% 0 32 0.00% - btreemap_v1_insert_blob_256_128 1576965603 0.14% 0 90 0.00% - btreemap_v1_insert_blob_32_1024 585609756 -0.24% 0 230 0.00% - btreemap_v1_insert_blob_32_128 424489333 -0.08% 0 37 0.00% - btreemap_v1_insert_blob_32_16 405326475 -0.12% 0 14 0.00% - btreemap_v1_insert_blob_32_256 454178716 0.30% 0 66 0.00% - btreemap_v1_insert_blob_32_32 408531668 0.01% 0 17 0.00% - btreemap_v1_insert_blob_32_4 393759972 -0.20% 0 11 0.00% - btreemap_v1_insert_blob_32_512 495214435 -0.27% 0 121 0.00% - btreemap_v1_insert_blob_32_64 412537755 0.16% 0 24 0.00% - btreemap_v1_insert_blob_32_8 398133513 0.23% 0 12 0.00% - btreemap_v1_insert_blob_4_128 313593329 -0.43% 0 17 0.00% - btreemap_v1_insert_blob_512_128 2754557121 -0.04% 0 148 0.00% - btreemap_v1_insert_blob_64_128 671082804 0.14% 0 46 0.00% - btreemap_v1_insert_blob_8_128 358579533 -0.45% 0 27 0.00% - btreemap_v1_insert_u64_blob8 339932921 0.05% 0 7 0.00% - btreemap_v1_insert_u64_u64 345608503 0.08% 0 7 0.00% - btreemap_v1_pop_first_blob8_u64 441600212 -0.70% 0 0 - btreemap_v1_pop_first_blob_1024_128 9210292778 -0.55% 0 0 - btreemap_v1_pop_first_blob_128_128 1819146872 0.08% 0 0 - btreemap_v1_pop_first_blob_16_128 588472296 -0.81% 0 0 - btreemap_v1_pop_first_blob_256_128 2896727052 -0.01% 0 0 - btreemap_v1_pop_first_blob_32_1024 958303933 -0.16% 0 0 - btreemap_v1_pop_first_blob_32_128 696856907 -0.35% 0 0 - btreemap_v1_pop_first_blob_32_16 643862300 -0.10% 0 0 - btreemap_v1_pop_first_blob_32_256 733623810 -0.38% 0 0 - btreemap_v1_pop_first_blob_32_32 654116869 -0.35% 0 0 - btreemap_v1_pop_first_blob_32_4 624710634 -0.08% 0 0 - btreemap_v1_pop_first_blob_32_512 799092498 -0.10% 0 0 - btreemap_v1_pop_first_blob_32_64 663763332 -0.59% 0 0 - btreemap_v1_pop_first_blob_32_8 640838262 0.01% 0 0 - btreemap_v1_pop_first_blob_4_128 279547807 -0.48% 0 0 - btreemap_v1_pop_first_blob_512_128 4985501756 -0.53% 0 0 - btreemap_v1_pop_first_blob_64_128 1148383275 -0.28% 0 0 - btreemap_v1_pop_first_blob_8_128 466033258 -0.67% 0 0 - btreemap_v1_pop_first_u64_blob8 554388115 -0.38% 0 0 - btreemap_v1_pop_first_u64_u64 557488351 -0.32% 0 0 - btreemap_v1_pop_last_blob8_u64 426716755 -0.79% 0 0 - btreemap_v1_pop_last_blob_1024_128 9027882338 -0.40% 0 0 - btreemap_v1_pop_last_blob_128_128 1774788118 0.09% 0 0 - btreemap_v1_pop_last_blob_16_128 579169231 -0.92% 0 0 - btreemap_v1_pop_last_blob_256_128 2829351769 0.04% 0 0 - btreemap_v1_pop_last_blob_32_1024 937223741 -0.14% 0 0 - btreemap_v1_pop_last_blob_32_128 674115649 -0.33% 0 0 - btreemap_v1_pop_last_blob_32_16 624838280 -0.58% 0 0 - btreemap_v1_pop_last_blob_32_256 711983530 -0.40% 0 0 - btreemap_v1_pop_last_blob_32_32 635001845 -0.55% 0 0 - btreemap_v1_pop_last_blob_32_4 612396356 -0.64% 0 0 - btreemap_v1_pop_last_blob_32_512 781703090 -0.43% 0 0 - btreemap_v1_pop_last_blob_32_64 643402362 -0.34% 0 0 - btreemap_v1_pop_last_blob_32_8 617542418 -0.29% 0 0 - btreemap_v1_pop_last_blob_4_128 271975462 -0.43% 0 0 - btreemap_v1_pop_last_blob_512_128 4867658077 -0.42% 0 0 - btreemap_v1_pop_last_blob_64_128 1116571899 -0.42% 0 0 - btreemap_v1_pop_last_blob_8_128 462788982 -0.67% 0 0 - btreemap_v1_pop_last_u64_blob8 541957924 -0.42% 0 0 - btreemap_v1_pop_last_u64_u64 544107722 -0.35% 0 0 - btreemap_v1_remove_blob8_u64 440652789 0.46% 0 0 - btreemap_v1_remove_blob_1024_128 6330406626 -0.45% 0 0 - btreemap_v1_remove_blob_128_128 1321192633 0.06% 0 0 - btreemap_v1_remove_blob_16_128 539010219 -0.56% 0 0 - btreemap_v1_remove_blob_256_128 2046189107 0.06% 0 0 - btreemap_v1_remove_blob_32_1024 826965331 -0.08% 0 0 - btreemap_v1_remove_blob_32_128 589987880 -0.29% 0 0 - btreemap_v1_remove_blob_32_16 546351365 -0.26% 0 0 - btreemap_v1_remove_blob_32_256 626317576 -0.24% 0 0 - btreemap_v1_remove_blob_32_32 555010200 -0.16% 0 0 - btreemap_v1_remove_blob_32_4 538629074 -0.05% 0 0 - btreemap_v1_remove_blob_32_512 697870456 -0.13% 0 0 - btreemap_v1_remove_blob_32_64 576024269 -0.25% 0 0 - btreemap_v1_remove_blob_32_8 539283194 -0.28% 0 0 - btreemap_v1_remove_blob_4_128 344004557 -0.10% 0 0 - btreemap_v1_remove_blob_512_128 3456175013 -0.25% 0 0 - btreemap_v1_remove_blob_64_128 876109417 -0.22% 0 0 - btreemap_v1_remove_blob_8_128 470964477 -0.38% 0 0 - btreemap_v1_remove_u64_blob8 486384152 0.13% 0 0 - btreemap_v1_remove_u64_u64 499799718 0.17% 0 0 - btreemap_v2_contains_10mib_values 142217957 0.03% 0 0 - btreemap_v2_contains_blob8_u64 277214343 1.00% 0 0 - btreemap_v2_contains_blob_1024_128 4898946611 0.22% 0 0 - btreemap_v2_contains_blob_128_128 925555742 0.43% 0 0 - btreemap_v2_contains_blob_16_128 300251473 0.44% 0 0 - btreemap_v2_contains_blob_256_128 1482925551 0.44% 0 0 - btreemap_v2_contains_blob_32_1024 337656769 1.79% 0 0 - btreemap_v2_contains_blob_32_128 333839954 1.50% 0 0 - btreemap_v2_contains_blob_32_16 338174754 1.57% 0 0 - btreemap_v2_contains_blob_32_256 340508248 1.87% 0 0 - btreemap_v2_contains_blob_32_32 339595438 1.89% 0 0 - btreemap_v2_contains_blob_32_4 336896704 1.91% 0 0 - btreemap_v2_contains_blob_32_512 334090366 1.43% 0 0 - btreemap_v2_contains_blob_32_64 339081358 2.24% 0 0 - btreemap_v2_contains_blob_32_8 337301632 1.83% 0 0 - btreemap_v2_contains_blob_4_128 244740121 -0.05% 0 0 - btreemap_v2_contains_blob_512_128 2625290726 0.09% 0 0 - btreemap_v2_contains_blob_64_128 582248673 1.02% 0 0 - btreemap_v2_contains_blob_8_128 269128362 1.43% 0 0 - btreemap_v2_contains_u64_blob8 233256018 0.81% 0 0 - btreemap_v2_contains_u64_u64 238556483 1.70% 0 0 - btreemap_v2_contains_u64_vec8 233256018 0.81% 0 0 - btreemap_v2_contains_vec8_u64 366392438 0.69% 0 0 - btreemap_v2_contains_vec_1024_128 2831649126 0.01% 0 0 - btreemap_v2_contains_vec_128_128 697463829 0.09% 0 0 - btreemap_v2_contains_vec_16_128 429709958 -0.02% 0 0 - btreemap_v2_contains_vec_256_128 1219637100 0.47% 0 0 - btreemap_v2_contains_vec_32_1024 583325661 0.93% 0 0 - btreemap_v2_contains_vec_32_128 488605668 -0.12% 0 0 - btreemap_v2_contains_vec_32_16 407833357 0.70% 0 0 - btreemap_v2_contains_vec_32_256 518646836 -0.46% 0 0 - btreemap_v2_contains_vec_32_32 408431266 0.73% 0 0 - btreemap_v2_contains_vec_32_4 406670633 0.78% 0 0 - btreemap_v2_contains_vec_32_512 535001628 -0.70% 0 0 - btreemap_v2_contains_vec_32_64 463282662 0.29% 0 0 - btreemap_v2_contains_vec_32_8 406570012 0.80% 0 0 - btreemap_v2_contains_vec_4_128 396937070 -0.20% 0 0 - btreemap_v2_contains_vec_512_128 1811262338 -0.10% 0 0 - btreemap_v2_contains_vec_64_128 594718276 -0.10% 0 0 - btreemap_v2_contains_vec_8_128 389233979 2.93% 0 0 + btreemap_v1_contains_blob8_u64 194964325 0.00% 0 0 + btreemap_v1_contains_blob_1024_128 4811678256 0.00% 0 0 + btreemap_v1_contains_blob_128_128 848821075 0.00% 0 0 + btreemap_v1_contains_blob_16_128 227130263 0.00% 0 0 + btreemap_v1_contains_blob_256_128 1400918183 0.00% 0 0 + btreemap_v1_contains_blob_32_1024 258423010 0.00% 0 0 + btreemap_v1_contains_blob_32_128 252967804 0.00% 0 0 + btreemap_v1_contains_blob_32_16 262136410 0.00% 0 0 + btreemap_v1_contains_blob_32_256 258805575 0.00% 0 0 + btreemap_v1_contains_blob_32_32 260774803 0.00% 0 0 + btreemap_v1_contains_blob_32_4 257441140 0.00% 0 0 + btreemap_v1_contains_blob_32_512 255106465 0.00% 0 0 + btreemap_v1_contains_blob_32_64 254263738 0.00% 0 0 + btreemap_v1_contains_blob_32_8 256262361 0.00% 0 0 + btreemap_v1_contains_blob_4_128 165470839 0.00% 0 0 + btreemap_v1_contains_blob_512_128 2543816260 0.00% 0 0 + btreemap_v1_contains_blob_64_128 494398463 0.00% 0 0 + btreemap_v1_contains_blob_8_128 188408544 0.00% 0 0 + btreemap_v1_contains_u64_blob8 165774167 0.00% 0 0 + btreemap_v1_contains_u64_u64 165565754 0.00% 0 0 + btreemap_v1_get_blob8_u64 203390426 0.00% 0 0 + btreemap_v1_get_blob_1024_128 4868477772 0.00% 0 0 + btreemap_v1_get_blob_128_128 867025588 0.00% 0 0 + btreemap_v1_get_blob_16_128 240229350 0.00% 0 0 + btreemap_v1_get_blob_256_128 1426193247 0.00% 0 0 + btreemap_v1_get_blob_32_1024 276684587 0.00% 0 0 + btreemap_v1_get_blob_32_128 265367267 0.00% 0 0 + btreemap_v1_get_blob_32_16 270023113 0.00% 0 0 + btreemap_v1_get_blob_32_256 272563236 0.00% 0 0 + btreemap_v1_get_blob_32_32 269464920 0.00% 0 0 + btreemap_v1_get_blob_32_4 264590610 0.00% 0 0 + btreemap_v1_get_blob_32_512 270506018 0.00% 0 0 + btreemap_v1_get_blob_32_64 264723575 0.00% 0 0 + btreemap_v1_get_blob_32_8 264461611 0.00% 0 0 + btreemap_v1_get_blob_4_128 178539304 0.00% 0 0 + btreemap_v1_get_blob_512_128 2578989071 0.00% 0 0 + btreemap_v1_get_blob_64_128 508633530 0.00% 0 0 + btreemap_v1_get_blob_8_128 201236677 0.00% 0 0 + btreemap_v1_get_u64_blob8 173008513 0.00% 0 0 + btreemap_v1_get_u64_u64 173995203 0.00% 0 0 + btreemap_v1_insert_blob8_u64 329986725 0.00% 0 6 0.00% + btreemap_v1_insert_blob_1024_128 5007942824 0.00% 0 262 0.00% + btreemap_v1_insert_blob_128_128 1026805160 0.00% 0 61 0.00% + btreemap_v1_insert_blob_16_128 391942071 0.00% 0 32 0.00% + btreemap_v1_insert_blob_256_128 1576965603 0.00% 0 90 0.00% + btreemap_v1_insert_blob_32_1024 585609756 0.00% 0 230 0.00% + btreemap_v1_insert_blob_32_128 424489333 0.00% 0 37 0.00% + btreemap_v1_insert_blob_32_16 405326475 0.00% 0 14 0.00% + btreemap_v1_insert_blob_32_256 454178716 0.00% 0 66 0.00% + btreemap_v1_insert_blob_32_32 408531668 0.00% 0 17 0.00% + btreemap_v1_insert_blob_32_4 393759972 0.00% 0 11 0.00% + btreemap_v1_insert_blob_32_512 495214435 0.00% 0 121 0.00% + btreemap_v1_insert_blob_32_64 412537755 0.00% 0 24 0.00% + btreemap_v1_insert_blob_32_8 398133513 0.00% 0 12 0.00% + btreemap_v1_insert_blob_4_128 313593329 0.00% 0 17 0.00% + btreemap_v1_insert_blob_512_128 2754557121 0.00% 0 148 0.00% + btreemap_v1_insert_blob_64_128 671082804 0.00% 0 46 0.00% + btreemap_v1_insert_blob_8_128 358579533 0.00% 0 27 0.00% + btreemap_v1_insert_u64_blob8 339932921 0.00% 0 7 0.00% + btreemap_v1_insert_u64_u64 345608503 0.00% 0 7 0.00% + btreemap_v1_pop_first_blob8_u64 441600212 0.00% 0 0 + btreemap_v1_pop_first_blob_1024_128 9210292778 0.00% 0 0 + btreemap_v1_pop_first_blob_128_128 1819146872 0.00% 0 0 + btreemap_v1_pop_first_blob_16_128 588472296 0.00% 0 0 + btreemap_v1_pop_first_blob_256_128 2896727052 0.00% 0 0 + btreemap_v1_pop_first_blob_32_1024 958303933 0.00% 0 0 + btreemap_v1_pop_first_blob_32_128 696856907 0.00% 0 0 + btreemap_v1_pop_first_blob_32_16 643862300 0.00% 0 0 + btreemap_v1_pop_first_blob_32_256 733623810 0.00% 0 0 + btreemap_v1_pop_first_blob_32_32 654116869 0.00% 0 0 + btreemap_v1_pop_first_blob_32_4 624710634 0.00% 0 0 + btreemap_v1_pop_first_blob_32_512 799092498 0.00% 0 0 + btreemap_v1_pop_first_blob_32_64 663763332 0.00% 0 0 + btreemap_v1_pop_first_blob_32_8 640838262 0.00% 0 0 + btreemap_v1_pop_first_blob_4_128 279547807 0.00% 0 0 + btreemap_v1_pop_first_blob_512_128 4985501756 0.00% 0 0 + btreemap_v1_pop_first_blob_64_128 1148383275 0.00% 0 0 + btreemap_v1_pop_first_blob_8_128 466033258 0.00% 0 0 + btreemap_v1_pop_first_u64_blob8 554388115 0.00% 0 0 + btreemap_v1_pop_first_u64_u64 557488351 0.00% 0 0 + btreemap_v1_pop_last_blob8_u64 426716755 0.00% 0 0 + btreemap_v1_pop_last_blob_1024_128 9027882338 0.00% 0 0 + btreemap_v1_pop_last_blob_128_128 1774788118 0.00% 0 0 + btreemap_v1_pop_last_blob_16_128 579169231 0.00% 0 0 + btreemap_v1_pop_last_blob_256_128 2829351769 0.00% 0 0 + btreemap_v1_pop_last_blob_32_1024 937223741 0.00% 0 0 + btreemap_v1_pop_last_blob_32_128 674115649 0.00% 0 0 + btreemap_v1_pop_last_blob_32_16 624838280 0.00% 0 0 + btreemap_v1_pop_last_blob_32_256 711983530 0.00% 0 0 + btreemap_v1_pop_last_blob_32_32 635001845 0.00% 0 0 + btreemap_v1_pop_last_blob_32_4 612396356 0.00% 0 0 + btreemap_v1_pop_last_blob_32_512 781703090 0.00% 0 0 + btreemap_v1_pop_last_blob_32_64 643402362 0.00% 0 0 + btreemap_v1_pop_last_blob_32_8 617542418 0.00% 0 0 + btreemap_v1_pop_last_blob_4_128 271975462 0.00% 0 0 + btreemap_v1_pop_last_blob_512_128 4867658077 0.00% 0 0 + btreemap_v1_pop_last_blob_64_128 1116571899 0.00% 0 0 + btreemap_v1_pop_last_blob_8_128 462788982 0.00% 0 0 + btreemap_v1_pop_last_u64_blob8 541957924 0.00% 0 0 + btreemap_v1_pop_last_u64_u64 544107722 0.00% 0 0 + btreemap_v1_remove_blob8_u64 440652789 0.00% 0 0 + btreemap_v1_remove_blob_1024_128 6330406626 0.00% 0 0 + btreemap_v1_remove_blob_128_128 1321192633 0.00% 0 0 + btreemap_v1_remove_blob_16_128 539010219 0.00% 0 0 + btreemap_v1_remove_blob_256_128 2046189107 0.00% 0 0 + btreemap_v1_remove_blob_32_1024 826965331 0.00% 0 0 + btreemap_v1_remove_blob_32_128 589987880 0.00% 0 0 + btreemap_v1_remove_blob_32_16 546351365 0.00% 0 0 + btreemap_v1_remove_blob_32_256 626317576 0.00% 0 0 + btreemap_v1_remove_blob_32_32 555010200 0.00% 0 0 + btreemap_v1_remove_blob_32_4 538629074 0.00% 0 0 + btreemap_v1_remove_blob_32_512 697870456 0.00% 0 0 + btreemap_v1_remove_blob_32_64 576024269 0.00% 0 0 + btreemap_v1_remove_blob_32_8 539283194 0.00% 0 0 + btreemap_v1_remove_blob_4_128 344004557 0.00% 0 0 + btreemap_v1_remove_blob_512_128 3456175013 0.00% 0 0 + btreemap_v1_remove_blob_64_128 876109417 0.00% 0 0 + btreemap_v1_remove_blob_8_128 470964477 0.00% 0 0 + btreemap_v1_remove_u64_blob8 486384152 0.00% 0 0 + btreemap_v1_remove_u64_u64 499799718 0.00% 0 0 + btreemap_v2_contains_10mib_values 142217957 0.00% 0 0 + btreemap_v2_contains_blob8_u64 277214343 0.00% 0 0 + btreemap_v2_contains_blob_1024_128 4898946611 0.00% 0 0 + btreemap_v2_contains_blob_128_128 925555742 0.00% 0 0 + btreemap_v2_contains_blob_16_128 300251473 0.00% 0 0 + btreemap_v2_contains_blob_256_128 1482925551 0.00% 0 0 + btreemap_v2_contains_blob_32_1024 337656769 0.00% 0 0 + btreemap_v2_contains_blob_32_128 333839954 0.00% 0 0 + btreemap_v2_contains_blob_32_16 338174754 0.00% 0 0 + btreemap_v2_contains_blob_32_256 340508248 0.00% 0 0 + btreemap_v2_contains_blob_32_32 339595438 0.00% 0 0 + btreemap_v2_contains_blob_32_4 336896704 0.00% 0 0 + btreemap_v2_contains_blob_32_512 334090366 0.00% 0 0 + btreemap_v2_contains_blob_32_64 339081358 0.00% 0 0 + btreemap_v2_contains_blob_32_8 337301632 0.00% 0 0 + btreemap_v2_contains_blob_4_128 244740121 0.00% 0 0 + btreemap_v2_contains_blob_512_128 2625290726 0.00% 0 0 + btreemap_v2_contains_blob_64_128 582248673 0.00% 0 0 + btreemap_v2_contains_blob_8_128 269128362 0.00% 0 0 + btreemap_v2_contains_u64_blob8 233256018 0.00% 0 0 + btreemap_v2_contains_u64_u64 238556483 0.00% 0 0 + btreemap_v2_contains_u64_vec8 233256018 0.00% 0 0 + btreemap_v2_contains_vec8_u64 366392438 0.00% 0 0 + btreemap_v2_contains_vec_1024_128 2831649126 0.00% 0 0 + btreemap_v2_contains_vec_128_128 697463829 0.00% 0 0 + btreemap_v2_contains_vec_16_128 429709958 0.00% 0 0 + btreemap_v2_contains_vec_256_128 1219637100 0.00% 0 0 + btreemap_v2_contains_vec_32_1024 583325661 0.00% 0 0 + btreemap_v2_contains_vec_32_128 488605668 0.00% 0 0 + btreemap_v2_contains_vec_32_16 407833357 0.00% 0 0 + btreemap_v2_contains_vec_32_256 518646836 0.00% 0 0 + btreemap_v2_contains_vec_32_32 408431266 0.00% 0 0 + btreemap_v2_contains_vec_32_4 406670633 0.00% 0 0 + btreemap_v2_contains_vec_32_512 535001628 0.00% 0 0 + btreemap_v2_contains_vec_32_64 463282662 0.00% 0 0 + btreemap_v2_contains_vec_32_8 406570012 0.00% 0 0 + btreemap_v2_contains_vec_4_128 396937070 0.00% 0 0 + btreemap_v2_contains_vec_512_128 1811262338 0.00% 0 0 + btreemap_v2_contains_vec_64_128 594718276 0.00% 0 0 + btreemap_v2_contains_vec_8_128 389233979 0.00% 0 0 btreemap_v2_get_10mib_values 1227477610 0.00% 0 0 - btreemap_v2_get_blob8_u64 299887024 0.82% 0 0 - btreemap_v2_get_blob_1024_128 4955392518 0.07% 0 0 - btreemap_v2_get_blob_128_128 947748410 -0.16% 0 0 - btreemap_v2_get_blob_16_128 314026459 -2.05% 0 0 - btreemap_v2_get_blob_256_128 1508348279 -0.06% 0 0 - btreemap_v2_get_blob_32_1024 356990156 -0.30% 0 0 - btreemap_v2_get_blob_32_128 347448180 -0.93% 0 0 - btreemap_v2_get_blob_32_16 347299656 -1.71% 0 0 - btreemap_v2_get_blob_32_256 355303994 -0.40% 0 0 - btreemap_v2_get_blob_32_32 349432439 -1.35% 0 0 - btreemap_v2_get_blob_32_4 344295894 -1.07% 0 0 - btreemap_v2_get_blob_32_512 350683063 -0.68% 0 0 - btreemap_v2_get_blob_32_64 350846830 -0.60% 0 0 - btreemap_v2_get_blob_32_8 345200526 -1.53% 0 0 - btreemap_v2_get_blob_4_128 257331691 -2.04% 0 0 - btreemap_v2_get_blob_512_128 2661000456 -0.18% 0 0 - btreemap_v2_get_blob_64_128 599970891 -0.25% 0 0 - btreemap_v2_get_blob_8_128 282280016 -1.61% 0 0 - btreemap_v2_get_u64_blob8 243494852 -2.61% 0 0 - btreemap_v2_get_u64_u64 250731335 -2.33% 0 0 - btreemap_v2_get_u64_vec8 244234847 -3.05% 0 0 - btreemap_v2_get_vec8_u64 376783066 0.71% 0 0 - btreemap_v2_get_vec_1024_128 2901574721 1.57% 0 0 - btreemap_v2_get_vec_128_128 710234642 0.09% 0 0 - btreemap_v2_get_vec_16_128 439609550 -0.03% 0 0 - btreemap_v2_get_vec_256_128 1232922460 0.46% 0 0 - btreemap_v2_get_vec_32_1024 597773339 -0.37% 0 0 - btreemap_v2_get_vec_32_128 498889261 -0.12% 0 0 - btreemap_v2_get_vec_32_16 415897245 0.68% 0 0 - btreemap_v2_get_vec_32_256 538935052 -0.01% 0 0 - btreemap_v2_get_vec_32_32 416645143 0.72% 0 0 - btreemap_v2_get_vec_32_4 414613272 0.76% 0 0 - btreemap_v2_get_vec_32_512 558129383 2.71% 0 0 - btreemap_v2_get_vec_32_64 471860937 0.28% 0 0 - btreemap_v2_get_vec_32_8 414552400 0.78% 0 0 - btreemap_v2_get_vec_4_128 406578925 -0.19% 0 0 - btreemap_v2_get_vec_512_128 1824668003 -0.10% 0 0 - btreemap_v2_get_vec_64_128 606199240 -0.09% 0 0 - btreemap_v2_get_vec_8_128 399016651 2.80% 0 0 + btreemap_v2_get_blob8_u64 299887024 0.00% 0 0 + btreemap_v2_get_blob_1024_128 4955392518 0.00% 0 0 + btreemap_v2_get_blob_128_128 947748410 0.00% 0 0 + btreemap_v2_get_blob_16_128 314026459 0.00% 0 0 + btreemap_v2_get_blob_256_128 1508348279 0.00% 0 0 + btreemap_v2_get_blob_32_1024 356990156 0.00% 0 0 + btreemap_v2_get_blob_32_128 347448180 0.00% 0 0 + btreemap_v2_get_blob_32_16 347299656 0.00% 0 0 + btreemap_v2_get_blob_32_256 355303994 0.00% 0 0 + btreemap_v2_get_blob_32_32 349432439 0.00% 0 0 + btreemap_v2_get_blob_32_4 344295894 0.00% 0 0 + btreemap_v2_get_blob_32_512 350683063 0.00% 0 0 + btreemap_v2_get_blob_32_64 350846830 0.00% 0 0 + btreemap_v2_get_blob_32_8 345200526 0.00% 0 0 + btreemap_v2_get_blob_4_128 257331691 0.00% 0 0 + btreemap_v2_get_blob_512_128 2661000456 0.00% 0 0 + btreemap_v2_get_blob_64_128 599970891 0.00% 0 0 + btreemap_v2_get_blob_8_128 282280016 0.00% 0 0 + btreemap_v2_get_u64_blob8 243494852 0.00% 0 0 + btreemap_v2_get_u64_u64 250731335 0.00% 0 0 + btreemap_v2_get_u64_vec8 244234847 0.00% 0 0 + btreemap_v2_get_vec8_u64 376783066 0.00% 0 0 + btreemap_v2_get_vec_1024_128 2901574721 0.00% 0 0 + btreemap_v2_get_vec_128_128 710234642 0.00% 0 0 + btreemap_v2_get_vec_16_128 439609550 0.00% 0 0 + btreemap_v2_get_vec_256_128 1232922460 0.00% 0 0 + btreemap_v2_get_vec_32_1024 597773339 0.00% 0 0 + btreemap_v2_get_vec_32_128 498889261 0.00% 0 0 + btreemap_v2_get_vec_32_16 415897245 0.00% 0 0 + btreemap_v2_get_vec_32_256 538935052 0.00% 0 0 + btreemap_v2_get_vec_32_32 416645143 0.00% 0 0 + btreemap_v2_get_vec_32_4 414613272 0.00% 0 0 + btreemap_v2_get_vec_32_512 558129383 0.00% 0 0 + btreemap_v2_get_vec_32_64 471860937 0.00% 0 0 + btreemap_v2_get_vec_32_8 414552400 0.00% 0 0 + btreemap_v2_get_vec_4_128 406578925 0.00% 0 0 + btreemap_v2_get_vec_512_128 1824668003 0.00% 0 0 + btreemap_v2_get_vec_64_128 606199240 0.00% 0 0 + btreemap_v2_get_vec_8_128 399016651 0.00% 0 0 btreemap_v2_insert_10mib_values 5247391058 0.00% 322 0.00% 3613 0.00% - btreemap_v2_insert_blob8_u64 441373352 0.08% 0 4 0.00% - btreemap_v2_insert_blob_1024_128 5106163080 -0.01% 0 196 0.00% - btreemap_v2_insert_blob_128_128 1134482770 0.46% 0 46 0.00% - btreemap_v2_insert_blob_16_128 495587755 0.42% 0 24 0.00% - btreemap_v2_insert_blob_256_128 1684101470 0.31% 0 67 0.00% - btreemap_v2_insert_blob_32_1024 687624180 0.49% 0 173 0.00% - btreemap_v2_insert_blob_32_128 529998238 0.73% 0 28 0.00% - btreemap_v2_insert_blob_32_16 510178804 0.94% 0 11 0.00% - btreemap_v2_insert_blob_32_256 561097508 0.71% 0 49 0.00% - btreemap_v2_insert_blob_32_32 515356067 0.86% 0 13 0.00% - btreemap_v2_insert_blob_32_4 498526133 0.96% 0 8 0.00% - btreemap_v2_insert_blob_32_512 598012415 0.54% 0 91 0.00% - btreemap_v2_insert_blob_32_64 520261508 0.71% 0 18 0.00% - btreemap_v2_insert_blob_32_8 506047152 1.04% 0 9 0.00% - btreemap_v2_insert_blob_4_128 411190916 -0.30% 0 13 0.00% - btreemap_v2_insert_blob_512_128 2856354766 0.02% 0 111 0.00% - btreemap_v2_insert_blob_64_128 778656834 0.70% 0 34 0.00% - btreemap_v2_insert_blob_8_128 463637152 0.03% 0 20 0.00% - btreemap_v2_insert_u64_blob8 422673065 0.60% 0 5 0.00% - btreemap_v2_insert_u64_u64 431142993 0.55% 0 6 0.00% - btreemap_v2_insert_u64_vec8 429735780 0.94% 0 21 0.00% - btreemap_v2_insert_vec8_u64 582161939 0.37% 0 16 0.00% - btreemap_v2_insert_vec_1024_128 3320218687 0.13% 0 193 0.00% - btreemap_v2_insert_vec_128_128 1097316458 0.31% 0 51 0.00% - btreemap_v2_insert_vec_16_128 704073865 0.13% 0 31 0.00% - btreemap_v2_insert_vec_256_128 1507394441 0.53% 0 71 0.00% - btreemap_v2_insert_vec_32_1024 1223025783 0.09% 0 171 0.00% - btreemap_v2_insert_vec_32_128 761860698 0.26% 0 33 0.00% - btreemap_v2_insert_vec_32_16 664111576 0.39% 0 20 0.00% - btreemap_v2_insert_vec_32_256 890884138 0.17% 0 54 0.00% - btreemap_v2_insert_vec_32_32 666104854 0.43% 0 20 0.00% - btreemap_v2_insert_vec_32_4 660982082 0.34% 0 20 0.00% - btreemap_v2_insert_vec_32_512 1009309654 0.41% 0 91 0.00% - btreemap_v2_insert_vec_32_64 691846737 0.35% 0 24 0.00% - btreemap_v2_insert_vec_32_8 660579111 0.27% 0 20 0.00% - btreemap_v2_insert_vec_4_128 608945447 0.06% 0 16 0.00% - btreemap_v2_insert_vec_512_128 2128531367 0.33% 0 112 0.00% - btreemap_v2_insert_vec_64_128 879671097 0.27% 0 41 0.00% - btreemap_v2_insert_vec_8_128 666730079 0.14% 0 23 0.00% - btreemap_v2_mem_manager_contains_blob512_u64 2716382295 0.34% 0 0 - btreemap_v2_mem_manager_contains_u64_blob512 309085018 0.10% 0 0 - btreemap_v2_mem_manager_contains_u64_u64 314061355 0.49% 0 0 - btreemap_v2_mem_manager_contains_u64_vec512 395977762 1.42% 0 0 - btreemap_v2_mem_manager_contains_vec512_u64 1773578767 1.36% 0 0 - btreemap_v2_mem_manager_get_blob512_u64 2761459393 0.33% 0 0 - btreemap_v2_mem_manager_get_u64_blob512 326380391 -2.05% 0 0 - btreemap_v2_mem_manager_get_u64_u64 328140916 -2.40% 0 0 - btreemap_v2_mem_manager_get_u64_vec512 423093906 -1.00% 0 0 - btreemap_v2_mem_manager_get_vec512_u64 1811142474 1.33% 0 0 - btreemap_v2_mem_manager_insert_blob512_u64 2958972800 0.10% 0 0 - btreemap_v2_mem_manager_insert_u64_blob512 646615329 0.33% 0 0 - btreemap_v2_mem_manager_insert_u64_u64 560299851 0.41% 0 0 - btreemap_v2_mem_manager_insert_u64_vec512 898844460 0.80% 0 0 - btreemap_v2_mem_manager_insert_vec512_u64 2251012407 1.06% 0 0 - btreemap_v2_mem_manager_remove_blob512_u64 3844702018 0.25% 0 0 - btreemap_v2_mem_manager_remove_u64_blob512 946812832 -0.21% 0 0 - btreemap_v2_mem_manager_remove_u64_u64 806835295 -0.48% 0 0 - btreemap_v2_mem_manager_remove_u64_vec512 1283899492 0.07% 0 0 - btreemap_v2_mem_manager_remove_vec512_u64 3327399755 0.91% 0 0 - btreemap_v2_pop_first_blob8_u64 610097435 -1.17% 0 0 - btreemap_v2_pop_first_blob_1024_128 9397216286 -0.04% 0 0 - btreemap_v2_pop_first_blob_128_128 2007433379 0.13% 0 0 - btreemap_v2_pop_first_blob_16_128 758505635 -0.65% 0 0 - btreemap_v2_pop_first_blob_256_128 3093241998 0.26% 0 0 - btreemap_v2_pop_first_blob_32_1024 1134488534 -0.11% 0 0 - btreemap_v2_pop_first_blob_32_128 878776661 -0.38% 0 0 - btreemap_v2_pop_first_blob_32_16 820290659 -0.82% 0 0 - btreemap_v2_pop_first_blob_32_256 909475486 -0.33% 0 0 - btreemap_v2_pop_first_blob_32_32 832679269 -0.74% 0 0 - btreemap_v2_pop_first_blob_32_4 803396353 -0.49% 0 0 - btreemap_v2_pop_first_blob_32_512 975136110 -0.21% 0 0 - btreemap_v2_pop_first_blob_32_64 840995585 -0.50% 0 0 - btreemap_v2_pop_first_blob_32_8 819129261 -0.70% 0 0 - btreemap_v2_pop_first_blob_4_128 372375122 -0.80% 0 0 + btreemap_v2_insert_blob8_u64 441373352 0.00% 0 4 0.00% + btreemap_v2_insert_blob_1024_128 5106163080 0.00% 0 196 0.00% + btreemap_v2_insert_blob_128_128 1134482770 0.00% 0 46 0.00% + btreemap_v2_insert_blob_16_128 495587755 0.00% 0 24 0.00% + btreemap_v2_insert_blob_256_128 1684101470 0.00% 0 67 0.00% + btreemap_v2_insert_blob_32_1024 687624180 0.00% 0 173 0.00% + btreemap_v2_insert_blob_32_128 529998238 0.00% 0 28 0.00% + btreemap_v2_insert_blob_32_16 510178804 0.00% 0 11 0.00% + btreemap_v2_insert_blob_32_256 561097508 0.00% 0 49 0.00% + btreemap_v2_insert_blob_32_32 515356067 0.00% 0 13 0.00% + btreemap_v2_insert_blob_32_4 498526133 0.00% 0 8 0.00% + btreemap_v2_insert_blob_32_512 598012415 0.00% 0 91 0.00% + btreemap_v2_insert_blob_32_64 520261508 0.00% 0 18 0.00% + btreemap_v2_insert_blob_32_8 506047152 0.00% 0 9 0.00% + btreemap_v2_insert_blob_4_128 411190916 0.00% 0 13 0.00% + btreemap_v2_insert_blob_512_128 2856354766 0.00% 0 111 0.00% + btreemap_v2_insert_blob_64_128 778656834 0.00% 0 34 0.00% + btreemap_v2_insert_blob_8_128 463637152 0.00% 0 20 0.00% + btreemap_v2_insert_u64_blob8 422673065 0.00% 0 5 0.00% + btreemap_v2_insert_u64_u64 431142993 0.00% 0 6 0.00% + btreemap_v2_insert_u64_vec8 429735780 0.00% 0 21 0.00% + btreemap_v2_insert_vec8_u64 582161939 0.00% 0 16 0.00% + btreemap_v2_insert_vec_1024_128 3320218687 0.00% 0 193 0.00% + btreemap_v2_insert_vec_128_128 1097316458 0.00% 0 51 0.00% + btreemap_v2_insert_vec_16_128 704073865 0.00% 0 31 0.00% + btreemap_v2_insert_vec_256_128 1507394441 0.00% 0 71 0.00% + btreemap_v2_insert_vec_32_1024 1223025783 0.00% 0 171 0.00% + btreemap_v2_insert_vec_32_128 761860698 0.00% 0 33 0.00% + btreemap_v2_insert_vec_32_16 664111576 0.00% 0 20 0.00% + btreemap_v2_insert_vec_32_256 890884138 0.00% 0 54 0.00% + btreemap_v2_insert_vec_32_32 666104854 0.00% 0 20 0.00% + btreemap_v2_insert_vec_32_4 660982082 0.00% 0 20 0.00% + btreemap_v2_insert_vec_32_512 1009309654 0.00% 0 91 0.00% + btreemap_v2_insert_vec_32_64 691846737 0.00% 0 24 0.00% + btreemap_v2_insert_vec_32_8 660579111 0.00% 0 20 0.00% + btreemap_v2_insert_vec_4_128 608945447 0.00% 0 16 0.00% + btreemap_v2_insert_vec_512_128 2128531367 0.00% 0 112 0.00% + btreemap_v2_insert_vec_64_128 879671097 0.00% 0 41 0.00% + btreemap_v2_insert_vec_8_128 666730079 0.00% 0 23 0.00% + btreemap_v2_mem_manager_contains_blob512_u64 2716382295 0.00% 0 0 + btreemap_v2_mem_manager_contains_u64_blob512 309085018 0.00% 0 0 + btreemap_v2_mem_manager_contains_u64_u64 314061355 0.00% 0 0 + btreemap_v2_mem_manager_contains_u64_vec512 395977762 0.00% 0 0 + btreemap_v2_mem_manager_contains_vec512_u64 1773578767 0.00% 0 0 + btreemap_v2_mem_manager_get_blob512_u64 2761459393 0.00% 0 0 + btreemap_v2_mem_manager_get_u64_blob512 326380391 0.00% 0 0 + btreemap_v2_mem_manager_get_u64_u64 328140916 0.00% 0 0 + btreemap_v2_mem_manager_get_u64_vec512 423093906 0.00% 0 0 + btreemap_v2_mem_manager_get_vec512_u64 1811142474 0.00% 0 0 + btreemap_v2_mem_manager_insert_blob512_u64 2958972800 0.00% 0 0 + btreemap_v2_mem_manager_insert_u64_blob512 646615329 0.00% 0 0 + btreemap_v2_mem_manager_insert_u64_u64 560299851 0.00% 0 0 + btreemap_v2_mem_manager_insert_u64_vec512 898844460 0.00% 0 0 + btreemap_v2_mem_manager_insert_vec512_u64 2251012407 0.00% 0 0 + btreemap_v2_mem_manager_remove_blob512_u64 3844702018 0.00% 0 0 + btreemap_v2_mem_manager_remove_u64_blob512 946812832 0.00% 0 0 + btreemap_v2_mem_manager_remove_u64_u64 806835295 0.00% 0 0 + btreemap_v2_mem_manager_remove_u64_vec512 1283899492 0.00% 0 0 + btreemap_v2_mem_manager_remove_vec512_u64 3327399755 0.00% 0 0 + btreemap_v2_pop_first_blob8_u64 610097435 0.00% 0 0 + btreemap_v2_pop_first_blob_1024_128 9397216286 0.00% 0 0 + btreemap_v2_pop_first_blob_128_128 2007433379 0.00% 0 0 + btreemap_v2_pop_first_blob_16_128 758505635 0.00% 0 0 + btreemap_v2_pop_first_blob_256_128 3093241998 0.00% 0 0 + btreemap_v2_pop_first_blob_32_1024 1134488534 0.00% 0 0 + btreemap_v2_pop_first_blob_32_128 878776661 0.00% 0 0 + btreemap_v2_pop_first_blob_32_16 820290659 0.00% 0 0 + btreemap_v2_pop_first_blob_32_256 909475486 0.00% 0 0 + btreemap_v2_pop_first_blob_32_32 832679269 0.00% 0 0 + btreemap_v2_pop_first_blob_32_4 803396353 0.00% 0 0 + btreemap_v2_pop_first_blob_32_512 975136110 0.00% 0 0 + btreemap_v2_pop_first_blob_32_64 840995585 0.00% 0 0 + btreemap_v2_pop_first_blob_32_8 819129261 0.00% 0 0 + btreemap_v2_pop_first_blob_4_128 372375122 0.00% 0 0 btreemap_v2_pop_first_blob_512_128 5170729534 0.00% 0 0 - btreemap_v2_pop_first_blob_64_128 1329714089 -0.02% 0 0 - btreemap_v2_pop_first_blob_8_128 612208263 -0.83% 0 0 - btreemap_v2_pop_first_u64_blob8 705892053 -1.12% 0 0 - btreemap_v2_pop_first_u64_u64 719150807 -1.21% 0 0 - btreemap_v2_pop_first_u64_vec8 710034544 -1.36% 0 0 - btreemap_v2_pop_first_vec8_u64 783784225 -0.28% 0 0 - btreemap_v2_pop_first_vec_1024_128 5768601227 0.10% 0 0 - btreemap_v2_pop_first_vec_128_128 1815908841 0.24% 0 0 - btreemap_v2_pop_first_vec_16_128 1025275233 -0.20% 0 0 - btreemap_v2_pop_first_vec_256_128 2526957213 0.21% 0 0 - btreemap_v2_pop_first_vec_32_1024 1812672679 -0.08% 0 0 - btreemap_v2_pop_first_vec_32_128 1205877175 -0.26% 0 0 - btreemap_v2_pop_first_vec_32_16 1038665239 -0.10% 0 0 - btreemap_v2_pop_first_vec_32_256 1328280204 -0.03% 0 0 - btreemap_v2_pop_first_vec_32_32 1055171969 -0.33% 0 0 - btreemap_v2_pop_first_vec_32_4 1036107253 -0.89% 0 0 - btreemap_v2_pop_first_vec_32_512 1490507215 -0.06% 0 0 - btreemap_v2_pop_first_vec_32_64 1090635398 -0.28% 0 0 - btreemap_v2_pop_first_vec_32_8 1048510168 -0.81% 0 0 - btreemap_v2_pop_first_vec_4_128 537971781 -0.18% 0 0 - btreemap_v2_pop_first_vec_512_128 3605170755 0.19% 0 0 - btreemap_v2_pop_first_vec_64_128 1400023412 -0.13% 0 0 - btreemap_v2_pop_first_vec_8_128 846583253 -0.19% 0 0 - btreemap_v2_pop_last_blob8_u64 593267468 -1.20% 0 0 - btreemap_v2_pop_last_blob_1024_128 9217874627 0.01% 0 0 - btreemap_v2_pop_last_blob_128_128 1959347279 0.11% 0 0 - btreemap_v2_pop_last_blob_16_128 739233011 -0.68% 0 0 - btreemap_v2_pop_last_blob_256_128 3018533213 0.23% 0 0 - btreemap_v2_pop_last_blob_32_1024 1114768577 -0.06% 0 0 - btreemap_v2_pop_last_blob_32_128 856410708 -0.40% 0 0 - btreemap_v2_pop_last_blob_32_16 799923507 -0.80% 0 0 - btreemap_v2_pop_last_blob_32_256 888911791 -0.27% 0 0 - btreemap_v2_pop_last_blob_32_32 811998333 -0.77% 0 0 - btreemap_v2_pop_last_blob_32_4 788882349 -0.60% 0 0 - btreemap_v2_pop_last_blob_32_512 957263780 -0.19% 0 0 - btreemap_v2_pop_last_blob_32_64 822799302 -0.53% 0 0 - btreemap_v2_pop_last_blob_32_8 798965415 -0.71% 0 0 - btreemap_v2_pop_last_blob_4_128 363906126 -0.79% 0 0 - btreemap_v2_pop_last_blob_512_128 5052214736 -0.03% 0 0 - btreemap_v2_pop_last_blob_64_128 1308620317 -0.05% 0 0 - btreemap_v2_pop_last_blob_8_128 612185424 -0.81% 0 0 - btreemap_v2_pop_last_u64_blob8 693662883 -1.12% 0 0 - btreemap_v2_pop_last_u64_u64 705949750 -1.14% 0 0 - btreemap_v2_pop_last_u64_vec8 696415691 -1.32% 0 0 - btreemap_v2_pop_last_vec8_u64 764594107 -0.21% 0 0 - btreemap_v2_pop_last_vec_1024_128 6018998629 0.11% 0 0 - btreemap_v2_pop_last_vec_128_128 1831437061 0.17% 0 0 - btreemap_v2_pop_last_vec_16_128 1013525971 -0.15% 0 0 - btreemap_v2_pop_last_vec_256_128 2582856979 0.32% 0 0 - btreemap_v2_pop_last_vec_32_1024 1807678468 -0.09% 0 0 - btreemap_v2_pop_last_vec_32_128 1204371315 -0.27% 0 0 - btreemap_v2_pop_last_vec_32_16 1028791023 -0.22% 0 0 - btreemap_v2_pop_last_vec_32_256 1325707543 0.01% 0 0 - btreemap_v2_pop_last_vec_32_32 1044763371 -0.31% 0 0 - btreemap_v2_pop_last_vec_32_4 1033959258 -0.85% 0 0 - btreemap_v2_pop_last_vec_32_512 1490497731 -0.15% 0 0 - btreemap_v2_pop_last_vec_32_64 1085292901 -0.27% 0 0 - btreemap_v2_pop_last_vec_32_8 1035755953 -0.86% 0 0 - btreemap_v2_pop_last_vec_4_128 529153123 -0.19% 0 0 - btreemap_v2_pop_last_vec_512_128 3726754094 0.13% 0 0 - btreemap_v2_pop_last_vec_64_128 1412106259 -0.16% 0 0 - btreemap_v2_pop_last_vec_8_128 854240460 -0.22% 0 0 - btreemap_v2_range_count_1k_0b 16863 -0.17% 0 0 - btreemap_v2_range_count_1k_10kib 2433555 0.70% 0 0 - btreemap_v2_range_count_20_10mib 20572756 0.04% 0 0 - btreemap_v2_range_key_sum_1k_0b 17472 -0.17% 0 0 - btreemap_v2_range_key_sum_1k_10kib 57248241 0.03% 0 0 + btreemap_v2_pop_first_blob_64_128 1329714089 0.00% 0 0 + btreemap_v2_pop_first_blob_8_128 612208263 0.00% 0 0 + btreemap_v2_pop_first_u64_blob8 705892053 0.00% 0 0 + btreemap_v2_pop_first_u64_u64 719150807 0.00% 0 0 + btreemap_v2_pop_first_u64_vec8 710034544 0.00% 0 0 + btreemap_v2_pop_first_vec8_u64 783784225 0.00% 0 0 + btreemap_v2_pop_first_vec_1024_128 5768601227 0.00% 0 0 + btreemap_v2_pop_first_vec_128_128 1815908841 0.00% 0 0 + btreemap_v2_pop_first_vec_16_128 1025275233 0.00% 0 0 + btreemap_v2_pop_first_vec_256_128 2526957213 0.00% 0 0 + btreemap_v2_pop_first_vec_32_1024 1812672679 0.00% 0 0 + btreemap_v2_pop_first_vec_32_128 1205877175 0.00% 0 0 + btreemap_v2_pop_first_vec_32_16 1038665239 0.00% 0 0 + btreemap_v2_pop_first_vec_32_256 1328280204 0.00% 0 0 + btreemap_v2_pop_first_vec_32_32 1055171969 0.00% 0 0 + btreemap_v2_pop_first_vec_32_4 1036107253 0.00% 0 0 + btreemap_v2_pop_first_vec_32_512 1490507215 0.00% 0 0 + btreemap_v2_pop_first_vec_32_64 1090635398 0.00% 0 0 + btreemap_v2_pop_first_vec_32_8 1048510168 0.00% 0 0 + btreemap_v2_pop_first_vec_4_128 537971781 0.00% 0 0 + btreemap_v2_pop_first_vec_512_128 3605170755 0.00% 0 0 + btreemap_v2_pop_first_vec_64_128 1400023412 0.00% 0 0 + btreemap_v2_pop_first_vec_8_128 846583253 0.00% 0 0 + btreemap_v2_pop_last_blob8_u64 593267468 0.00% 0 0 + btreemap_v2_pop_last_blob_1024_128 9217874627 0.00% 0 0 + btreemap_v2_pop_last_blob_128_128 1959347279 0.00% 0 0 + btreemap_v2_pop_last_blob_16_128 739233011 0.00% 0 0 + btreemap_v2_pop_last_blob_256_128 3018533213 0.00% 0 0 + btreemap_v2_pop_last_blob_32_1024 1114768577 0.00% 0 0 + btreemap_v2_pop_last_blob_32_128 856410708 0.00% 0 0 + btreemap_v2_pop_last_blob_32_16 799923507 0.00% 0 0 + btreemap_v2_pop_last_blob_32_256 888911791 0.00% 0 0 + btreemap_v2_pop_last_blob_32_32 811998333 0.00% 0 0 + btreemap_v2_pop_last_blob_32_4 788882349 0.00% 0 0 + btreemap_v2_pop_last_blob_32_512 957263780 0.00% 0 0 + btreemap_v2_pop_last_blob_32_64 822799302 0.00% 0 0 + btreemap_v2_pop_last_blob_32_8 798965415 0.00% 0 0 + btreemap_v2_pop_last_blob_4_128 363906126 0.00% 0 0 + btreemap_v2_pop_last_blob_512_128 5052214736 0.00% 0 0 + btreemap_v2_pop_last_blob_64_128 1308620317 0.00% 0 0 + btreemap_v2_pop_last_blob_8_128 612185424 0.00% 0 0 + btreemap_v2_pop_last_u64_blob8 693662883 0.00% 0 0 + btreemap_v2_pop_last_u64_u64 705949750 0.00% 0 0 + btreemap_v2_pop_last_u64_vec8 696415691 0.00% 0 0 + btreemap_v2_pop_last_vec8_u64 764594107 0.00% 0 0 + btreemap_v2_pop_last_vec_1024_128 6018998629 0.00% 0 0 + btreemap_v2_pop_last_vec_128_128 1831437061 0.00% 0 0 + btreemap_v2_pop_last_vec_16_128 1013525971 0.00% 0 0 + btreemap_v2_pop_last_vec_256_128 2582856979 0.00% 0 0 + btreemap_v2_pop_last_vec_32_1024 1807678468 0.00% 0 0 + btreemap_v2_pop_last_vec_32_128 1204371315 0.00% 0 0 + btreemap_v2_pop_last_vec_32_16 1028791023 0.00% 0 0 + btreemap_v2_pop_last_vec_32_256 1325707543 0.00% 0 0 + btreemap_v2_pop_last_vec_32_32 1044763371 0.00% 0 0 + btreemap_v2_pop_last_vec_32_4 1033959258 0.00% 0 0 + btreemap_v2_pop_last_vec_32_512 1490497731 0.00% 0 0 + btreemap_v2_pop_last_vec_32_64 1085292901 0.00% 0 0 + btreemap_v2_pop_last_vec_32_8 1035755953 0.00% 0 0 + btreemap_v2_pop_last_vec_4_128 529153123 0.00% 0 0 + btreemap_v2_pop_last_vec_512_128 3726754094 0.00% 0 0 + btreemap_v2_pop_last_vec_64_128 1412106259 0.00% 0 0 + btreemap_v2_pop_last_vec_8_128 854240460 0.00% 0 0 + btreemap_v2_range_count_1k_0b 16863 0.00% 0 0 + btreemap_v2_range_count_1k_10kib 2433555 0.00% 0 0 + btreemap_v2_range_count_20_10mib 20572756 0.00% 0 0 + btreemap_v2_range_key_sum_1k_0b 17472 0.00% 0 0 + btreemap_v2_range_key_sum_1k_10kib 57248241 0.00% 0 0 btreemap_v2_range_key_sum_20_10mib 1105826495 0.00% 0 0 - btreemap_v2_range_value_sum_1k_0b 17486 -0.17% 0 0 - btreemap_v2_range_value_sum_1k_10kib 57260237 0.03% 0 0 + btreemap_v2_range_value_sum_1k_0b 17486 0.00% 0 0 + btreemap_v2_range_value_sum_1k_10kib 57260237 0.00% 0 0 btreemap_v2_range_value_sum_20_10mib 1105826731 0.00% 0 0 btreemap_v2_remove_10mib_values 5573675958 0.00% 0 657 0.00% - btreemap_v2_remove_blob8_u64 589204655 0.36% 0 0 - btreemap_v2_remove_blob_1024_128 6474679665 -0.02% 0 0 - btreemap_v2_remove_blob_128_128 1466727057 0.08% 0 0 - btreemap_v2_remove_blob_16_128 680456789 -0.32% 0 0 - btreemap_v2_remove_blob_256_128 2195090992 0.28% 0 0 - btreemap_v2_remove_blob_32_1024 967043546 0.03% 0 0 - btreemap_v2_remove_blob_32_128 732131285 -0.20% 0 0 - btreemap_v2_remove_blob_32_16 687946321 -0.39% 0 0 - btreemap_v2_remove_blob_32_256 767243066 -0.12% 0 0 - btreemap_v2_remove_blob_32_32 696520229 -0.37% 0 0 - btreemap_v2_remove_blob_32_4 680067993 -0.21% 0 0 - btreemap_v2_remove_blob_32_512 838959445 -0.04% 0 0 - btreemap_v2_remove_blob_32_64 720951953 -0.26% 0 0 - btreemap_v2_remove_blob_32_8 679964928 -0.41% 0 0 - btreemap_v2_remove_blob_4_128 455950575 -0.28% 0 0 - btreemap_v2_remove_blob_512_128 3599722153 0.02% 0 0 - btreemap_v2_remove_blob_64_128 1020586460 0.06% 0 0 - btreemap_v2_remove_blob_8_128 608937116 -0.29% 0 0 - btreemap_v2_remove_u64_blob8 598070676 -0.49% 0 0 - btreemap_v2_remove_u64_u64 620231677 -0.53% 0 0 - btreemap_v2_remove_u64_vec8 603988416 -0.62% 0 0 - btreemap_v2_remove_vec8_u64 751143040 0.30% 0 0 - btreemap_v2_remove_vec_1024_128 4984095519 -1.03% 0 0 - btreemap_v2_remove_vec_128_128 1452997160 -0.44% 0 0 + btreemap_v2_remove_blob8_u64 589204655 0.00% 0 0 + btreemap_v2_remove_blob_1024_128 6474679665 0.00% 0 0 + btreemap_v2_remove_blob_128_128 1466727057 0.00% 0 0 + btreemap_v2_remove_blob_16_128 680456789 0.00% 0 0 + btreemap_v2_remove_blob_256_128 2195090992 0.00% 0 0 + btreemap_v2_remove_blob_32_1024 967043546 0.00% 0 0 + btreemap_v2_remove_blob_32_128 732131285 0.00% 0 0 + btreemap_v2_remove_blob_32_16 687946321 0.00% 0 0 + btreemap_v2_remove_blob_32_256 767243066 0.00% 0 0 + btreemap_v2_remove_blob_32_32 696520229 0.00% 0 0 + btreemap_v2_remove_blob_32_4 680067993 0.00% 0 0 + btreemap_v2_remove_blob_32_512 838959445 0.00% 0 0 + btreemap_v2_remove_blob_32_64 720951953 0.00% 0 0 + btreemap_v2_remove_blob_32_8 679964928 0.00% 0 0 + btreemap_v2_remove_blob_4_128 455950575 0.00% 0 0 + btreemap_v2_remove_blob_512_128 3599722153 0.00% 0 0 + btreemap_v2_remove_blob_64_128 1020586460 0.00% 0 0 + btreemap_v2_remove_blob_8_128 608937116 0.00% 0 0 + btreemap_v2_remove_u64_blob8 598070676 0.00% 0 0 + btreemap_v2_remove_u64_u64 620231677 0.00% 0 0 + btreemap_v2_remove_u64_vec8 603988416 0.00% 0 0 + btreemap_v2_remove_vec8_u64 751143040 0.00% 0 0 + btreemap_v2_remove_vec_1024_128 4984095519 0.00% 0 0 + btreemap_v2_remove_vec_128_128 1452997160 0.00% 0 0 btreemap_v2_remove_vec_16_128 907562996 0.00% 0 0 btreemap_v2_remove_vec_256_128 2315915215 0.00% 0 0 - btreemap_v2_remove_vec_32_1024 1680348770 -0.20% 0 0 - btreemap_v2_remove_vec_32_128 1011708017 -0.12% 0 0 - btreemap_v2_remove_vec_32_16 834826918 0.28% 0 0 - btreemap_v2_remove_vec_32_256 1238341769 0.03% 0 0 - btreemap_v2_remove_vec_32_32 841693645 0.30% 0 0 - btreemap_v2_remove_vec_32_4 840170276 0.31% 0 0 - btreemap_v2_remove_vec_32_512 1401695456 0.87% 0 0 - btreemap_v2_remove_vec_32_64 924632537 0.58% 0 0 - btreemap_v2_remove_vec_32_8 833854541 0.30% 0 0 - btreemap_v2_remove_vec_4_128 647882487 -1.27% 0 0 - btreemap_v2_remove_vec_512_128 3266943550 -0.04% 0 0 - btreemap_v2_remove_vec_64_128 1179932505 -0.10% 0 0 - btreemap_v2_remove_vec_8_128 822292826 0.57% 0 0 - btreemap_v2_scan_iter_1k_0b 1493608 0.01% 0 0 + btreemap_v2_remove_vec_32_1024 1680348770 0.00% 0 0 + btreemap_v2_remove_vec_32_128 1011708017 0.00% 0 0 + btreemap_v2_remove_vec_32_16 834826918 0.00% 0 0 + btreemap_v2_remove_vec_32_256 1238341769 0.00% 0 0 + btreemap_v2_remove_vec_32_32 841693645 0.00% 0 0 + btreemap_v2_remove_vec_32_4 840170276 0.00% 0 0 + btreemap_v2_remove_vec_32_512 1401695456 0.00% 0 0 + btreemap_v2_remove_vec_32_64 924632537 0.00% 0 0 + btreemap_v2_remove_vec_32_8 833854541 0.00% 0 0 + btreemap_v2_remove_vec_4_128 647882487 0.00% 0 0 + btreemap_v2_remove_vec_512_128 3266943550 0.00% 0 0 + btreemap_v2_remove_vec_64_128 1179932505 0.00% 0 0 + btreemap_v2_remove_vec_8_128 822292826 0.00% 0 0 + btreemap_v2_scan_iter_1k_0b 1493608 0.00% 0 0 btreemap_v2_scan_iter_1k_10kib 57070268 0.00% 0 0 btreemap_v2_scan_iter_20_10mib 1103719780 0.00% 0 0 - btreemap_v2_scan_iter_rev_1k_0b 1495895 0.01% 0 0 + btreemap_v2_scan_iter_rev_1k_0b 1495895 0.00% 0 0 btreemap_v2_scan_iter_rev_1k_10kib 57048055 0.00% 0 0 btreemap_v2_scan_iter_rev_20_10mib 1103719362 0.00% 0 0 - btreemap_v2_scan_keys_1k_0b 948235 0.01% 0 0 - btreemap_v2_scan_keys_1k_10kib 2361935 0.01% 0 0 + btreemap_v2_scan_keys_1k_0b 948235 0.00% 0 0 + btreemap_v2_scan_keys_1k_10kib 2361935 0.00% 0 0 btreemap_v2_scan_keys_20_10mib 18465489 0.00% 0 0 - btreemap_v2_scan_keys_rev_1k_0b 965620 0.01% 0 0 - btreemap_v2_scan_keys_rev_1k_10kib 2357983 0.01% 0 0 + btreemap_v2_scan_keys_rev_1k_0b 965620 0.00% 0 0 + btreemap_v2_scan_keys_rev_1k_10kib 2357983 0.00% 0 0 btreemap_v2_scan_keys_rev_20_10mib 18465824 0.00% 0 0 - btreemap_v2_scan_values_1k_0b 1491006 0.01% 0 0 + btreemap_v2_scan_values_1k_0b 1491006 0.00% 0 0 btreemap_v2_scan_values_1k_10kib 57067666 0.00% 0 0 btreemap_v2_scan_values_20_10mib 1103719730 0.00% 0 0 - btreemap_v2_scan_values_rev_1k_0b 1493293 0.01% 0 0 + btreemap_v2_scan_values_rev_1k_0b 1493293 0.00% 0 0 btreemap_v2_scan_values_rev_1k_10kib 57045453 0.00% 0 0 btreemap_v2_scan_values_rev_20_10mib 1103719312 0.00% 0 0 memory_manager_baseline 1176576907 0.00% 0 8000 0.00% memory_manager_grow 346601964 0.00% 2 0.00% 32000 0.00% memory_manager_overhead 1181961735 0.00% 0 8320 0.00% - vec_get_blob_128 19156662 -0.31% 0 0 - vec_get_blob_16 6375946 -0.87% 0 0 - vec_get_blob_32 7093505 -0.81% 0 0 - vec_get_blob_4 4824327 -0.93% 0 0 - vec_get_blob_4_mem_manager 7191677 -0.63% 0 0 - vec_get_blob_64 11260944 -0.52% 0 0 - vec_get_blob_64_mem_manager 13581092 -0.43% 0 0 - vec_get_blob_8 5723201 -0.92% 0 0 - vec_get_u64 5270306 -1.13% 0 0 + vec_get_blob_128 19156662 0.00% 0 0 + vec_get_blob_16 6375946 0.00% 0 0 + vec_get_blob_32 7093505 0.00% 0 0 + vec_get_blob_4 4824327 0.00% 0 0 + vec_get_blob_4_mem_manager 7191677 0.00% 0 0 + vec_get_blob_64 11260944 0.00% 0 0 + vec_get_blob_64_mem_manager 13581092 0.00% 0 0 + vec_get_blob_8 5723201 0.00% 0 0 + vec_get_u64 5270306 0.00% 0 0 vec_insert_blob_128 4151425 0.00% 0 19 0.00% vec_insert_blob_16 3316228 0.00% 0 2 0.00% vec_insert_blob_32 3435468 0.00% 0 5 0.00% vec_insert_blob_4 3227469 0.00% 0 0 vec_insert_blob_64 3675805 0.00% 0 9 0.00% vec_insert_blob_8 3256890 0.00% 0 1 0.00% - vec_insert_u64 5869520 -1.01% 0 1 0.00% + vec_insert_u64 5869520 0.00% 0 1 0.00% From 63a83aa66e2da0aa9decf752aa40f83160e7f24c Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Wed, 7 May 2025 14:44:25 +0200 Subject: [PATCH 49/68] update canbench_results.csv --- canbench_results.csv | 810 +++++++++++++++++++++---------------------- 1 file changed, 405 insertions(+), 405 deletions(-) diff --git a/canbench_results.csv b/canbench_results.csv index 0334697d..ff5c3ef3 100644 --- a/canbench_results.csv +++ b/canbench_results.csv @@ -1,409 +1,409 @@ status name instructions instructions % heap_increase heap_increase % stable_memory_increase stable_memory_increase % - btreemap_v1_contains_blob8_u64 194964325 0.00% 0 0 - btreemap_v1_contains_blob_1024_128 4811678256 0.00% 0 0 - btreemap_v1_contains_blob_128_128 848821075 0.00% 0 0 - btreemap_v1_contains_blob_16_128 227130263 0.00% 0 0 - btreemap_v1_contains_blob_256_128 1400918183 0.00% 0 0 - btreemap_v1_contains_blob_32_1024 258423010 0.00% 0 0 - btreemap_v1_contains_blob_32_128 252967804 0.00% 0 0 - btreemap_v1_contains_blob_32_16 262136410 0.00% 0 0 - btreemap_v1_contains_blob_32_256 258805575 0.00% 0 0 - btreemap_v1_contains_blob_32_32 260774803 0.00% 0 0 - btreemap_v1_contains_blob_32_4 257441140 0.00% 0 0 - btreemap_v1_contains_blob_32_512 255106465 0.00% 0 0 - btreemap_v1_contains_blob_32_64 254263738 0.00% 0 0 - btreemap_v1_contains_blob_32_8 256262361 0.00% 0 0 - btreemap_v1_contains_blob_4_128 165470839 0.00% 0 0 - btreemap_v1_contains_blob_512_128 2543816260 0.00% 0 0 - btreemap_v1_contains_blob_64_128 494398463 0.00% 0 0 - btreemap_v1_contains_blob_8_128 188408544 0.00% 0 0 - btreemap_v1_contains_u64_blob8 165774167 0.00% 0 0 - btreemap_v1_contains_u64_u64 165565754 0.00% 0 0 - btreemap_v1_get_blob8_u64 203390426 0.00% 0 0 - btreemap_v1_get_blob_1024_128 4868477772 0.00% 0 0 - btreemap_v1_get_blob_128_128 867025588 0.00% 0 0 - btreemap_v1_get_blob_16_128 240229350 0.00% 0 0 - btreemap_v1_get_blob_256_128 1426193247 0.00% 0 0 - btreemap_v1_get_blob_32_1024 276684587 0.00% 0 0 - btreemap_v1_get_blob_32_128 265367267 0.00% 0 0 - btreemap_v1_get_blob_32_16 270023113 0.00% 0 0 - btreemap_v1_get_blob_32_256 272563236 0.00% 0 0 - btreemap_v1_get_blob_32_32 269464920 0.00% 0 0 - btreemap_v1_get_blob_32_4 264590610 0.00% 0 0 - btreemap_v1_get_blob_32_512 270506018 0.00% 0 0 - btreemap_v1_get_blob_32_64 264723575 0.00% 0 0 - btreemap_v1_get_blob_32_8 264461611 0.00% 0 0 - btreemap_v1_get_blob_4_128 178539304 0.00% 0 0 - btreemap_v1_get_blob_512_128 2578989071 0.00% 0 0 - btreemap_v1_get_blob_64_128 508633530 0.00% 0 0 - btreemap_v1_get_blob_8_128 201236677 0.00% 0 0 - btreemap_v1_get_u64_blob8 173008513 0.00% 0 0 - btreemap_v1_get_u64_u64 173995203 0.00% 0 0 - btreemap_v1_insert_blob8_u64 329986725 0.00% 0 6 0.00% - btreemap_v1_insert_blob_1024_128 5007942824 0.00% 0 262 0.00% - btreemap_v1_insert_blob_128_128 1026805160 0.00% 0 61 0.00% - btreemap_v1_insert_blob_16_128 391942071 0.00% 0 32 0.00% - btreemap_v1_insert_blob_256_128 1576965603 0.00% 0 90 0.00% - btreemap_v1_insert_blob_32_1024 585609756 0.00% 0 230 0.00% - btreemap_v1_insert_blob_32_128 424489333 0.00% 0 37 0.00% - btreemap_v1_insert_blob_32_16 405326475 0.00% 0 14 0.00% - btreemap_v1_insert_blob_32_256 454178716 0.00% 0 66 0.00% - btreemap_v1_insert_blob_32_32 408531668 0.00% 0 17 0.00% - btreemap_v1_insert_blob_32_4 393759972 0.00% 0 11 0.00% - btreemap_v1_insert_blob_32_512 495214435 0.00% 0 121 0.00% - btreemap_v1_insert_blob_32_64 412537755 0.00% 0 24 0.00% - btreemap_v1_insert_blob_32_8 398133513 0.00% 0 12 0.00% - btreemap_v1_insert_blob_4_128 313593329 0.00% 0 17 0.00% - btreemap_v1_insert_blob_512_128 2754557121 0.00% 0 148 0.00% - btreemap_v1_insert_blob_64_128 671082804 0.00% 0 46 0.00% - btreemap_v1_insert_blob_8_128 358579533 0.00% 0 27 0.00% - btreemap_v1_insert_u64_blob8 339932921 0.00% 0 7 0.00% - btreemap_v1_insert_u64_u64 345608503 0.00% 0 7 0.00% - btreemap_v1_pop_first_blob8_u64 441600212 0.00% 0 0 - btreemap_v1_pop_first_blob_1024_128 9210292778 0.00% 0 0 - btreemap_v1_pop_first_blob_128_128 1819146872 0.00% 0 0 - btreemap_v1_pop_first_blob_16_128 588472296 0.00% 0 0 - btreemap_v1_pop_first_blob_256_128 2896727052 0.00% 0 0 - btreemap_v1_pop_first_blob_32_1024 958303933 0.00% 0 0 - btreemap_v1_pop_first_blob_32_128 696856907 0.00% 0 0 - btreemap_v1_pop_first_blob_32_16 643862300 0.00% 0 0 - btreemap_v1_pop_first_blob_32_256 733623810 0.00% 0 0 - btreemap_v1_pop_first_blob_32_32 654116869 0.00% 0 0 - btreemap_v1_pop_first_blob_32_4 624710634 0.00% 0 0 - btreemap_v1_pop_first_blob_32_512 799092498 0.00% 0 0 - btreemap_v1_pop_first_blob_32_64 663763332 0.00% 0 0 - btreemap_v1_pop_first_blob_32_8 640838262 0.00% 0 0 - btreemap_v1_pop_first_blob_4_128 279547807 0.00% 0 0 - btreemap_v1_pop_first_blob_512_128 4985501756 0.00% 0 0 - btreemap_v1_pop_first_blob_64_128 1148383275 0.00% 0 0 - btreemap_v1_pop_first_blob_8_128 466033258 0.00% 0 0 - btreemap_v1_pop_first_u64_blob8 554388115 0.00% 0 0 - btreemap_v1_pop_first_u64_u64 557488351 0.00% 0 0 - btreemap_v1_pop_last_blob8_u64 426716755 0.00% 0 0 - btreemap_v1_pop_last_blob_1024_128 9027882338 0.00% 0 0 - btreemap_v1_pop_last_blob_128_128 1774788118 0.00% 0 0 - btreemap_v1_pop_last_blob_16_128 579169231 0.00% 0 0 - btreemap_v1_pop_last_blob_256_128 2829351769 0.00% 0 0 - btreemap_v1_pop_last_blob_32_1024 937223741 0.00% 0 0 - btreemap_v1_pop_last_blob_32_128 674115649 0.00% 0 0 - btreemap_v1_pop_last_blob_32_16 624838280 0.00% 0 0 - btreemap_v1_pop_last_blob_32_256 711983530 0.00% 0 0 - btreemap_v1_pop_last_blob_32_32 635001845 0.00% 0 0 - btreemap_v1_pop_last_blob_32_4 612396356 0.00% 0 0 - btreemap_v1_pop_last_blob_32_512 781703090 0.00% 0 0 - btreemap_v1_pop_last_blob_32_64 643402362 0.00% 0 0 - btreemap_v1_pop_last_blob_32_8 617542418 0.00% 0 0 - btreemap_v1_pop_last_blob_4_128 271975462 0.00% 0 0 - btreemap_v1_pop_last_blob_512_128 4867658077 0.00% 0 0 - btreemap_v1_pop_last_blob_64_128 1116571899 0.00% 0 0 - btreemap_v1_pop_last_blob_8_128 462788982 0.00% 0 0 - btreemap_v1_pop_last_u64_blob8 541957924 0.00% 0 0 - btreemap_v1_pop_last_u64_u64 544107722 0.00% 0 0 - btreemap_v1_remove_blob8_u64 440652789 0.00% 0 0 - btreemap_v1_remove_blob_1024_128 6330406626 0.00% 0 0 - btreemap_v1_remove_blob_128_128 1321192633 0.00% 0 0 - btreemap_v1_remove_blob_16_128 539010219 0.00% 0 0 - btreemap_v1_remove_blob_256_128 2046189107 0.00% 0 0 - btreemap_v1_remove_blob_32_1024 826965331 0.00% 0 0 - btreemap_v1_remove_blob_32_128 589987880 0.00% 0 0 - btreemap_v1_remove_blob_32_16 546351365 0.00% 0 0 - btreemap_v1_remove_blob_32_256 626317576 0.00% 0 0 - btreemap_v1_remove_blob_32_32 555010200 0.00% 0 0 - btreemap_v1_remove_blob_32_4 538629074 0.00% 0 0 - btreemap_v1_remove_blob_32_512 697870456 0.00% 0 0 - btreemap_v1_remove_blob_32_64 576024269 0.00% 0 0 - btreemap_v1_remove_blob_32_8 539283194 0.00% 0 0 - btreemap_v1_remove_blob_4_128 344004557 0.00% 0 0 - btreemap_v1_remove_blob_512_128 3456175013 0.00% 0 0 - btreemap_v1_remove_blob_64_128 876109417 0.00% 0 0 - btreemap_v1_remove_blob_8_128 470964477 0.00% 0 0 - btreemap_v1_remove_u64_blob8 486384152 0.00% 0 0 - btreemap_v1_remove_u64_u64 499799718 0.00% 0 0 - btreemap_v2_contains_10mib_values 142217957 0.00% 0 0 - btreemap_v2_contains_blob8_u64 277214343 0.00% 0 0 - btreemap_v2_contains_blob_1024_128 4898946611 0.00% 0 0 - btreemap_v2_contains_blob_128_128 925555742 0.00% 0 0 - btreemap_v2_contains_blob_16_128 300251473 0.00% 0 0 - btreemap_v2_contains_blob_256_128 1482925551 0.00% 0 0 - btreemap_v2_contains_blob_32_1024 337656769 0.00% 0 0 - btreemap_v2_contains_blob_32_128 333839954 0.00% 0 0 - btreemap_v2_contains_blob_32_16 338174754 0.00% 0 0 - btreemap_v2_contains_blob_32_256 340508248 0.00% 0 0 - btreemap_v2_contains_blob_32_32 339595438 0.00% 0 0 - btreemap_v2_contains_blob_32_4 336896704 0.00% 0 0 - btreemap_v2_contains_blob_32_512 334090366 0.00% 0 0 - btreemap_v2_contains_blob_32_64 339081358 0.00% 0 0 - btreemap_v2_contains_blob_32_8 337301632 0.00% 0 0 - btreemap_v2_contains_blob_4_128 244740121 0.00% 0 0 - btreemap_v2_contains_blob_512_128 2625290726 0.00% 0 0 - btreemap_v2_contains_blob_64_128 582248673 0.00% 0 0 - btreemap_v2_contains_blob_8_128 269128362 0.00% 0 0 - btreemap_v2_contains_u64_blob8 233256018 0.00% 0 0 - btreemap_v2_contains_u64_u64 238556483 0.00% 0 0 - btreemap_v2_contains_u64_vec8 233256018 0.00% 0 0 - btreemap_v2_contains_vec8_u64 366392438 0.00% 0 0 - btreemap_v2_contains_vec_1024_128 2831649126 0.00% 0 0 - btreemap_v2_contains_vec_128_128 697463829 0.00% 0 0 - btreemap_v2_contains_vec_16_128 429709958 0.00% 0 0 - btreemap_v2_contains_vec_256_128 1219637100 0.00% 0 0 - btreemap_v2_contains_vec_32_1024 583325661 0.00% 0 0 - btreemap_v2_contains_vec_32_128 488605668 0.00% 0 0 - btreemap_v2_contains_vec_32_16 407833357 0.00% 0 0 - btreemap_v2_contains_vec_32_256 518646836 0.00% 0 0 - btreemap_v2_contains_vec_32_32 408431266 0.00% 0 0 - btreemap_v2_contains_vec_32_4 406670633 0.00% 0 0 - btreemap_v2_contains_vec_32_512 535001628 0.00% 0 0 - btreemap_v2_contains_vec_32_64 463282662 0.00% 0 0 - btreemap_v2_contains_vec_32_8 406570012 0.00% 0 0 - btreemap_v2_contains_vec_4_128 396937070 0.00% 0 0 - btreemap_v2_contains_vec_512_128 1811262338 0.00% 0 0 - btreemap_v2_contains_vec_64_128 594718276 0.00% 0 0 - btreemap_v2_contains_vec_8_128 389233979 0.00% 0 0 - btreemap_v2_get_10mib_values 1227477610 0.00% 0 0 - btreemap_v2_get_blob8_u64 299887024 0.00% 0 0 - btreemap_v2_get_blob_1024_128 4955392518 0.00% 0 0 - btreemap_v2_get_blob_128_128 947748410 0.00% 0 0 - btreemap_v2_get_blob_16_128 314026459 0.00% 0 0 - btreemap_v2_get_blob_256_128 1508348279 0.00% 0 0 - btreemap_v2_get_blob_32_1024 356990156 0.00% 0 0 - btreemap_v2_get_blob_32_128 347448180 0.00% 0 0 - btreemap_v2_get_blob_32_16 347299656 0.00% 0 0 - btreemap_v2_get_blob_32_256 355303994 0.00% 0 0 - btreemap_v2_get_blob_32_32 349432439 0.00% 0 0 - btreemap_v2_get_blob_32_4 344295894 0.00% 0 0 - btreemap_v2_get_blob_32_512 350683063 0.00% 0 0 - btreemap_v2_get_blob_32_64 350846830 0.00% 0 0 - btreemap_v2_get_blob_32_8 345200526 0.00% 0 0 - btreemap_v2_get_blob_4_128 257331691 0.00% 0 0 - btreemap_v2_get_blob_512_128 2661000456 0.00% 0 0 - btreemap_v2_get_blob_64_128 599970891 0.00% 0 0 - btreemap_v2_get_blob_8_128 282280016 0.00% 0 0 - btreemap_v2_get_u64_blob8 243494852 0.00% 0 0 - btreemap_v2_get_u64_u64 250731335 0.00% 0 0 - btreemap_v2_get_u64_vec8 244234847 0.00% 0 0 - btreemap_v2_get_vec8_u64 376783066 0.00% 0 0 - btreemap_v2_get_vec_1024_128 2901574721 0.00% 0 0 - btreemap_v2_get_vec_128_128 710234642 0.00% 0 0 - btreemap_v2_get_vec_16_128 439609550 0.00% 0 0 - btreemap_v2_get_vec_256_128 1232922460 0.00% 0 0 - btreemap_v2_get_vec_32_1024 597773339 0.00% 0 0 - btreemap_v2_get_vec_32_128 498889261 0.00% 0 0 - btreemap_v2_get_vec_32_16 415897245 0.00% 0 0 - btreemap_v2_get_vec_32_256 538935052 0.00% 0 0 - btreemap_v2_get_vec_32_32 416645143 0.00% 0 0 - btreemap_v2_get_vec_32_4 414613272 0.00% 0 0 - btreemap_v2_get_vec_32_512 558129383 0.00% 0 0 - btreemap_v2_get_vec_32_64 471860937 0.00% 0 0 - btreemap_v2_get_vec_32_8 414552400 0.00% 0 0 - btreemap_v2_get_vec_4_128 406578925 0.00% 0 0 - btreemap_v2_get_vec_512_128 1824668003 0.00% 0 0 - btreemap_v2_get_vec_64_128 606199240 0.00% 0 0 - btreemap_v2_get_vec_8_128 399016651 0.00% 0 0 - btreemap_v2_insert_10mib_values 5247391058 0.00% 322 0.00% 3613 0.00% - btreemap_v2_insert_blob8_u64 441373352 0.00% 0 4 0.00% - btreemap_v2_insert_blob_1024_128 5106163080 0.00% 0 196 0.00% - btreemap_v2_insert_blob_128_128 1134482770 0.00% 0 46 0.00% - btreemap_v2_insert_blob_16_128 495587755 0.00% 0 24 0.00% - btreemap_v2_insert_blob_256_128 1684101470 0.00% 0 67 0.00% - btreemap_v2_insert_blob_32_1024 687624180 0.00% 0 173 0.00% - btreemap_v2_insert_blob_32_128 529998238 0.00% 0 28 0.00% - btreemap_v2_insert_blob_32_16 510178804 0.00% 0 11 0.00% - btreemap_v2_insert_blob_32_256 561097508 0.00% 0 49 0.00% - btreemap_v2_insert_blob_32_32 515356067 0.00% 0 13 0.00% - btreemap_v2_insert_blob_32_4 498526133 0.00% 0 8 0.00% - btreemap_v2_insert_blob_32_512 598012415 0.00% 0 91 0.00% - btreemap_v2_insert_blob_32_64 520261508 0.00% 0 18 0.00% - btreemap_v2_insert_blob_32_8 506047152 0.00% 0 9 0.00% - btreemap_v2_insert_blob_4_128 411190916 0.00% 0 13 0.00% - btreemap_v2_insert_blob_512_128 2856354766 0.00% 0 111 0.00% - btreemap_v2_insert_blob_64_128 778656834 0.00% 0 34 0.00% - btreemap_v2_insert_blob_8_128 463637152 0.00% 0 20 0.00% - btreemap_v2_insert_u64_blob8 422673065 0.00% 0 5 0.00% - btreemap_v2_insert_u64_u64 431142993 0.00% 0 6 0.00% - btreemap_v2_insert_u64_vec8 429735780 0.00% 0 21 0.00% - btreemap_v2_insert_vec8_u64 582161939 0.00% 0 16 0.00% - btreemap_v2_insert_vec_1024_128 3320218687 0.00% 0 193 0.00% - btreemap_v2_insert_vec_128_128 1097316458 0.00% 0 51 0.00% - btreemap_v2_insert_vec_16_128 704073865 0.00% 0 31 0.00% - btreemap_v2_insert_vec_256_128 1507394441 0.00% 0 71 0.00% - btreemap_v2_insert_vec_32_1024 1223025783 0.00% 0 171 0.00% - btreemap_v2_insert_vec_32_128 761860698 0.00% 0 33 0.00% - btreemap_v2_insert_vec_32_16 664111576 0.00% 0 20 0.00% - btreemap_v2_insert_vec_32_256 890884138 0.00% 0 54 0.00% - btreemap_v2_insert_vec_32_32 666104854 0.00% 0 20 0.00% - btreemap_v2_insert_vec_32_4 660982082 0.00% 0 20 0.00% - btreemap_v2_insert_vec_32_512 1009309654 0.00% 0 91 0.00% - btreemap_v2_insert_vec_32_64 691846737 0.00% 0 24 0.00% - btreemap_v2_insert_vec_32_8 660579111 0.00% 0 20 0.00% - btreemap_v2_insert_vec_4_128 608945447 0.00% 0 16 0.00% - btreemap_v2_insert_vec_512_128 2128531367 0.00% 0 112 0.00% - btreemap_v2_insert_vec_64_128 879671097 0.00% 0 41 0.00% - btreemap_v2_insert_vec_8_128 666730079 0.00% 0 23 0.00% - btreemap_v2_mem_manager_contains_blob512_u64 2716382295 0.00% 0 0 - btreemap_v2_mem_manager_contains_u64_blob512 309085018 0.00% 0 0 - btreemap_v2_mem_manager_contains_u64_u64 314061355 0.00% 0 0 - btreemap_v2_mem_manager_contains_u64_vec512 395977762 0.00% 0 0 - btreemap_v2_mem_manager_contains_vec512_u64 1773578767 0.00% 0 0 - btreemap_v2_mem_manager_get_blob512_u64 2761459393 0.00% 0 0 - btreemap_v2_mem_manager_get_u64_blob512 326380391 0.00% 0 0 - btreemap_v2_mem_manager_get_u64_u64 328140916 0.00% 0 0 - btreemap_v2_mem_manager_get_u64_vec512 423093906 0.00% 0 0 - btreemap_v2_mem_manager_get_vec512_u64 1811142474 0.00% 0 0 - btreemap_v2_mem_manager_insert_blob512_u64 2958972800 0.00% 0 0 - btreemap_v2_mem_manager_insert_u64_blob512 646615329 0.00% 0 0 - btreemap_v2_mem_manager_insert_u64_u64 560299851 0.00% 0 0 - btreemap_v2_mem_manager_insert_u64_vec512 898844460 0.00% 0 0 - btreemap_v2_mem_manager_insert_vec512_u64 2251012407 0.00% 0 0 - btreemap_v2_mem_manager_remove_blob512_u64 3844702018 0.00% 0 0 - btreemap_v2_mem_manager_remove_u64_blob512 946812832 0.00% 0 0 - btreemap_v2_mem_manager_remove_u64_u64 806835295 0.00% 0 0 - btreemap_v2_mem_manager_remove_u64_vec512 1283899492 0.00% 0 0 - btreemap_v2_mem_manager_remove_vec512_u64 3327399755 0.00% 0 0 - btreemap_v2_pop_first_blob8_u64 610097435 0.00% 0 0 - btreemap_v2_pop_first_blob_1024_128 9397216286 0.00% 0 0 - btreemap_v2_pop_first_blob_128_128 2007433379 0.00% 0 0 - btreemap_v2_pop_first_blob_16_128 758505635 0.00% 0 0 - btreemap_v2_pop_first_blob_256_128 3093241998 0.00% 0 0 - btreemap_v2_pop_first_blob_32_1024 1134488534 0.00% 0 0 - btreemap_v2_pop_first_blob_32_128 878776661 0.00% 0 0 - btreemap_v2_pop_first_blob_32_16 820290659 0.00% 0 0 - btreemap_v2_pop_first_blob_32_256 909475486 0.00% 0 0 - btreemap_v2_pop_first_blob_32_32 832679269 0.00% 0 0 - btreemap_v2_pop_first_blob_32_4 803396353 0.00% 0 0 - btreemap_v2_pop_first_blob_32_512 975136110 0.00% 0 0 - btreemap_v2_pop_first_blob_32_64 840995585 0.00% 0 0 - btreemap_v2_pop_first_blob_32_8 819129261 0.00% 0 0 - btreemap_v2_pop_first_blob_4_128 372375122 0.00% 0 0 - btreemap_v2_pop_first_blob_512_128 5170729534 0.00% 0 0 - btreemap_v2_pop_first_blob_64_128 1329714089 0.00% 0 0 - btreemap_v2_pop_first_blob_8_128 612208263 0.00% 0 0 - btreemap_v2_pop_first_u64_blob8 705892053 0.00% 0 0 - btreemap_v2_pop_first_u64_u64 719150807 0.00% 0 0 - btreemap_v2_pop_first_u64_vec8 710034544 0.00% 0 0 - btreemap_v2_pop_first_vec8_u64 783784225 0.00% 0 0 - btreemap_v2_pop_first_vec_1024_128 5768601227 0.00% 0 0 - btreemap_v2_pop_first_vec_128_128 1815908841 0.00% 0 0 - btreemap_v2_pop_first_vec_16_128 1025275233 0.00% 0 0 - btreemap_v2_pop_first_vec_256_128 2526957213 0.00% 0 0 - btreemap_v2_pop_first_vec_32_1024 1812672679 0.00% 0 0 - btreemap_v2_pop_first_vec_32_128 1205877175 0.00% 0 0 - btreemap_v2_pop_first_vec_32_16 1038665239 0.00% 0 0 - btreemap_v2_pop_first_vec_32_256 1328280204 0.00% 0 0 - btreemap_v2_pop_first_vec_32_32 1055171969 0.00% 0 0 - btreemap_v2_pop_first_vec_32_4 1036107253 0.00% 0 0 - btreemap_v2_pop_first_vec_32_512 1490507215 0.00% 0 0 - btreemap_v2_pop_first_vec_32_64 1090635398 0.00% 0 0 - btreemap_v2_pop_first_vec_32_8 1048510168 0.00% 0 0 - btreemap_v2_pop_first_vec_4_128 537971781 0.00% 0 0 - btreemap_v2_pop_first_vec_512_128 3605170755 0.00% 0 0 - btreemap_v2_pop_first_vec_64_128 1400023412 0.00% 0 0 - btreemap_v2_pop_first_vec_8_128 846583253 0.00% 0 0 - btreemap_v2_pop_last_blob8_u64 593267468 0.00% 0 0 - btreemap_v2_pop_last_blob_1024_128 9217874627 0.00% 0 0 - btreemap_v2_pop_last_blob_128_128 1959347279 0.00% 0 0 - btreemap_v2_pop_last_blob_16_128 739233011 0.00% 0 0 - btreemap_v2_pop_last_blob_256_128 3018533213 0.00% 0 0 - btreemap_v2_pop_last_blob_32_1024 1114768577 0.00% 0 0 - btreemap_v2_pop_last_blob_32_128 856410708 0.00% 0 0 - btreemap_v2_pop_last_blob_32_16 799923507 0.00% 0 0 - btreemap_v2_pop_last_blob_32_256 888911791 0.00% 0 0 - btreemap_v2_pop_last_blob_32_32 811998333 0.00% 0 0 - btreemap_v2_pop_last_blob_32_4 788882349 0.00% 0 0 - btreemap_v2_pop_last_blob_32_512 957263780 0.00% 0 0 - btreemap_v2_pop_last_blob_32_64 822799302 0.00% 0 0 - btreemap_v2_pop_last_blob_32_8 798965415 0.00% 0 0 - btreemap_v2_pop_last_blob_4_128 363906126 0.00% 0 0 - btreemap_v2_pop_last_blob_512_128 5052214736 0.00% 0 0 - btreemap_v2_pop_last_blob_64_128 1308620317 0.00% 0 0 - btreemap_v2_pop_last_blob_8_128 612185424 0.00% 0 0 - btreemap_v2_pop_last_u64_blob8 693662883 0.00% 0 0 - btreemap_v2_pop_last_u64_u64 705949750 0.00% 0 0 - btreemap_v2_pop_last_u64_vec8 696415691 0.00% 0 0 - btreemap_v2_pop_last_vec8_u64 764594107 0.00% 0 0 - btreemap_v2_pop_last_vec_1024_128 6018998629 0.00% 0 0 - btreemap_v2_pop_last_vec_128_128 1831437061 0.00% 0 0 - btreemap_v2_pop_last_vec_16_128 1013525971 0.00% 0 0 - btreemap_v2_pop_last_vec_256_128 2582856979 0.00% 0 0 - btreemap_v2_pop_last_vec_32_1024 1807678468 0.00% 0 0 - btreemap_v2_pop_last_vec_32_128 1204371315 0.00% 0 0 - btreemap_v2_pop_last_vec_32_16 1028791023 0.00% 0 0 - btreemap_v2_pop_last_vec_32_256 1325707543 0.00% 0 0 - btreemap_v2_pop_last_vec_32_32 1044763371 0.00% 0 0 - btreemap_v2_pop_last_vec_32_4 1033959258 0.00% 0 0 - btreemap_v2_pop_last_vec_32_512 1490497731 0.00% 0 0 - btreemap_v2_pop_last_vec_32_64 1085292901 0.00% 0 0 - btreemap_v2_pop_last_vec_32_8 1035755953 0.00% 0 0 - btreemap_v2_pop_last_vec_4_128 529153123 0.00% 0 0 - btreemap_v2_pop_last_vec_512_128 3726754094 0.00% 0 0 - btreemap_v2_pop_last_vec_64_128 1412106259 0.00% 0 0 - btreemap_v2_pop_last_vec_8_128 854240460 0.00% 0 0 - btreemap_v2_range_count_1k_0b 16863 0.00% 0 0 - btreemap_v2_range_count_1k_10kib 2433555 0.00% 0 0 - btreemap_v2_range_count_20_10mib 20572756 0.00% 0 0 - btreemap_v2_range_key_sum_1k_0b 17472 0.00% 0 0 - btreemap_v2_range_key_sum_1k_10kib 57248241 0.00% 0 0 - btreemap_v2_range_key_sum_20_10mib 1105826495 0.00% 0 0 - btreemap_v2_range_value_sum_1k_0b 17486 0.00% 0 0 - btreemap_v2_range_value_sum_1k_10kib 57260237 0.00% 0 0 - btreemap_v2_range_value_sum_20_10mib 1105826731 0.00% 0 0 - btreemap_v2_remove_10mib_values 5573675958 0.00% 0 657 0.00% - btreemap_v2_remove_blob8_u64 589204655 0.00% 0 0 - btreemap_v2_remove_blob_1024_128 6474679665 0.00% 0 0 - btreemap_v2_remove_blob_128_128 1466727057 0.00% 0 0 - btreemap_v2_remove_blob_16_128 680456789 0.00% 0 0 - btreemap_v2_remove_blob_256_128 2195090992 0.00% 0 0 - btreemap_v2_remove_blob_32_1024 967043546 0.00% 0 0 - btreemap_v2_remove_blob_32_128 732131285 0.00% 0 0 - btreemap_v2_remove_blob_32_16 687946321 0.00% 0 0 - btreemap_v2_remove_blob_32_256 767243066 0.00% 0 0 - btreemap_v2_remove_blob_32_32 696520229 0.00% 0 0 - btreemap_v2_remove_blob_32_4 680067993 0.00% 0 0 - btreemap_v2_remove_blob_32_512 838959445 0.00% 0 0 - btreemap_v2_remove_blob_32_64 720951953 0.00% 0 0 - btreemap_v2_remove_blob_32_8 679964928 0.00% 0 0 - btreemap_v2_remove_blob_4_128 455950575 0.00% 0 0 - btreemap_v2_remove_blob_512_128 3599722153 0.00% 0 0 - btreemap_v2_remove_blob_64_128 1020586460 0.00% 0 0 - btreemap_v2_remove_blob_8_128 608937116 0.00% 0 0 - btreemap_v2_remove_u64_blob8 598070676 0.00% 0 0 - btreemap_v2_remove_u64_u64 620231677 0.00% 0 0 - btreemap_v2_remove_u64_vec8 603988416 0.00% 0 0 - btreemap_v2_remove_vec8_u64 751143040 0.00% 0 0 - btreemap_v2_remove_vec_1024_128 4984095519 0.00% 0 0 - btreemap_v2_remove_vec_128_128 1452997160 0.00% 0 0 - btreemap_v2_remove_vec_16_128 907562996 0.00% 0 0 - btreemap_v2_remove_vec_256_128 2315915215 0.00% 0 0 - btreemap_v2_remove_vec_32_1024 1680348770 0.00% 0 0 - btreemap_v2_remove_vec_32_128 1011708017 0.00% 0 0 - btreemap_v2_remove_vec_32_16 834826918 0.00% 0 0 - btreemap_v2_remove_vec_32_256 1238341769 0.00% 0 0 - btreemap_v2_remove_vec_32_32 841693645 0.00% 0 0 - btreemap_v2_remove_vec_32_4 840170276 0.00% 0 0 - btreemap_v2_remove_vec_32_512 1401695456 0.00% 0 0 - btreemap_v2_remove_vec_32_64 924632537 0.00% 0 0 - btreemap_v2_remove_vec_32_8 833854541 0.00% 0 0 - btreemap_v2_remove_vec_4_128 647882487 0.00% 0 0 - btreemap_v2_remove_vec_512_128 3266943550 0.00% 0 0 - btreemap_v2_remove_vec_64_128 1179932505 0.00% 0 0 - btreemap_v2_remove_vec_8_128 822292826 0.00% 0 0 - btreemap_v2_scan_iter_1k_0b 1493608 0.00% 0 0 - btreemap_v2_scan_iter_1k_10kib 57070268 0.00% 0 0 - btreemap_v2_scan_iter_20_10mib 1103719780 0.00% 0 0 - btreemap_v2_scan_iter_rev_1k_0b 1495895 0.00% 0 0 - btreemap_v2_scan_iter_rev_1k_10kib 57048055 0.00% 0 0 - btreemap_v2_scan_iter_rev_20_10mib 1103719362 0.00% 0 0 - btreemap_v2_scan_keys_1k_0b 948235 0.00% 0 0 - btreemap_v2_scan_keys_1k_10kib 2361935 0.00% 0 0 - btreemap_v2_scan_keys_20_10mib 18465489 0.00% 0 0 - btreemap_v2_scan_keys_rev_1k_0b 965620 0.00% 0 0 - btreemap_v2_scan_keys_rev_1k_10kib 2357983 0.00% 0 0 - btreemap_v2_scan_keys_rev_20_10mib 18465824 0.00% 0 0 - btreemap_v2_scan_values_1k_0b 1491006 0.00% 0 0 - btreemap_v2_scan_values_1k_10kib 57067666 0.00% 0 0 - btreemap_v2_scan_values_20_10mib 1103719730 0.00% 0 0 - btreemap_v2_scan_values_rev_1k_0b 1493293 0.00% 0 0 - btreemap_v2_scan_values_rev_1k_10kib 57045453 0.00% 0 0 - btreemap_v2_scan_values_rev_20_10mib 1103719312 0.00% 0 0 + btreemap_v1_contains_blob8_u64 211759351 8.61% 0 0 + btreemap_v1_contains_blob_1024_128 2923070314 -39.25% 0 0 + btreemap_v1_contains_blob_128_128 586681710 -30.88% 0 0 + btreemap_v1_contains_blob_16_128 220858136 -2.76% 0 0 + btreemap_v1_contains_blob_256_128 905328105 -35.38% 0 0 + btreemap_v1_contains_blob_32_1024 242119920 -6.31% 0 0 + btreemap_v1_contains_blob_32_128 241308402 -4.61% 0 0 + btreemap_v1_contains_blob_32_16 239873765 -8.49% 0 0 + btreemap_v1_contains_blob_32_256 243386253 -5.96% 0 0 + btreemap_v1_contains_blob_32_32 243575003 -6.60% 0 0 + btreemap_v1_contains_blob_32_4 241410476 -6.23% 0 0 + btreemap_v1_contains_blob_32_512 240957040 -5.55% 0 0 + btreemap_v1_contains_blob_32_64 243475219 -4.24% 0 0 + btreemap_v1_contains_blob_32_8 242676389 -5.30% 0 0 + btreemap_v1_contains_blob_4_128 184183433 11.31% 0 0 + btreemap_v1_contains_blob_512_128 1576846144 -38.01% 0 0 + btreemap_v1_contains_blob_64_128 320540281 -35.17% 0 0 + btreemap_v1_contains_blob_8_128 203452595 7.98% 0 0 + btreemap_v1_contains_u64_blob8 195936121 18.19% 0 0 + btreemap_v1_contains_u64_u64 195637945 18.16% 0 0 + btreemap_v1_get_blob8_u64 228006700 12.10% 0 0 + btreemap_v1_get_blob_1024_128 3063370184 -37.08% 0 0 + btreemap_v1_get_blob_128_128 618071643 -28.71% 0 0 + btreemap_v1_get_blob_16_128 234460160 -2.40% 0 0 + btreemap_v1_get_blob_256_128 953014900 -33.18% 0 0 + btreemap_v1_get_blob_32_1024 261521483 -5.48% 0 0 + btreemap_v1_get_blob_32_128 255664415 -3.66% 0 0 + btreemap_v1_get_blob_32_16 251352906 -6.91% 0 0 + btreemap_v1_get_blob_32_256 258584257 -5.13% 0 0 + btreemap_v1_get_blob_32_32 255953363 -5.01% 0 0 + btreemap_v1_get_blob_32_4 251644862 -4.89% 0 0 + btreemap_v1_get_blob_32_512 257682989 -4.74% 0 0 + btreemap_v1_get_blob_32_64 257137603 -2.87% 0 0 + btreemap_v1_get_blob_32_8 253272462 -4.23% 0 0 + btreemap_v1_get_blob_4_128 197258791 10.48% 0 0 + btreemap_v1_get_blob_512_128 1655392974 -35.81% 0 0 + btreemap_v1_get_blob_64_128 343675563 -32.43% 0 0 + btreemap_v1_get_blob_8_128 217102964 7.88% 0 0 + btreemap_v1_get_u64_blob8 205884318 19.00% 0 0 + btreemap_v1_get_u64_u64 207146407 19.05% 0 0 + btreemap_v1_insert_blob8_u64 396246565 20.08% 0 6 0.00% + btreemap_v1_insert_blob_1024_128 4200937391 -16.11% 0 262 0.00% + btreemap_v1_insert_blob_128_128 959970566 -6.51% 0 61 0.00% + btreemap_v1_insert_blob_16_128 449743412 14.75% 0 32 0.00% + btreemap_v1_insert_blob_256_128 1414931268 -10.28% 0 90 0.00% + btreemap_v1_insert_blob_32_1024 633304276 8.14% 0 230 0.00% + btreemap_v1_insert_blob_32_128 476226800 12.19% 0 37 0.00% + btreemap_v1_insert_blob_32_16 453146051 11.80% 0 14 0.00% + btreemap_v1_insert_blob_32_256 503713185 10.91% 0 66 0.00% + btreemap_v1_insert_blob_32_32 457819021 12.06% 0 17 0.00% + btreemap_v1_insert_blob_32_4 442537289 12.39% 0 11 0.00% + btreemap_v1_insert_blob_32_512 545510072 10.16% 0 121 0.00% + btreemap_v1_insert_blob_32_64 465911227 12.94% 0 24 0.00% + btreemap_v1_insert_blob_32_8 448294913 12.60% 0 12 0.00% + btreemap_v1_insert_blob_4_128 385759253 23.01% 0 17 0.00% + btreemap_v1_insert_blob_512_128 2358031431 -14.40% 0 148 0.00% + btreemap_v1_insert_blob_64_128 589604672 -12.14% 0 46 0.00% + btreemap_v1_insert_blob_8_128 426050413 18.82% 0 27 0.00% + btreemap_v1_insert_u64_blob8 427286535 25.70% 0 7 0.00% + btreemap_v1_insert_u64_u64 433187735 25.34% 0 7 0.00% + btreemap_v1_pop_first_blob8_u64 473557853 7.24% 0 0 + btreemap_v1_pop_first_blob_1024_128 5970419483 -35.18% 0 0 + btreemap_v1_pop_first_blob_128_128 1353296147 -25.61% 0 0 + btreemap_v1_pop_first_blob_16_128 606479509 3.06% 0 0 + btreemap_v1_pop_first_blob_256_128 2003606210 -30.83% 0 0 + btreemap_v1_pop_first_blob_32_1024 944564093 -1.43% 0 0 + btreemap_v1_pop_first_blob_32_128 688721384 -1.17% 0 0 + btreemap_v1_pop_first_blob_32_16 631409287 -1.93% 0 0 + btreemap_v1_pop_first_blob_32_256 722689785 -1.49% 0 0 + btreemap_v1_pop_first_blob_32_32 641576789 -1.92% 0 0 + btreemap_v1_pop_first_blob_32_4 615187906 -1.52% 0 0 + btreemap_v1_pop_first_blob_32_512 791214259 -0.99% 0 0 + btreemap_v1_pop_first_blob_32_64 654987386 -1.32% 0 0 + btreemap_v1_pop_first_blob_32_8 630956289 -1.54% 0 0 + btreemap_v1_pop_first_blob_4_128 313012237 11.97% 0 0 + btreemap_v1_pop_first_blob_512_128 3331966529 -33.17% 0 0 + btreemap_v1_pop_first_blob_64_128 850715002 -25.92% 0 0 + btreemap_v1_pop_first_blob_8_128 499931006 7.27% 0 0 + btreemap_v1_pop_first_u64_blob8 629390088 13.53% 0 0 + btreemap_v1_pop_first_u64_u64 634110263 13.74% 0 0 + btreemap_v1_pop_last_blob8_u64 453208199 6.21% 0 0 + btreemap_v1_pop_last_blob_1024_128 5653622366 -37.38% 0 0 + btreemap_v1_pop_last_blob_128_128 1288294439 -27.41% 0 0 + btreemap_v1_pop_last_blob_16_128 580598535 0.25% 0 0 + btreemap_v1_pop_last_blob_256_128 1897610675 -32.93% 0 0 + btreemap_v1_pop_last_blob_32_1024 914456697 -2.43% 0 0 + btreemap_v1_pop_last_blob_32_128 658535050 -2.31% 0 0 + btreemap_v1_pop_last_blob_32_16 601805413 -3.69% 0 0 + btreemap_v1_pop_last_blob_32_256 692264004 -2.77% 0 0 + btreemap_v1_pop_last_blob_32_32 613006457 -3.46% 0 0 + btreemap_v1_pop_last_blob_32_4 590425428 -3.59% 0 0 + btreemap_v1_pop_last_blob_32_512 763185085 -2.37% 0 0 + btreemap_v1_pop_last_blob_32_64 626386665 -2.64% 0 0 + btreemap_v1_pop_last_blob_32_8 602414937 -2.45% 0 0 + btreemap_v1_pop_last_blob_4_128 300024062 10.31% 0 0 + btreemap_v1_pop_last_blob_512_128 3166825350 -34.94% 0 0 + btreemap_v1_pop_last_blob_64_128 814156892 -27.08% 0 0 + btreemap_v1_pop_last_blob_8_128 486002981 5.02% 0 0 + btreemap_v1_pop_last_u64_blob8 605635567 11.75% 0 0 + btreemap_v1_pop_last_u64_u64 611140012 12.32% 0 0 + btreemap_v1_remove_blob8_u64 531002231 20.50% 0 0 + btreemap_v1_remove_blob_1024_128 5926512437 -6.38% 0 0 + btreemap_v1_remove_blob_128_128 1320209273 -0.07% 0 0 + btreemap_v1_remove_blob_16_128 622875413 15.56% 0 0 + btreemap_v1_remove_blob_256_128 1958643680 -4.28% 0 0 + btreemap_v1_remove_blob_32_1024 900339296 8.87% 0 0 + btreemap_v1_remove_blob_32_128 666065836 12.89% 0 0 + btreemap_v1_remove_blob_32_16 621144455 13.69% 0 0 + btreemap_v1_remove_blob_32_256 701793569 12.05% 0 0 + btreemap_v1_remove_blob_32_32 630637055 13.63% 0 0 + btreemap_v1_remove_blob_32_4 613532980 13.91% 0 0 + btreemap_v1_remove_blob_32_512 774589473 10.99% 0 0 + btreemap_v1_remove_blob_32_64 656148571 13.91% 0 0 + btreemap_v1_remove_blob_32_8 614925897 14.03% 0 0 + btreemap_v1_remove_blob_4_128 416145277 20.97% 0 0 + btreemap_v1_remove_blob_512_128 3309955653 -4.23% 0 0 + btreemap_v1_remove_blob_64_128 812816693 -7.22% 0 0 + btreemap_v1_remove_blob_8_128 557944980 18.47% 0 0 + btreemap_v1_remove_u64_blob8 603617818 24.10% 0 0 + btreemap_v1_remove_u64_u64 618985724 23.85% 0 0 + btreemap_v2_contains_10mib_values 142229061 0.01% 0 0 + btreemap_v2_contains_blob8_u64 289226191 4.33% 0 0 + btreemap_v2_contains_blob_1024_128 3005203865 -38.66% 0 0 + btreemap_v2_contains_blob_128_128 665161980 -28.13% 0 0 + btreemap_v2_contains_blob_16_128 297834362 -0.81% 0 0 + btreemap_v2_contains_blob_256_128 986418835 -33.48% 0 0 + btreemap_v2_contains_blob_32_1024 320717629 -5.02% 0 0 + btreemap_v2_contains_blob_32_128 320105518 -4.11% 0 0 + btreemap_v2_contains_blob_32_16 319122399 -5.63% 0 0 + btreemap_v2_contains_blob_32_256 322411139 -5.31% 0 0 + btreemap_v2_contains_blob_32_32 323180427 -4.83% 0 0 + btreemap_v2_contains_blob_32_4 320480094 -4.87% 0 0 + btreemap_v2_contains_blob_32_512 319717271 -4.30% 0 0 + btreemap_v2_contains_blob_32_64 322961913 -4.75% 0 0 + btreemap_v2_contains_blob_32_8 321660352 -4.64% 0 0 + btreemap_v2_contains_blob_4_128 264477664 8.06% 0 0 + btreemap_v2_contains_blob_512_128 1657965792 -36.85% 0 0 + btreemap_v2_contains_blob_64_128 399999970 -31.30% 0 0 + btreemap_v2_contains_blob_8_128 276684378 2.81% 0 0 + btreemap_v2_contains_u64_blob8 248830506 6.68% 0 0 + btreemap_v2_contains_u64_u64 252328166 5.77% 0 0 + btreemap_v2_contains_u64_vec8 248830521 6.68% 0 0 + btreemap_v2_contains_vec8_u64 330812594 -9.71% 0 0 + btreemap_v2_contains_vec_1024_128 1843714851 -34.89% 0 0 + btreemap_v2_contains_vec_128_128 558700681 -19.90% 0 0 + btreemap_v2_contains_vec_16_128 381089663 -11.31% 0 0 + btreemap_v2_contains_vec_256_128 913133811 -25.13% 0 0 + btreemap_v2_contains_vec_32_1024 525532811 -9.91% 0 0 + btreemap_v2_contains_vec_32_128 433817678 -11.21% 0 0 + btreemap_v2_contains_vec_32_16 362681237 -11.07% 0 0 + btreemap_v2_contains_vec_32_256 441968223 -14.78% 0 0 + btreemap_v2_contains_vec_32_32 362811328 -11.17% 0 0 + btreemap_v2_contains_vec_32_4 361801209 -11.03% 0 0 + btreemap_v2_contains_vec_32_512 477582588 -10.73% 0 0 + btreemap_v2_contains_vec_32_64 403656070 -12.87% 0 0 + btreemap_v2_contains_vec_32_8 361893193 -10.99% 0 0 + btreemap_v2_contains_vec_4_128 352654217 -11.16% 0 0 + btreemap_v2_contains_vec_512_128 1262723316 -30.28% 0 0 + btreemap_v2_contains_vec_64_128 508396314 -14.51% 0 0 + btreemap_v2_contains_vec_8_128 353928369 -9.07% 0 0 + btreemap_v2_get_10mib_values 1227489038 0.00% 0 0 + btreemap_v2_get_blob8_u64 311375610 3.83% 0 0 + btreemap_v2_get_blob_1024_128 3145327402 -36.53% 0 0 + btreemap_v2_get_blob_128_128 699353541 -26.21% 0 0 + btreemap_v2_get_blob_16_128 312328058 -0.54% 0 0 + btreemap_v2_get_blob_256_128 1033911664 -31.45% 0 0 + btreemap_v2_get_blob_32_1024 341317244 -4.39% 0 0 + btreemap_v2_get_blob_32_128 335497552 -3.44% 0 0 + btreemap_v2_get_blob_32_16 330797351 -4.75% 0 0 + btreemap_v2_get_blob_32_256 338773598 -4.65% 0 0 + btreemap_v2_get_blob_32_32 335953842 -3.86% 0 0 + btreemap_v2_get_blob_32_4 330634736 -3.97% 0 0 + btreemap_v2_get_blob_32_512 337631374 -3.72% 0 0 + btreemap_v2_get_blob_32_64 337542901 -3.79% 0 0 + btreemap_v2_get_blob_32_8 332027903 -3.82% 0 0 + btreemap_v2_get_blob_4_128 277362907 7.78% 0 0 + btreemap_v2_get_blob_512_128 1736330972 -34.75% 0 0 + btreemap_v2_get_blob_64_128 424734913 -29.21% 0 0 + btreemap_v2_get_blob_8_128 290961444 3.08% 0 0 + btreemap_v2_get_u64_blob8 258970434 6.36% 0 0 + btreemap_v2_get_u64_u64 264841316 5.63% 0 0 + btreemap_v2_get_u64_vec8 259682300 6.32% 0 0 + btreemap_v2_get_vec8_u64 342546743 -9.09% 0 0 + btreemap_v2_get_vec_1024_128 1902078541 -34.45% 0 0 + btreemap_v2_get_vec_128_128 571504421 -19.53% 0 0 + btreemap_v2_get_vec_16_128 392344000 -10.75% 0 0 + btreemap_v2_get_vec_256_128 926534339 -24.85% 0 0 + btreemap_v2_get_vec_32_1024 534959850 -10.51% 0 0 + btreemap_v2_get_vec_32_128 444486505 -10.90% 0 0 + btreemap_v2_get_vec_32_16 370797516 -10.84% 0 0 + btreemap_v2_get_vec_32_256 460035533 -14.64% 0 0 + btreemap_v2_get_vec_32_32 371058030 -10.94% 0 0 + btreemap_v2_get_vec_32_4 369795743 -10.81% 0 0 + btreemap_v2_get_vec_32_512 498363887 -10.71% 0 0 + btreemap_v2_get_vec_32_64 412651033 -12.55% 0 0 + btreemap_v2_get_vec_32_8 369932871 -10.76% 0 0 + btreemap_v2_get_vec_4_128 363627402 -10.56% 0 0 + btreemap_v2_get_vec_512_128 1275901478 -30.07% 0 0 + btreemap_v2_get_vec_64_128 519647911 -14.28% 0 0 + btreemap_v2_get_vec_8_128 364617986 -8.62% 0 0 + btreemap_v2_insert_10mib_values 5239496713 -0.15% 322 0.00% 3613 0.00% + btreemap_v2_insert_blob8_u64 501406012 13.60% 0 4 0.00% + btreemap_v2_insert_blob_1024_128 4301642559 -15.76% 0 196 0.00% + btreemap_v2_insert_blob_128_128 1063162256 -6.29% 0 46 0.00% + btreemap_v2_insert_blob_16_128 550704865 11.12% 0 24 0.00% + btreemap_v2_insert_blob_256_128 1518470887 -9.83% 0 67 0.00% + btreemap_v2_insert_blob_32_1024 733519556 6.67% 0 173 0.00% + btreemap_v2_insert_blob_32_128 577751249 9.01% 0 28 0.00% + btreemap_v2_insert_blob_32_16 555295702 8.84% 0 11 0.00% + btreemap_v2_insert_blob_32_256 603998784 7.65% 0 49 0.00% + btreemap_v2_insert_blob_32_32 561181272 8.89% 0 13 0.00% + btreemap_v2_insert_blob_32_4 544246473 9.17% 0 8 0.00% + btreemap_v2_insert_blob_32_512 645597894 7.96% 0 91 0.00% + btreemap_v2_insert_blob_32_64 568401524 9.25% 0 18 0.00% + btreemap_v2_insert_blob_32_8 549872785 8.66% 0 9 0.00% + btreemap_v2_insert_blob_4_128 478337516 16.33% 0 13 0.00% + btreemap_v2_insert_blob_512_128 2460920551 -13.84% 0 111 0.00% + btreemap_v2_insert_blob_64_128 691588465 -11.18% 0 34 0.00% + btreemap_v2_insert_blob_8_128 524887535 13.21% 0 20 0.00% + btreemap_v2_insert_u64_blob8 491267828 16.23% 0 5 0.00% + btreemap_v2_insert_u64_u64 500389354 16.06% 0 6 0.00% + btreemap_v2_insert_u64_vec8 500397911 16.44% 0 21 0.00% + btreemap_v2_insert_vec8_u64 615775979 5.77% 0 16 0.00% + btreemap_v2_insert_vec_1024_128 2789774196 -15.98% 0 193 0.00% + btreemap_v2_insert_vec_128_128 1043230064 -4.93% 0 51 0.00% + btreemap_v2_insert_vec_16_128 738652590 4.91% 0 31 0.00% + btreemap_v2_insert_vec_256_128 1435492594 -4.77% 0 71 0.00% + btreemap_v2_insert_vec_32_1024 1245163592 1.81% 0 171 0.00% + btreemap_v2_insert_vec_32_128 783483944 2.84% 0 33 0.00% + btreemap_v2_insert_vec_32_16 691915077 4.19% 0 20 0.00% + btreemap_v2_insert_vec_32_256 906700575 1.78% 0 54 0.00% + btreemap_v2_insert_vec_32_32 685726202 2.95% 0 20 0.00% + btreemap_v2_insert_vec_32_4 686747488 3.90% 0 20 0.00% + btreemap_v2_insert_vec_32_512 1023452540 1.40% 0 91 0.00% + btreemap_v2_insert_vec_32_64 717393138 3.69% 0 24 0.00% + btreemap_v2_insert_vec_32_8 685924657 3.84% 0 20 0.00% + btreemap_v2_insert_vec_4_128 648453626 6.49% 0 16 0.00% + btreemap_v2_insert_vec_512_128 1905084957 -10.50% 0 112 0.00% + btreemap_v2_insert_vec_64_128 874271746 -0.61% 0 41 0.00% + btreemap_v2_insert_vec_8_128 706827447 6.01% 0 23 0.00% + btreemap_v2_mem_manager_contains_blob512_u64 1774999668 -34.66% 0 0 + btreemap_v2_mem_manager_contains_u64_blob512 313977726 1.58% 0 0 + btreemap_v2_mem_manager_contains_u64_u64 317618134 1.13% 0 0 + btreemap_v2_mem_manager_contains_u64_vec512 399550369 0.90% 0 0 + btreemap_v2_mem_manager_contains_vec512_u64 1258962439 -29.02% 0 0 + btreemap_v2_mem_manager_get_blob512_u64 1862858506 -32.54% 0 0 + btreemap_v2_mem_manager_get_u64_blob512 332256827 1.80% 0 0 + btreemap_v2_mem_manager_get_u64_u64 330627562 0.76% 0 0 + btreemap_v2_mem_manager_get_u64_vec512 428458229 1.27% 0 0 + btreemap_v2_mem_manager_get_vec512_u64 1304137627 -27.99% 0 0 + btreemap_v2_mem_manager_insert_blob512_u64 2600002993 -12.13% 0 0 + btreemap_v2_mem_manager_insert_u64_blob512 706443234 9.25% 0 0 + btreemap_v2_mem_manager_insert_u64_u64 620833749 10.80% 0 0 + btreemap_v2_mem_manager_insert_u64_vec512 960101805 6.82% 0 0 + btreemap_v2_mem_manager_insert_vec512_u64 2034628657 -9.61% 0 0 + btreemap_v2_mem_manager_remove_blob512_u64 3735769042 -2.83% 0 0 + btreemap_v2_mem_manager_remove_u64_blob512 1034316689 9.24% 0 0 + btreemap_v2_mem_manager_remove_u64_u64 891255172 10.46% 0 0 + btreemap_v2_mem_manager_remove_u64_vec512 1374321734 7.04% 0 0 + btreemap_v2_mem_manager_remove_vec512_u64 3208154994 -3.58% 0 0 + btreemap_v2_pop_first_blob8_u64 631088340 3.44% 0 0 + btreemap_v2_pop_first_blob_1024_128 6148488854 -34.57% 0 0 + btreemap_v2_pop_first_blob_128_128 1533695548 -23.60% 0 0 + btreemap_v2_pop_first_blob_16_128 765876708 0.97% 0 0 + btreemap_v2_pop_first_blob_256_128 2187144686 -29.29% 0 0 + btreemap_v2_pop_first_blob_32_1024 1117750658 -1.48% 0 0 + btreemap_v2_pop_first_blob_32_128 862534207 -1.85% 0 0 + btreemap_v2_pop_first_blob_32_16 804111934 -1.97% 0 0 + btreemap_v2_pop_first_blob_32_256 894498313 -1.65% 0 0 + btreemap_v2_pop_first_blob_32_32 813850354 -2.26% 0 0 + btreemap_v2_pop_first_blob_32_4 787641034 -1.96% 0 0 + btreemap_v2_pop_first_blob_32_512 961994628 -1.35% 0 0 + btreemap_v2_pop_first_blob_32_64 825807026 -1.81% 0 0 + btreemap_v2_pop_first_blob_32_8 804781651 -1.75% 0 0 + btreemap_v2_pop_first_blob_4_128 399767601 7.36% 0 0 + btreemap_v2_pop_first_blob_512_128 3511373203 -32.09% 0 0 + btreemap_v2_pop_first_blob_64_128 1026931135 -22.77% 0 0 + btreemap_v2_pop_first_blob_8_128 635221526 3.76% 0 0 + btreemap_v2_pop_first_u64_blob8 754042045 6.82% 0 0 + btreemap_v2_pop_first_u64_u64 769803712 7.04% 0 0 + btreemap_v2_pop_first_u64_vec8 758178172 6.78% 0 0 + btreemap_v2_pop_first_vec8_u64 733451417 -6.42% 0 0 + btreemap_v2_pop_first_vec_1024_128 4085492377 -29.18% 0 0 + btreemap_v2_pop_first_vec_128_128 1540727192 -15.15% 0 0 + btreemap_v2_pop_first_vec_16_128 969444515 -5.45% 0 0 + btreemap_v2_pop_first_vec_256_128 2055925554 -18.64% 0 0 + btreemap_v2_pop_first_vec_32_1024 1716234050 -5.32% 0 0 + btreemap_v2_pop_first_vec_32_128 1116028836 -7.45% 0 0 + btreemap_v2_pop_first_vec_32_16 962987550 -7.29% 0 0 + btreemap_v2_pop_first_vec_32_256 1244569779 -6.30% 0 0 + btreemap_v2_pop_first_vec_32_32 956119681 -9.39% 0 0 + btreemap_v2_pop_first_vec_32_4 949164944 -8.39% 0 0 + btreemap_v2_pop_first_vec_32_512 1400657612 -6.03% 0 0 + btreemap_v2_pop_first_vec_32_64 1002684437 -8.06% 0 0 + btreemap_v2_pop_first_vec_32_8 960390900 -8.40% 0 0 + btreemap_v2_pop_first_vec_4_128 519698941 -3.40% 0 0 + btreemap_v2_pop_first_vec_512_128 2758804409 -23.48% 0 0 + btreemap_v2_pop_first_vec_64_128 1263023099 -9.79% 0 0 + btreemap_v2_pop_first_vec_8_128 809323878 -4.40% 0 0 + btreemap_v2_pop_last_blob8_u64 607439368 2.39% 0 0 + btreemap_v2_pop_last_blob_1024_128 5832426499 -36.73% 0 0 + btreemap_v2_pop_last_blob_128_128 1467537205 -25.10% 0 0 + btreemap_v2_pop_last_blob_16_128 739718766 0.07% 0 0 + btreemap_v2_pop_last_blob_256_128 2081004971 -31.06% 0 0 + btreemap_v2_pop_last_blob_32_1024 1086858863 -2.50% 0 0 + btreemap_v2_pop_last_blob_32_128 832469601 -2.80% 0 0 + btreemap_v2_pop_last_blob_32_16 772186199 -3.47% 0 0 + btreemap_v2_pop_last_blob_32_256 863409770 -2.87% 0 0 + btreemap_v2_pop_last_blob_32_32 783418714 -3.52% 0 0 + btreemap_v2_pop_last_blob_32_4 762427090 -3.35% 0 0 + btreemap_v2_pop_last_blob_32_512 934735771 -2.35% 0 0 + btreemap_v2_pop_last_blob_32_64 797724621 -3.05% 0 0 + btreemap_v2_pop_last_blob_32_8 773667111 -3.17% 0 0 + btreemap_v2_pop_last_blob_4_128 386680341 6.26% 0 0 + btreemap_v2_pop_last_blob_512_128 3346682035 -33.76% 0 0 + btreemap_v2_pop_last_blob_64_128 991695186 -24.22% 0 0 + btreemap_v2_pop_last_blob_8_128 625286841 2.14% 0 0 + btreemap_v2_pop_last_u64_blob8 729561134 5.18% 0 0 + btreemap_v2_pop_last_u64_u64 745541863 5.61% 0 0 + btreemap_v2_pop_last_u64_vec8 733261353 5.29% 0 0 + btreemap_v2_pop_last_vec8_u64 709505630 -7.20% 0 0 + btreemap_v2_pop_last_vec_1024_128 4309218972 -28.41% 0 0 + btreemap_v2_pop_last_vec_128_128 1553713281 -15.16% 0 0 + btreemap_v2_pop_last_vec_16_128 947485094 -6.52% 0 0 + btreemap_v2_pop_last_vec_256_128 2130596399 -17.51% 0 0 + btreemap_v2_pop_last_vec_32_1024 1698020522 -6.07% 0 0 + btreemap_v2_pop_last_vec_32_128 1097506258 -8.87% 0 0 + btreemap_v2_pop_last_vec_32_16 941565660 -8.48% 0 0 + btreemap_v2_pop_last_vec_32_256 1227274752 -7.42% 0 0 + btreemap_v2_pop_last_vec_32_32 936683027 -10.34% 0 0 + btreemap_v2_pop_last_vec_32_4 934322536 -9.64% 0 0 + btreemap_v2_pop_last_vec_32_512 1390764407 -6.69% 0 0 + btreemap_v2_pop_last_vec_32_64 983151868 -9.41% 0 0 + btreemap_v2_pop_last_vec_32_8 938072784 -9.43% 0 0 + btreemap_v2_pop_last_vec_4_128 504146543 -4.73% 0 0 + btreemap_v2_pop_last_vec_512_128 2874258445 -22.88% 0 0 + btreemap_v2_pop_last_vec_64_128 1256318631 -11.03% 0 0 + btreemap_v2_pop_last_vec_8_128 801981363 -6.12% 0 0 + btreemap_v2_range_count_1k_0b 20349 20.67% 0 0 + btreemap_v2_range_count_1k_10kib 3045335 25.14% 0 0 + btreemap_v2_range_count_20_10mib 20585137 0.06% 0 0 + btreemap_v2_range_key_sum_1k_0b 20840 19.28% 0 0 + btreemap_v2_range_key_sum_1k_10kib 57762193 0.90% 0 0 + btreemap_v2_range_key_sum_20_10mib 1105837398 0.00% 0 0 + btreemap_v2_range_value_sum_1k_0b 20854 19.26% 0 0 + btreemap_v2_range_value_sum_1k_10kib 57774189 0.90% 0 0 + btreemap_v2_range_value_sum_20_10mib 1105837634 0.00% 0 0 + btreemap_v2_remove_10mib_values 5564493299 -0.16% 0 657 0.00% + btreemap_v2_remove_blob8_u64 668804448 13.51% 0 0 + btreemap_v2_remove_blob_1024_128 6065208536 -6.32% 0 0 + btreemap_v2_remove_blob_128_128 1459264335 -0.51% 0 0 + btreemap_v2_remove_blob_16_128 758014983 11.40% 0 0 + btreemap_v2_remove_blob_256_128 2099751636 -4.34% 0 0 + btreemap_v2_remove_blob_32_1024 1037909662 7.33% 0 0 + btreemap_v2_remove_blob_32_128 803140084 9.70% 0 0 + btreemap_v2_remove_blob_32_16 756969960 10.03% 0 0 + btreemap_v2_remove_blob_32_256 838700580 9.31% 0 0 + btreemap_v2_remove_blob_32_32 767167635 10.14% 0 0 + btreemap_v2_remove_blob_32_4 751873616 10.56% 0 0 + btreemap_v2_remove_blob_32_512 912806115 8.80% 0 0 + btreemap_v2_remove_blob_32_64 795027356 10.27% 0 0 + btreemap_v2_remove_blob_32_8 750612254 10.39% 0 0 + btreemap_v2_remove_blob_4_128 522853604 14.67% 0 0 + btreemap_v2_remove_blob_512_128 3450228763 -4.15% 0 0 + btreemap_v2_remove_blob_64_128 948856984 -7.03% 0 0 + btreemap_v2_remove_blob_8_128 686452108 12.73% 0 0 + btreemap_v2_remove_u64_blob8 689742274 15.33% 0 0 + btreemap_v2_remove_u64_u64 713265933 15.00% 0 0 + btreemap_v2_remove_u64_vec8 696380317 15.30% 0 0 + btreemap_v2_remove_vec8_u64 806781054 7.41% 0 0 + btreemap_v2_remove_vec_1024_128 4539882292 -8.91% 0 0 + btreemap_v2_remove_vec_128_128 1464082933 0.76% 0 0 + btreemap_v2_remove_vec_16_128 975339295 7.47% 0 0 + btreemap_v2_remove_vec_256_128 2294300929 -0.93% 0 0 + btreemap_v2_remove_vec_32_1024 1733753822 3.18% 0 0 + btreemap_v2_remove_vec_32_128 1070855323 5.85% 0 0 + btreemap_v2_remove_vec_32_16 891843519 6.83% 0 0 + btreemap_v2_remove_vec_32_256 1280799340 3.43% 0 0 + btreemap_v2_remove_vec_32_32 898799502 6.78% 0 0 + btreemap_v2_remove_vec_32_4 897668964 6.84% 0 0 + btreemap_v2_remove_vec_32_512 1455570807 3.84% 0 0 + btreemap_v2_remove_vec_32_64 983544352 6.37% 0 0 + btreemap_v2_remove_vec_32_8 891552185 6.92% 0 0 + btreemap_v2_remove_vec_4_128 688616727 6.29% 0 0 + btreemap_v2_remove_vec_512_128 3131183908 -4.16% 0 0 + btreemap_v2_remove_vec_64_128 1193393218 1.14% 0 0 + btreemap_v2_remove_vec_8_128 877538654 6.72% 0 0 + btreemap_v2_scan_iter_1k_0b 2040278 36.60% 0 0 + btreemap_v2_scan_iter_1k_10kib 57556076 0.85% 0 0 + btreemap_v2_scan_iter_20_10mib 1103728361 0.00% 0 0 + btreemap_v2_scan_iter_rev_1k_0b 2042771 36.56% 0 0 + btreemap_v2_scan_iter_rev_1k_10kib 57527921 0.84% 0 0 + btreemap_v2_scan_iter_rev_20_10mib 1103728224 0.00% 0 0 + btreemap_v2_scan_keys_1k_0b 1646692 73.66% 0 0 + btreemap_v2_scan_keys_1k_10kib 3053417 29.28% 0 0 + btreemap_v2_scan_keys_20_10mib 18479257 0.07% 0 0 + btreemap_v2_scan_keys_rev_1k_0b 1647441 70.61% 0 0 + btreemap_v2_scan_keys_rev_1k_10kib 3035323 28.73% 0 0 + btreemap_v2_scan_keys_rev_20_10mib 18479261 0.07% 0 0 + btreemap_v2_scan_values_1k_0b 2017444 35.31% 0 0 + btreemap_v2_scan_values_1k_10kib 57533242 0.82% 0 0 + btreemap_v2_scan_values_20_10mib 1103727903 0.00% 0 0 + btreemap_v2_scan_values_rev_1k_0b 2019543 35.24% 0 0 + btreemap_v2_scan_values_rev_1k_10kib 57504693 0.81% 0 0 + btreemap_v2_scan_values_rev_20_10mib 1103727760 0.00% 0 0 memory_manager_baseline 1176576907 0.00% 0 8000 0.00% memory_manager_grow 346601964 0.00% 2 0.00% 32000 0.00% memory_manager_overhead 1181961735 0.00% 0 8320 0.00% From ee254acb231165dcebe84ad3dc1ecd47fda0e0dc Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Wed, 14 May 2025 17:25:47 +0200 Subject: [PATCH 50/68] --persist --csv --- canbench_results.csv | 510 ++++++++-- canbench_results.yml | 2296 +++++++++++++++++++++++++++++++++++++----- 2 files changed, 2453 insertions(+), 353 deletions(-) diff --git a/canbench_results.csv b/canbench_results.csv index 0b90a62d..b0399740 100644 --- a/canbench_results.csv +++ b/canbench_results.csv @@ -1,109 +1,409 @@ status,name,instructions,instructions change %,heap_increase,heap_increase change %,stable_memory_increase,stable_memory_increase change % -,btreemap_contains_key_blob_4_1024,164495877,0.00%,0,0.00%,0,0.00% -,btreemap_contains_key_blob_4_1024_v2,248921977,0.00%,0,0.00%,0,0.00% -,btreemap_get_blob_128_1024,876676182,0.00%,0,0.00%,0,0.00% -,btreemap_get_blob_128_1024_v2,953199881,0.00%,0,0.00%,0,0.00% -,btreemap_get_blob_16_1024,241470994,0.00%,0,0.00%,0,0.00% -,btreemap_get_blob_16_1024_v2,320086039,0.00%,0,0.00%,0,0.00% -,btreemap_get_blob_256_1024,1440152578,0.00%,0,0.00%,0,0.00% -,btreemap_get_blob_256_1024_v2,1524516290,0.00%,0,0.00%,0,0.00% -,btreemap_get_blob_32_1024,275141698,0.00%,0,0.00%,0,0.00% -,btreemap_get_blob_32_1024_v2,353756221,0.00%,0,0.00%,0,0.00% -,btreemap_get_blob_4_1024,182139496,0.00%,0,0.00%,0,0.00% -,btreemap_get_blob_4_1024_v2,267339946,0.00%,0,0.00%,0,0.00% -,btreemap_get_blob_512_1024,2573387979,0.00%,0,0.00%,0,0.00% -,btreemap_get_blob_512_1024_v2,2653499228,0.00%,0,0.00%,0,0.00% -,btreemap_get_blob_512_1024_v2_mem_manager,2759852247,0.00%,0,0.00%,0,0.00% -,btreemap_get_blob_64_1024,521344804,0.00%,0,0.00%,0,0.00% -,btreemap_get_blob_64_1024_v2,603758767,0.00%,0,0.00%,0,0.00% -,btreemap_get_blob_8_1024,212618950,0.00%,0,0.00%,0,0.00% -,btreemap_get_blob_8_1024_v2,294121282,0.00%,0,0.00%,0,0.00% -,btreemap_get_blob_8_u64,199845052,0.00%,0,0.00%,0,0.00% -,btreemap_get_blob_8_u64_v2,289664167,0.00%,0,0.00%,0,0.00% -,btreemap_get_u64_blob_8,173627473,0.00%,0,0.00%,0,0.00% -,btreemap_get_u64_blob_8_v2,245312213,0.00%,0,0.00%,0,0.00% -,btreemap_get_u64_u64,176661272,0.00%,0,0.00%,0,0.00% -,btreemap_get_u64_u64_v2,249218649,0.00%,0,0.00%,0,0.00% -,btreemap_get_u64_u64_v2_mem_manager,329730573,0.00%,0,0.00%,0,0.00% -,btreemap_insert_10mib_values,5235962440,0.00%,0,0.00%,3613,0.00% -,btreemap_insert_blob_1024_128,5098352751,0.00%,0,0.00%,262,0.00% -,btreemap_insert_blob_1024_128_v2,5199218550,0.00%,0,0.00%,196,0.00% -,btreemap_insert_blob_1024_16,5080607598,0.00%,0,0.00%,241,0.00% -,btreemap_insert_blob_1024_16_v2,5187794378,0.00%,0,0.00%,181,0.00% -,btreemap_insert_blob_1024_256,5125958119,0.00%,0,0.00%,292,0.00% -,btreemap_insert_blob_1024_256_v2,5224501040,0.00%,0,0.00%,219,0.00% -,btreemap_insert_blob_1024_32,5075547429,0.00%,0,0.00%,239,0.00% -,btreemap_insert_blob_1024_32_v2,5185065640,0.00%,0,0.00%,180,0.00% -,btreemap_insert_blob_1024_4,4977775085,0.00%,0,0.00%,235,0.00% -,btreemap_insert_blob_1024_4_v2,5084891041,0.00%,0,0.00%,176,0.00% -,btreemap_insert_blob_1024_512,5200292029,0.00%,1,0.00%,348,0.00% -,btreemap_insert_blob_1024_512_v2,5299421985,0.00%,0,0.00%,261,0.00% -,btreemap_insert_blob_1024_512_v2_mem_manager,5469551996,0.00%,0,0.00%,256,0.00% -,btreemap_insert_blob_1024_64,5133691382,0.00%,0,0.00%,250,0.00% -,btreemap_insert_blob_1024_64_v2,5242140512,0.00%,0,0.00%,188,0.00% -,btreemap_insert_blob_1024_8,5065686056,0.00%,0,0.00%,237,0.00% -,btreemap_insert_blob_1024_8_v2,5174504738,0.00%,0,0.00%,178,0.00% -,btreemap_insert_blob_128_1024,1276472811,0.00%,0,0.00%,260,0.00% -,btreemap_insert_blob_128_1024_v2,1378788105,0.00%,0,0.00%,195,0.00% -,btreemap_insert_blob_16_1024,634307113,0.00%,0,0.00%,215,0.00% -,btreemap_insert_blob_16_1024_v2,733723555,0.00%,0,0.00%,161,0.00% -,btreemap_insert_blob_256_1024,1860540926,0.00%,0,0.00%,292,0.00% -,btreemap_insert_blob_256_1024_v2,1967548428,0.00%,0,0.00%,219,0.00% -,btreemap_insert_blob_32_1024,670121076,0.00%,0,0.00%,230,0.00% -,btreemap_insert_blob_32_1024_v2,773022814,0.00%,0,0.00%,173,0.00% -,btreemap_insert_blob_4_1024,494994994,0.00%,0,0.00%,123,0.00% -,btreemap_insert_blob_4_1024_v2,592951465,0.00%,0,0.00%,92,0.00% -,btreemap_insert_blob_512_1024,3002862489,0.00%,0,0.00%,351,0.00% -,btreemap_insert_blob_512_1024_v2,3105965075,0.00%,0,0.00%,263,0.00% -,btreemap_insert_blob_64_1024,919414593,0.00%,0,0.00%,245,0.00% -,btreemap_insert_blob_64_1024_v2,1020998986,0.00%,0,0.00%,183,0.00% -,btreemap_insert_blob_8_1024,605636927,0.00%,0,0.00%,183,0.00% -,btreemap_insert_blob_8_1024_v2,708696031,0.00%,0,0.00%,138,0.00% -,btreemap_insert_blob_8_u64,330055088,0.00%,0,0.00%,6,0.00% -,btreemap_insert_blob_8_u64_v2,440988930,0.00%,0,0.00%,4,0.00% -,btreemap_insert_u64_blob_8,339864719,0.00%,0,0.00%,7,0.00% -,btreemap_insert_u64_blob_8_v2,422835585,0.00%,0,0.00%,5,0.00% -,btreemap_insert_u64_u64,345025209,0.00%,0,0.00%,7,0.00% -,btreemap_insert_u64_u64_v2,431645530,0.00%,0,0.00%,6,0.00% -,btreemap_insert_u64_u64_v2_mem_manager,560976863,0.00%,0,0.00%,0,0.00% -,btreemap_iter_10mib_values,11407368,0.00%,0,0.00%,0,0.00% -,btreemap_iter_count_10mib_values,491365,0.00%,0,0.00%,0,0.00% -,btreemap_iter_count_small_values,9443266,0.00%,0,0.00%,0,0.00% -,btreemap_iter_rev_10mib_values,11404353,0.00%,0,0.00%,0,0.00% -,btreemap_iter_rev_small_values,14975879,0.00%,0,0.00%,0,0.00% -,btreemap_iter_small_values,15000850,0.00%,0,0.00%,0,0.00% -,btreemap_keys_10mib_values,464540,0.00%,0,0.00%,0,0.00% -,btreemap_keys_rev_10mib_values,464165,0.00%,0,0.00%,0,0.00% -,btreemap_keys_rev_small_values,9654062,0.00%,0,0.00%,0,0.00% -,btreemap_keys_small_values,9528327,0.00%,0,0.00%,0,0.00% -,btreemap_read_every_third_value_from_range,84833060,0.00%,0,0.00%,0,0.00% -,btreemap_read_keys_from_range,84873064,0.00%,0,0.00%,0,0.00% -,btreemap_remove_blob_128_1024,1575050534,0.00%,0,0.00%,0,0.00% -,btreemap_remove_blob_128_1024_v2,1721504123,0.00%,0,0.00%,0,0.00% -,btreemap_remove_blob_16_1024,755252791,0.00%,0,0.00%,0,0.00% -,btreemap_remove_blob_16_1024_v2,895690307,0.00%,0,0.00%,0,0.00% -,btreemap_remove_blob_256_1024,2279810995,0.00%,0,0.00%,0,0.00% -,btreemap_remove_blob_256_1024_v2,2427184450,0.00%,0,0.00%,0,0.00% -,btreemap_remove_blob_32_1024,825632231,0.00%,0,0.00%,0,0.00% -,btreemap_remove_blob_32_1024_v2,965884147,0.00%,0,0.00%,0,0.00% -,btreemap_remove_blob_4_1024,485805538,0.00%,0,0.00%,0,0.00% -,btreemap_remove_blob_4_1024_v2,600161724,0.00%,0,0.00%,0,0.00% -,btreemap_remove_blob_512_1024,3738145419,0.00%,0,0.00%,0,0.00% -,btreemap_remove_blob_512_1024_v2,3883681704,0.00%,0,0.00%,0,0.00% -,btreemap_remove_blob_64_1024,1139970828,0.00%,0,0.00%,0,0.00% -,btreemap_remove_blob_64_1024_v2,1283145072,0.00%,0,0.00%,0,0.00% -,btreemap_remove_blob_8_1024,642836148,0.00%,0,0.00%,0,0.00% -,btreemap_remove_blob_8_1024_v2,775037862,0.00%,0,0.00%,0,0.00% -,btreemap_remove_blob_8_u64,433944769,0.00%,0,0.00%,0,0.00% -,btreemap_remove_blob_8_u64_v2,579958230,0.00%,0,0.00%,0,0.00% -,btreemap_remove_u64_blob_8,485913516,0.00%,0,0.00%,0,0.00% -,btreemap_remove_u64_blob_8_v2,597538858,0.00%,0,0.00%,0,0.00% -,btreemap_remove_u64_u64,499266505,0.00%,0,0.00%,0,0.00% -,btreemap_remove_u64_u64_v2,619109964,0.00%,0,0.00%,0,0.00% -,btreemap_values_10mib_values,11406848,0.00%,0,0.00%,0,0.00% -,btreemap_values_rev_10mib_values,11403833,0.00%,0,0.00%,0,0.00% -,btreemap_values_rev_small_values,14949875,0.00%,0,0.00%,0,0.00% -,btreemap_values_small_values,14974846,0.00%,0,0.00%,0,0.00% +new,btreemap_v1_contains_blob8_u64,195271021,,0,,0, +new,btreemap_v1_contains_blob_1024_128,4811323110,,0,,0, +new,btreemap_v1_contains_blob_128_128,850930156,,0,,0, +new,btreemap_v1_contains_blob_16_128,226230369,,0,,0, +new,btreemap_v1_contains_blob_256_128,1407896845,,0,,0, +new,btreemap_v1_contains_blob_32_1024,256961773,,0,,0, +new,btreemap_v1_contains_blob_32_128,250177816,,0,,0, +new,btreemap_v1_contains_blob_32_16,261906396,,0,,0, +new,btreemap_v1_contains_blob_32_256,258725278,,0,,0, +new,btreemap_v1_contains_blob_32_32,259151053,,0,,0, +new,btreemap_v1_contains_blob_32_4,257349962,,0,,0, +new,btreemap_v1_contains_blob_32_512,255019597,,0,,0, +new,btreemap_v1_contains_blob_32_64,252217576,,0,,0, +new,btreemap_v1_contains_blob_32_8,252815455,,0,,0, +new,btreemap_v1_contains_blob_4_128,161092850,,0,,0, +new,btreemap_v1_contains_blob_512_128,2540558634,,0,,0, +new,btreemap_v1_contains_blob_64_128,495156778,,0,,0, +new,btreemap_v1_contains_blob_8_128,188138732,,0,,0, +new,btreemap_v1_contains_u64_blob8,166038798,,0,,0, +new,btreemap_v1_contains_u64_u64,167293960,,0,,0, +new,btreemap_v1_get_blob8_u64,203697122,,0,,0, +new,btreemap_v1_get_blob_1024_128,4867663262,,0,,0, +new,btreemap_v1_get_blob_128_128,867834674,,0,,0, +new,btreemap_v1_get_blob_16_128,239293029,,0,,0, +new,btreemap_v1_get_blob_256_128,1431740445,,0,,0, +new,btreemap_v1_get_blob_32_1024,275141698,,0,,0, +new,btreemap_v1_get_blob_32_128,262740541,,0,,0, +new,btreemap_v1_get_blob_32_16,269802882,,0,,0, +new,btreemap_v1_get_blob_32_256,272218440,,0,,0, +new,btreemap_v1_get_blob_32_32,267860063,,0,,0, +new,btreemap_v1_get_blob_32_4,264584535,,0,,0, +new,btreemap_v1_get_blob_32_512,270395928,,0,,0, +new,btreemap_v1_get_blob_32_64,262951923,,0,,0, +new,btreemap_v1_get_blob_32_8,261740283,,0,,0, +new,btreemap_v1_get_blob_4_128,174475611,,0,,0, +new,btreemap_v1_get_blob_512_128,2575484041,,0,,0, +new,btreemap_v1_get_blob_64_128,508829622,,0,,0, +new,btreemap_v1_get_blob_8_128,201098226,,0,,0, +new,btreemap_v1_get_u64_blob8,173677469,,0,,0, +new,btreemap_v1_get_u64_u64,176711268,,0,,0, +new,btreemap_v1_insert_blob8_u64,329934785,,0,,6, +new,btreemap_v1_insert_blob_1024_128,5003142436,,0,,262, +new,btreemap_v1_insert_blob_128_128,1026896477,,0,,61, +new,btreemap_v1_insert_blob_16_128,391208873,,0,,32, +new,btreemap_v1_insert_blob_256_128,1576029658,,0,,90, +new,btreemap_v1_insert_blob_32_1024,584220763,,0,,230, +new,btreemap_v1_insert_blob_32_128,423534612,,0,,37, +new,btreemap_v1_insert_blob_32_16,405329416,,0,,14, +new,btreemap_v1_insert_blob_32_256,453509950,,0,,66, +new,btreemap_v1_insert_blob_32_32,407982201,,0,,17, +new,btreemap_v1_insert_blob_32_4,393092021,,0,,11, +new,btreemap_v1_insert_blob_32_512,494442570,,0,,121, +new,btreemap_v1_insert_blob_32_64,411446503,,0,,24, +new,btreemap_v1_insert_blob_32_8,397466462,,0,,12, +new,btreemap_v1_insert_blob_4_128,312941760,,0,,17, +new,btreemap_v1_insert_blob_512_128,2752074589,,0,,148, +new,btreemap_v1_insert_blob_64_128,669974138,,0,,46, +new,btreemap_v1_insert_blob_8_128,358039235,,0,,27, +new,btreemap_v1_insert_u64_blob8,339684422,,0,,7, +new,btreemap_v1_insert_u64_u64,344884908,,0,,7, +new,btreemap_v1_pop_first_blob8_u64,440442786,,0,,0, +new,btreemap_v1_pop_first_blob_1024_128,9209904825,,0,,0, +new,btreemap_v1_pop_first_blob_128_128,1817203783,,0,,0, +new,btreemap_v1_pop_first_blob_16_128,588226778,,0,,0, +new,btreemap_v1_pop_first_blob_256_128,2895660576,,0,,0, +new,btreemap_v1_pop_first_blob_32_1024,955590937,,0,,0, +new,btreemap_v1_pop_first_blob_32_128,694949290,,0,,0, +new,btreemap_v1_pop_first_blob_32_16,642191114,,0,,0, +new,btreemap_v1_pop_first_blob_32_256,731539216,,0,,0, +new,btreemap_v1_pop_first_blob_32_32,651380687,,0,,0, +new,btreemap_v1_pop_first_blob_32_4,623771279,,0,,0, +new,btreemap_v1_pop_first_blob_32_512,797530494,,0,,0, +new,btreemap_v1_pop_first_blob_32_64,661830735,,0,,0, +new,btreemap_v1_pop_first_blob_32_8,637746040,,0,,0, +new,btreemap_v1_pop_first_blob_4_128,278931792,,0,,0, +new,btreemap_v1_pop_first_blob_512_128,4985295219,,0,,0, +new,btreemap_v1_pop_first_blob_64_128,1148964543,,0,,0, +new,btreemap_v1_pop_first_blob_8_128,464938767,,0,,0, +new,btreemap_v1_pop_first_u64_blob8,552760738,,0,,0, +new,btreemap_v1_pop_first_u64_u64,555550289,,0,,0, +new,btreemap_v1_pop_last_blob8_u64,425558322,,0,,0, +new,btreemap_v1_pop_last_blob_1024_128,9026857390,,0,,0, +new,btreemap_v1_pop_last_blob_128_128,1771818496,,0,,0, +new,btreemap_v1_pop_last_blob_16_128,578504524,,0,,0, +new,btreemap_v1_pop_last_blob_256_128,2829333178,,0,,0, +new,btreemap_v1_pop_last_blob_32_1024,935766058,,0,,0, +new,btreemap_v1_pop_last_blob_32_128,672669373,,0,,0, +new,btreemap_v1_pop_last_blob_32_16,622149789,,0,,0, +new,btreemap_v1_pop_last_blob_32_256,710485425,,0,,0, +new,btreemap_v1_pop_last_blob_32_32,632078429,,0,,0, +new,btreemap_v1_pop_last_blob_32_4,609993537,,0,,0, +new,btreemap_v1_pop_last_blob_32_512,779152304,,0,,0, +new,btreemap_v1_pop_last_blob_32_64,642285310,,0,,0, +new,btreemap_v1_pop_last_blob_32_8,616068670,,0,,0, +new,btreemap_v1_pop_last_blob_4_128,271362314,,0,,0, +new,btreemap_v1_pop_last_blob_512_128,4875145521,,0,,0, +new,btreemap_v1_pop_last_blob_64_128,1118455938,,0,,0, +new,btreemap_v1_pop_last_blob_8_128,461614248,,0,,0, +new,btreemap_v1_pop_last_u64_blob8,540607851,,0,,0, +new,btreemap_v1_pop_last_u64_u64,543112821,,0,,0, +new,btreemap_v1_remove_blob8_u64,439863392,,0,,0, +new,btreemap_v1_remove_blob_1024_128,6329350311,,0,,0, +new,btreemap_v1_remove_blob_128_128,1320296970,,0,,0, +new,btreemap_v1_remove_blob_16_128,539004547,,0,,0, +new,btreemap_v1_remove_blob_256_128,2044963965,,0,,0, +new,btreemap_v1_remove_blob_32_1024,825632231,,0,,0, +new,btreemap_v1_remove_blob_32_128,588789993,,0,,0, +new,btreemap_v1_remove_blob_32_16,545908410,,0,,0, +new,btreemap_v1_remove_blob_32_256,625265227,,0,,0, +new,btreemap_v1_remove_blob_32_32,553650900,,0,,0, +new,btreemap_v1_remove_blob_32_4,537395900,,0,,0, +new,btreemap_v1_remove_blob_32_512,696535326,,0,,0, +new,btreemap_v1_remove_blob_32_64,574620363,,0,,0, +new,btreemap_v1_remove_blob_32_8,538139629,,0,,0, +new,btreemap_v1_remove_blob_4_128,342732420,,0,,0, +new,btreemap_v1_remove_blob_512_128,3454094220,,0,,0, +new,btreemap_v1_remove_blob_64_128,875777361,,0,,0, +new,btreemap_v1_remove_blob_8_128,470018886,,0,,0, +new,btreemap_v1_remove_u64_blob8,485913516,,0,,0, +new,btreemap_v1_remove_u64_u64,499266505,,0,,0, +new,btreemap_v2_contains_10mib_values,142213004,,0,,0, +new,btreemap_v2_contains_blob8_u64,277713087,,0,,0, +new,btreemap_v2_contains_blob_1024_128,4897884819,,0,,0, +new,btreemap_v2_contains_blob_128_128,925983020,,0,,0, +new,btreemap_v2_contains_blob_16_128,304185180,,0,,0, +new,btreemap_v2_contains_blob_256_128,1482592583,,0,,0, +new,btreemap_v2_contains_blob_32_1024,334889492,,0,,0, +new,btreemap_v2_contains_blob_32_128,332336378,,0,,0, +new,btreemap_v2_contains_blob_32_16,336647532,,0,,0, +new,btreemap_v2_contains_blob_32_256,336952134,,0,,0, +new,btreemap_v2_contains_blob_32_32,337767804,,0,,0, +new,btreemap_v2_contains_blob_32_4,333734209,,0,,0, +new,btreemap_v2_contains_blob_32_512,332809414,,0,,0, +new,btreemap_v2_contains_blob_32_64,335145674,,0,,0, +new,btreemap_v2_contains_blob_32_8,334699459,,0,,0, +new,btreemap_v2_contains_blob_4_128,244876846,,0,,0, +new,btreemap_v2_contains_blob_512_128,2624677444,,0,,0, +new,btreemap_v2_contains_blob_64_128,584178824,,0,,0, +new,btreemap_v2_contains_blob_8_128,268359561,,0,,0, +new,btreemap_v2_contains_u64_blob8,234897323,,0,,0, +new,btreemap_v2_contains_u64_u64,236421608,,0,,0, +new,btreemap_v2_contains_u64_vec8,234897338,,0,,0, +new,btreemap_v2_contains_vec8_u64,366491431,,0,,0, +new,btreemap_v2_contains_vec_1024_128,2875641971,,0,,0, +new,btreemap_v2_contains_vec_128_128,698056573,,0,,0, +new,btreemap_v2_contains_vec_16_128,430496510,,0,,0, +new,btreemap_v2_contains_vec_256_128,1220085542,,0,,0, +new,btreemap_v2_contains_vec_32_1024,573798539,,0,,0, +new,btreemap_v2_contains_vec_32_128,488603839,,0,,0, +new,btreemap_v2_contains_vec_32_16,408307710,,0,,0, +new,btreemap_v2_contains_vec_32_256,521878485,,0,,0, +new,btreemap_v2_contains_vec_32_32,408806200,,0,,0, +new,btreemap_v2_contains_vec_32_4,407179812,,0,,0, +new,btreemap_v2_contains_vec_32_512,536998195,,0,,0, +new,btreemap_v2_contains_vec_32_64,463602926,,0,,0, +new,btreemap_v2_contains_vec_32_8,407102811,,0,,0, +new,btreemap_v2_contains_vec_4_128,397153848,,0,,0, +new,btreemap_v2_contains_vec_512_128,1812299060,,0,,0, +new,btreemap_v2_contains_vec_64_128,594729377,,0,,0, +new,btreemap_v2_contains_vec_8_128,388847731,,0,,0, +new,btreemap_v2_get_10mib_values,1227472657,,0,,0, +new,btreemap_v2_get_blob8_u64,297139911,,0,,0, +new,btreemap_v2_get_blob_1024_128,4953924210,,0,,0, +new,btreemap_v2_get_blob_128_128,947186495,,0,,0, +new,btreemap_v2_get_blob_16_128,317354417,,0,,0, +new,btreemap_v2_get_blob_256_128,1507431266,,0,,0, +new,btreemap_v2_get_blob_32_1024,353756221,,0,,0, +new,btreemap_v2_get_blob_32_128,345894163,,0,,0, +new,btreemap_v2_get_blob_32_16,346953462,,0,,0, +new,btreemap_v2_get_blob_32_256,351580221,,0,,0, +new,btreemap_v2_get_blob_32_32,348889561,,0,,0, +new,btreemap_v2_get_blob_32_4,343473664,,0,,0, +new,btreemap_v2_get_blob_32_512,348929751,,0,,0, +new,btreemap_v2_get_blob_32_64,347119635,,0,,0, +new,btreemap_v2_get_blob_32_8,345315038,,0,,0, +new,btreemap_v2_get_blob_4_128,257370621,,0,,0, +new,btreemap_v2_get_blob_512_128,2659912132,,0,,0, +new,btreemap_v2_get_blob_64_128,601774814,,0,,0, +new,btreemap_v2_get_blob_8_128,281640219,,0,,0, +new,btreemap_v2_get_u64_blob8,245362209,,0,,0, +new,btreemap_v2_get_u64_u64,249268645,,0,,0, +new,btreemap_v2_get_u64_vec8,246137433,,0,,0, +new,btreemap_v2_get_vec8_u64,376858286,,0,,0, +new,btreemap_v2_get_vec_1024_128,2921959775,,0,,0, +new,btreemap_v2_get_vec_128_128,710827388,,0,,0, +new,btreemap_v2_get_vec_16_128,440398211,,0,,0, +new,btreemap_v2_get_vec_256_128,1233367092,,0,,0, +new,btreemap_v2_get_vec_32_1024,606431114,,0,,0, +new,btreemap_v2_get_vec_32_128,498908637,,0,,0, +new,btreemap_v2_get_vec_32_16,416949497,,0,,0, +new,btreemap_v2_get_vec_32_256,539821398,,0,,0, +new,btreemap_v2_get_vec_32_32,417020079,,0,,0, +new,btreemap_v2_get_vec_32_4,415119023,,0,,0, +new,btreemap_v2_get_vec_32_512,558783250,,0,,0, +new,btreemap_v2_get_vec_32_64,472181771,,0,,0, +new,btreemap_v2_get_vec_32_8,415079885,,0,,0, +new,btreemap_v2_get_vec_4_128,407056995,,0,,0, +new,btreemap_v2_get_vec_512_128,1825704224,,0,,0, +new,btreemap_v2_get_vec_64_128,606201847,,0,,0, +new,btreemap_v2_get_vec_8_128,398653757,,0,,0, +new,btreemap_v2_insert_10mib_values,5236275168,,322,,3613, +new,btreemap_v2_insert_blob8_u64,440861921,,0,,4, +new,btreemap_v2_insert_blob_1024_128,5104008235,,0,,196, +new,btreemap_v2_insert_blob_128_128,1133684047,,0,,46, +new,btreemap_v2_insert_blob_16_128,494767992,,0,,24, +new,btreemap_v2_insert_blob_256_128,1683872591,,0,,67, +new,btreemap_v2_insert_blob_32_1024,687122501,,0,,173, +new,btreemap_v2_insert_blob_32_128,529123151,,0,,28, +new,btreemap_v2_insert_blob_32_16,508434265,,0,,11, +new,btreemap_v2_insert_blob_32_256,560318876,,0,,49, +new,btreemap_v2_insert_blob_32_32,514031722,,0,,13, +new,btreemap_v2_insert_blob_32_4,496606631,,0,,8, +new,btreemap_v2_insert_blob_32_512,597566604,,0,,91, +new,btreemap_v2_insert_blob_32_64,519519045,,0,,18, +new,btreemap_v2_insert_blob_32_8,503751175,,0,,9, +new,btreemap_v2_insert_blob_4_128,410411924,,0,,13, +new,btreemap_v2_insert_blob_512_128,2855055481,,0,,111, +new,btreemap_v2_insert_blob_64_128,777536947,,0,,34, +new,btreemap_v2_insert_blob_8_128,462943497,,0,,20, +new,btreemap_v2_insert_u64_blob8,422654181,,0,,5, +new,btreemap_v2_insert_u64_u64,431497067,,0,,6, +new,btreemap_v2_insert_u64_vec8,429929989,,0,,21, +new,btreemap_v2_insert_vec8_u64,581931268,,0,,16, +new,btreemap_v2_insert_vec_1024_128,3318166891,,0,,193, +new,btreemap_v2_insert_vec_128_128,1095306451,,0,,51, +new,btreemap_v2_insert_vec_16_128,703253294,,0,,31, +new,btreemap_v2_insert_vec_256_128,1506010620,,0,,71, +new,btreemap_v2_insert_vec_32_1024,1221769507,,0,,171, +new,btreemap_v2_insert_vec_32_128,761626630,,0,,33, +new,btreemap_v2_insert_vec_32_16,663288909,,0,,20, +new,btreemap_v2_insert_vec_32_256,890332939,,0,,54, +new,btreemap_v2_insert_vec_32_32,666181941,,0,,20, +new,btreemap_v2_insert_vec_32_4,660361307,,0,,20, +new,btreemap_v2_insert_vec_32_512,1008642945,,0,,91, +new,btreemap_v2_insert_vec_32_64,692118095,,0,,24, +new,btreemap_v2_insert_vec_32_8,660131454,,0,,20, +new,btreemap_v2_insert_vec_4_128,608604433,,0,,16, +new,btreemap_v2_insert_vec_512_128,2126953494,,0,,112, +new,btreemap_v2_insert_vec_64_128,880172928,,0,,41, +new,btreemap_v2_insert_vec_8_128,666246354,,0,,23, +new,btreemap_v2_mem_manager_contains_blob512_u64,2717630382,,0,,0, +new,btreemap_v2_mem_manager_contains_u64_blob512,311110875,,0,,0, +new,btreemap_v2_mem_manager_contains_u64_u64,316773716,,0,,0, +new,btreemap_v2_mem_manager_contains_u64_vec512,395734654,,0,,0, +new,btreemap_v2_mem_manager_contains_vec512_u64,1754766489,,0,,0, +new,btreemap_v2_mem_manager_get_blob512_u64,2762707145,,0,,0, +new,btreemap_v2_mem_manager_get_u64_blob512,327868758,,0,,0, +new,btreemap_v2_mem_manager_get_u64_u64,329806410,,0,,0, +new,btreemap_v2_mem_manager_get_u64_vec512,422661515,,0,,0, +new,btreemap_v2_mem_manager_get_vec512_u64,1792390521,,0,,0, +new,btreemap_v2_mem_manager_insert_blob512_u64,2959846456,,0,,0, +new,btreemap_v2_mem_manager_insert_u64_blob512,647064908,,0,,0, +new,btreemap_v2_mem_manager_insert_u64_u64,560862124,,0,,0, +new,btreemap_v2_mem_manager_insert_u64_vec512,901842874,,0,,0, +new,btreemap_v2_mem_manager_insert_vec512_u64,2241199345,,0,,0, +new,btreemap_v2_mem_manager_remove_blob512_u64,3847539272,,0,,0, +new,btreemap_v2_mem_manager_remove_u64_blob512,947364196,,0,,0, +new,btreemap_v2_mem_manager_remove_u64_u64,807405593,,0,,0, +new,btreemap_v2_mem_manager_remove_u64_vec512,1287069190,,0,,0, +new,btreemap_v2_mem_manager_remove_vec512_u64,3316383884,,0,,0, +new,btreemap_v2_pop_first_blob8_u64,608291661,,0,,0, +new,btreemap_v2_pop_first_blob_1024_128,9398188467,,0,,0, +new,btreemap_v2_pop_first_blob_128_128,2007415368,,0,,0, +new,btreemap_v2_pop_first_blob_16_128,757418966,,0,,0, +new,btreemap_v2_pop_first_blob_256_128,3093785202,,0,,0, +new,btreemap_v2_pop_first_blob_32_1024,1132453514,,0,,0, +new,btreemap_v2_pop_first_blob_32_128,876371666,,0,,0, +new,btreemap_v2_pop_first_blob_32_16,819915570,,0,,0, +new,btreemap_v2_pop_first_blob_32_256,907503803,,0,,0, +new,btreemap_v2_pop_first_blob_32_32,831628016,,0,,0, +new,btreemap_v2_pop_first_blob_32_4,802089971,,0,,0, +new,btreemap_v2_pop_first_blob_32_512,973265656,,0,,0, +new,btreemap_v2_pop_first_blob_32_64,838693246,,0,,0, +new,btreemap_v2_pop_first_blob_32_8,818463740,,0,,0, +new,btreemap_v2_pop_first_blob_4_128,371985311,,0,,0, +new,btreemap_v2_pop_first_blob_512_128,5172264944,,0,,0, +new,btreemap_v2_pop_first_blob_64_128,1328879808,,0,,0, +new,btreemap_v2_pop_first_blob_8_128,611407092,,0,,0, +new,btreemap_v2_pop_first_u64_blob8,705248265,,0,,0, +new,btreemap_v2_pop_first_u64_u64,717329877,,0,,0, +new,btreemap_v2_pop_first_u64_vec8,709593211,,0,,0, +new,btreemap_v2_pop_first_vec8_u64,782287090,,0,,0, +new,btreemap_v2_pop_first_vec_1024_128,5762265936,,0,,0, +new,btreemap_v2_pop_first_vec_128_128,1815546654,,0,,0, +new,btreemap_v2_pop_first_vec_16_128,1024443186,,0,,0, +new,btreemap_v2_pop_first_vec_256_128,2528307535,,0,,0, +new,btreemap_v2_pop_first_vec_32_1024,1811350791,,0,,0, +new,btreemap_v2_pop_first_vec_32_128,1204814177,,0,,0, +new,btreemap_v2_pop_first_vec_32_16,1039338017,,0,,0, +new,btreemap_v2_pop_first_vec_32_256,1326543051,,0,,0, +new,btreemap_v2_pop_first_vec_32_32,1055530159,,0,,0, +new,btreemap_v2_pop_first_vec_32_4,1038272566,,0,,0, +new,btreemap_v2_pop_first_vec_32_512,1489882556,,0,,0, +new,btreemap_v2_pop_first_vec_32_64,1089756943,,0,,0, +new,btreemap_v2_pop_first_vec_32_8,1050176827,,0,,0, +new,btreemap_v2_pop_first_vec_4_128,537424590,,0,,0, +new,btreemap_v2_pop_first_vec_512_128,3599302571,,0,,0, +new,btreemap_v2_pop_first_vec_64_128,1401892097,,0,,0, +new,btreemap_v2_pop_first_vec_8_128,845504240,,0,,0, +new,btreemap_v2_pop_last_blob8_u64,592362547,,0,,0, +new,btreemap_v2_pop_last_blob_1024_128,9219664993,,0,,0, +new,btreemap_v2_pop_last_blob_128_128,1958516704,,0,,0, +new,btreemap_v2_pop_last_blob_16_128,738623015,,0,,0, +new,btreemap_v2_pop_last_blob_256_128,3020531374,,0,,0, +new,btreemap_v2_pop_last_blob_32_1024,1112565103,,0,,0, +new,btreemap_v2_pop_last_blob_32_128,854347996,,0,,0, +new,btreemap_v2_pop_last_blob_32_16,798819036,,0,,0, +new,btreemap_v2_pop_last_blob_32_256,886655814,,0,,0, +new,btreemap_v2_pop_last_blob_32_32,810795267,,0,,0, +new,btreemap_v2_pop_last_blob_32_4,787773511,,0,,0, +new,btreemap_v2_pop_last_blob_32_512,955218753,,0,,0, +new,btreemap_v2_pop_last_blob_32_64,820640883,,0,,0, +new,btreemap_v2_pop_last_blob_32_8,797866752,,0,,0, +new,btreemap_v2_pop_last_blob_4_128,363658412,,0,,0, +new,btreemap_v2_pop_last_blob_512_128,5053410203,,0,,0, +new,btreemap_v2_pop_last_blob_64_128,1307018060,,0,,0, +new,btreemap_v2_pop_last_blob_8_128,611183029,,0,,0, +new,btreemap_v2_pop_last_u64_blob8,692886714,,0,,0, +new,btreemap_v2_pop_last_u64_u64,704577983,,0,,0, +new,btreemap_v2_pop_last_u64_vec8,695997588,,0,,0, +new,btreemap_v2_pop_last_vec8_u64,763627664,,0,,0, +new,btreemap_v2_pop_last_vec_1024_128,6009852618,,0,,0, +new,btreemap_v2_pop_last_vec_128_128,1829432194,,0,,0, +new,btreemap_v2_pop_last_vec_16_128,1012645478,,0,,0, +new,btreemap_v2_pop_last_vec_256_128,2581611468,,0,,0, +new,btreemap_v2_pop_last_vec_32_1024,1806174004,,0,,0, +new,btreemap_v2_pop_last_vec_32_128,1204020271,,0,,0, +new,btreemap_v2_pop_last_vec_32_16,1028212700,,0,,0, +new,btreemap_v2_pop_last_vec_32_256,1324004314,,0,,0, +new,btreemap_v2_pop_last_vec_32_32,1043904024,,0,,0, +new,btreemap_v2_pop_last_vec_32_4,1036623333,,0,,0, +new,btreemap_v2_pop_last_vec_32_512,1490189536,,0,,0, +new,btreemap_v2_pop_last_vec_32_64,1084539473,,0,,0, +new,btreemap_v2_pop_last_vec_32_8,1038381761,,0,,0, +new,btreemap_v2_pop_last_vec_4_128,528568472,,0,,0, +new,btreemap_v2_pop_last_vec_512_128,3722254862,,0,,0, +new,btreemap_v2_pop_last_vec_64_128,1415401855,,0,,0, +new,btreemap_v2_pop_last_vec_8_128,853141400,,0,,0, +new,btreemap_v2_range_count_1k_0b,16871,,0,,0, +new,btreemap_v2_range_count_1k_10kib,2440306,,0,,0, +new,btreemap_v2_range_count_20_10mib,20572482,,0,,0, +new,btreemap_v2_range_key_sum_1k_0b,17405,,0,,0, +new,btreemap_v2_range_key_sum_1k_10kib,57254917,,0,,0, +new,btreemap_v2_range_key_sum_20_10mib,1105826146,,0,,0, +new,btreemap_v2_range_value_sum_1k_0b,17419,,0,,0, +new,btreemap_v2_range_value_sum_1k_10kib,57266913,,0,,0, +new,btreemap_v2_range_value_sum_20_10mib,1105826382,,0,,0, +new,btreemap_v2_remove_10mib_values,5561337528,,0,,657, +new,btreemap_v2_remove_blob8_u64,587148004,,0,,0, +new,btreemap_v2_remove_blob_1024_128,6474121980,,0,,0, +new,btreemap_v2_remove_blob_128_128,1466116527,,0,,0, +new,btreemap_v2_remove_blob_16_128,680002778,,0,,0, +new,btreemap_v2_remove_blob_256_128,2195216146,,0,,0, +new,btreemap_v2_remove_blob_32_1024,965884145,,0,,0, +new,btreemap_v2_remove_blob_32_128,731104519,,0,,0, +new,btreemap_v2_remove_blob_32_16,687174807,,0,,0, +new,btreemap_v2_remove_blob_32_256,765993244,,0,,0, +new,btreemap_v2_remove_blob_32_32,695978850,,0,,0, +new,btreemap_v2_remove_blob_32_4,679309614,,0,,0, +new,btreemap_v2_remove_blob_32_512,837922200,,0,,0, +new,btreemap_v2_remove_blob_32_64,720007632,,0,,0, +new,btreemap_v2_remove_blob_32_8,679954161,,0,,0, +new,btreemap_v2_remove_blob_4_128,455500782,,0,,0, +new,btreemap_v2_remove_blob_512_128,3600501128,,0,,0, +new,btreemap_v2_remove_blob_64_128,1020115077,,0,,0, +new,btreemap_v2_remove_blob_8_128,607878082,,0,,0, +new,btreemap_v2_remove_u64_blob8,597535434,,0,,0, +new,btreemap_v2_remove_u64_u64,619080526,,0,,0, +new,btreemap_v2_remove_u64_vec8,603458045,,0,,0, +new,btreemap_v2_remove_vec8_u64,750426147,,0,,0, +new,btreemap_v2_remove_vec_1024_128,5020456905,,0,,0, +new,btreemap_v2_remove_vec_128_128,1451042556,,0,,0, +new,btreemap_v2_remove_vec_16_128,907590325,,0,,0, +new,btreemap_v2_remove_vec_256_128,2313326693,,0,,0, +new,btreemap_v2_remove_vec_32_1024,1673021222,,0,,0, +new,btreemap_v2_remove_vec_32_128,1010534168,,0,,0, +new,btreemap_v2_remove_vec_32_16,834640728,,0,,0, +new,btreemap_v2_remove_vec_32_256,1228590016,,0,,0, +new,btreemap_v2_remove_vec_32_32,841144006,,0,,0, +new,btreemap_v2_remove_vec_32_4,839617721,,0,,0, +new,btreemap_v2_remove_vec_32_512,1392150674,,0,,0, +new,btreemap_v2_remove_vec_32_64,923615504,,0,,0, +new,btreemap_v2_remove_vec_32_8,833306650,,0,,0, +new,btreemap_v2_remove_vec_4_128,649594780,,0,,0, +new,btreemap_v2_remove_vec_512_128,3264643019,,0,,0, +new,btreemap_v2_remove_vec_64_128,1178301615,,0,,0, +new,btreemap_v2_remove_vec_8_128,819927738,,0,,0, +new,btreemap_v2_scan_iter_1k_0b,1493458,,0,,0, +new,btreemap_v2_scan_iter_1k_10kib,57069957,,0,,0, +new,btreemap_v2_scan_iter_20_10mib,1103719699,,0,,0, +new,btreemap_v2_scan_iter_rev_1k_0b,1495597,,0,,0, +new,btreemap_v2_scan_iter_rev_1k_10kib,57047594,,0,,0, +new,btreemap_v2_scan_iter_rev_20_10mib,1103719281,,0,,0, +new,btreemap_v2_scan_keys_1k_0b,946083,,0,,0, +new,btreemap_v2_scan_keys_1k_10kib,2359607,,0,,0, +new,btreemap_v2_scan_keys_20_10mib,18465439,,0,,0, +new,btreemap_v2_scan_keys_rev_1k_0b,963320,,0,,0, +new,btreemap_v2_scan_keys_rev_1k_10kib,2355505,,0,,0, +new,btreemap_v2_scan_keys_rev_20_10mib,18465774,,0,,0, +new,btreemap_v2_scan_values_1k_0b,1490856,,0,,0, +new,btreemap_v2_scan_values_1k_10kib,57067355,,0,,0, +new,btreemap_v2_scan_values_20_10mib,1103719649,,0,,0, +new,btreemap_v2_scan_values_rev_1k_0b,1492995,,0,,0, +new,btreemap_v2_scan_values_rev_1k_10kib,57044992,,0,,0, +new,btreemap_v2_scan_values_rev_20_10mib,1103719231,,0,,0, ,memory_manager_baseline,1176577076,0.00%,0,0.00%,8000,0.00% ,memory_manager_grow,346537961,0.00%,2,0.00%,32000,0.00% ,memory_manager_overhead,1181962837,0.00%,0,0.00%,8320,0.00% diff --git a/canbench_results.yml b/canbench_results.yml index 85a64240..8a68e345 100644 --- a/canbench_results.yml +++ b/canbench_results.yml @@ -1,631 +1,2431 @@ benches: - btreemap_contains_key_blob_4_1024: + btreemap_v1_contains_blob8_u64: total: - instructions: 164495877 + instructions: 195271021 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_contains_key_blob_4_1024_v2: + btreemap_v1_contains_blob_1024_128: total: - instructions: 248921977 + instructions: 4811323110 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_128_1024: + btreemap_v1_contains_blob_128_128: total: - instructions: 876676182 + instructions: 850930156 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_128_1024_v2: + btreemap_v1_contains_blob_16_128: total: - instructions: 953199881 + instructions: 226230369 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_16_1024: + btreemap_v1_contains_blob_256_128: total: - instructions: 241470994 + instructions: 1407896845 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_16_1024_v2: + btreemap_v1_contains_blob_32_1024: total: - instructions: 320086039 + instructions: 256961773 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_256_1024: + btreemap_v1_contains_blob_32_128: total: - instructions: 1440152578 + instructions: 250177816 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_256_1024_v2: + btreemap_v1_contains_blob_32_16: total: - instructions: 1524516290 + instructions: 261906396 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_32_1024: + btreemap_v1_contains_blob_32_256: total: - instructions: 275141698 + instructions: 258725278 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_32_1024_v2: + btreemap_v1_contains_blob_32_32: total: - instructions: 353756221 + instructions: 259151053 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_4_1024: + btreemap_v1_contains_blob_32_4: total: - instructions: 182139496 + instructions: 257349962 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_4_1024_v2: + btreemap_v1_contains_blob_32_512: total: - instructions: 267339946 + instructions: 255019597 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_512_1024: + btreemap_v1_contains_blob_32_64: total: - instructions: 2573387979 + instructions: 252217576 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_512_1024_v2: + btreemap_v1_contains_blob_32_8: total: - instructions: 2653499228 + instructions: 252815455 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_512_1024_v2_mem_manager: + btreemap_v1_contains_blob_4_128: total: - instructions: 2759852247 + instructions: 161092850 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_64_1024: + btreemap_v1_contains_blob_512_128: total: - instructions: 521344804 + instructions: 2540558634 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_64_1024_v2: + btreemap_v1_contains_blob_64_128: total: - instructions: 603758767 + instructions: 495156778 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_8_1024: + btreemap_v1_contains_blob_8_128: total: - instructions: 212618950 + instructions: 188138732 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_8_1024_v2: + btreemap_v1_contains_u64_blob8: total: - instructions: 294121282 + instructions: 166038798 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_8_u64: + btreemap_v1_contains_u64_u64: total: - instructions: 199845052 + instructions: 167293960 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_blob_8_u64_v2: + btreemap_v1_get_blob8_u64: total: - instructions: 289664167 + instructions: 203697122 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_u64_blob_8: + btreemap_v1_get_blob_1024_128: total: - instructions: 173627473 + instructions: 4867663262 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_u64_blob_8_v2: + btreemap_v1_get_blob_128_128: total: - instructions: 245312213 + instructions: 867834674 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_u64_u64: + btreemap_v1_get_blob_16_128: total: - instructions: 176661272 + instructions: 239293029 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_u64_u64_v2: + btreemap_v1_get_blob_256_128: total: - instructions: 249218649 + instructions: 1431740445 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_get_u64_u64_v2_mem_manager: + btreemap_v1_get_blob_32_1024: total: - instructions: 329730573 + instructions: 275141698 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_insert_10mib_values: + btreemap_v1_get_blob_32_128: total: - instructions: 5235962440 + instructions: 262740541 heap_increase: 0 - stable_memory_increase: 3613 + stable_memory_increase: 0 + scopes: {} + btreemap_v1_get_blob_32_16: + total: + instructions: 269802882 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v1_get_blob_32_256: + total: + instructions: 272218440 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v1_get_blob_32_32: + total: + instructions: 267860063 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v1_get_blob_32_4: + total: + instructions: 264584535 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v1_get_blob_32_512: + total: + instructions: 270395928 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v1_get_blob_32_64: + total: + instructions: 262951923 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v1_get_blob_32_8: + total: + instructions: 261740283 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v1_get_blob_4_128: + total: + instructions: 174475611 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v1_get_blob_512_128: + total: + instructions: 2575484041 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v1_get_blob_64_128: + total: + instructions: 508829622 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v1_get_blob_8_128: + total: + instructions: 201098226 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v1_get_u64_blob8: + total: + instructions: 173677469 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v1_get_u64_u64: + total: + instructions: 176711268 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v1_insert_blob8_u64: + total: + instructions: 329934785 + heap_increase: 0 + stable_memory_increase: 6 scopes: {} - btreemap_insert_blob_1024_128: + btreemap_v1_insert_blob_1024_128: total: - instructions: 5098352751 + instructions: 5003142436 heap_increase: 0 stable_memory_increase: 262 scopes: {} - btreemap_insert_blob_1024_128_v2: + btreemap_v1_insert_blob_128_128: total: - instructions: 5199218550 + instructions: 1026896477 heap_increase: 0 - stable_memory_increase: 196 + stable_memory_increase: 61 + scopes: {} + btreemap_v1_insert_blob_16_128: + total: + instructions: 391208873 + heap_increase: 0 + stable_memory_increase: 32 scopes: {} - btreemap_insert_blob_1024_16: + btreemap_v1_insert_blob_256_128: total: - instructions: 5080607598 + instructions: 1576029658 heap_increase: 0 - stable_memory_increase: 241 + stable_memory_increase: 90 scopes: {} - btreemap_insert_blob_1024_16_v2: + btreemap_v1_insert_blob_32_1024: total: - instructions: 5187794378 + instructions: 584220763 heap_increase: 0 - stable_memory_increase: 181 + stable_memory_increase: 230 scopes: {} - btreemap_insert_blob_1024_256: + btreemap_v1_insert_blob_32_128: total: - instructions: 5125958119 + instructions: 423534612 heap_increase: 0 - stable_memory_increase: 292 + stable_memory_increase: 37 scopes: {} - btreemap_insert_blob_1024_256_v2: + btreemap_v1_insert_blob_32_16: total: - instructions: 5224501040 + instructions: 405329416 heap_increase: 0 - stable_memory_increase: 219 + stable_memory_increase: 14 scopes: {} - btreemap_insert_blob_1024_32: + btreemap_v1_insert_blob_32_256: total: - instructions: 5075547429 + instructions: 453509950 heap_increase: 0 - stable_memory_increase: 239 + stable_memory_increase: 66 scopes: {} - btreemap_insert_blob_1024_32_v2: + btreemap_v1_insert_blob_32_32: total: - instructions: 5185065640 + instructions: 407982201 heap_increase: 0 - stable_memory_increase: 180 + stable_memory_increase: 17 scopes: {} - btreemap_insert_blob_1024_4: + btreemap_v1_insert_blob_32_4: total: - instructions: 4977775085 + instructions: 393092021 heap_increase: 0 - stable_memory_increase: 235 + stable_memory_increase: 11 scopes: {} - btreemap_insert_blob_1024_4_v2: + btreemap_v1_insert_blob_32_512: total: - instructions: 5084891041 + instructions: 494442570 heap_increase: 0 - stable_memory_increase: 176 + stable_memory_increase: 121 scopes: {} - btreemap_insert_blob_1024_512: + btreemap_v1_insert_blob_32_64: total: - instructions: 5200292029 - heap_increase: 1 - stable_memory_increase: 348 + instructions: 411446503 + heap_increase: 0 + stable_memory_increase: 24 scopes: {} - btreemap_insert_blob_1024_512_v2: + btreemap_v1_insert_blob_32_8: total: - instructions: 5299421985 + instructions: 397466462 heap_increase: 0 - stable_memory_increase: 261 + stable_memory_increase: 12 scopes: {} - btreemap_insert_blob_1024_512_v2_mem_manager: + btreemap_v1_insert_blob_4_128: total: - instructions: 5469551996 + instructions: 312941760 heap_increase: 0 - stable_memory_increase: 256 + stable_memory_increase: 17 scopes: {} - btreemap_insert_blob_1024_64: + btreemap_v1_insert_blob_512_128: total: - instructions: 5133691382 + instructions: 2752074589 heap_increase: 0 - stable_memory_increase: 250 + stable_memory_increase: 148 scopes: {} - btreemap_insert_blob_1024_64_v2: + btreemap_v1_insert_blob_64_128: total: - instructions: 5242140512 + instructions: 669974138 heap_increase: 0 - stable_memory_increase: 188 + stable_memory_increase: 46 scopes: {} - btreemap_insert_blob_1024_8: + btreemap_v1_insert_blob_8_128: total: - instructions: 5065686056 + instructions: 358039235 heap_increase: 0 - stable_memory_increase: 237 + stable_memory_increase: 27 scopes: {} - btreemap_insert_blob_1024_8_v2: + btreemap_v1_insert_u64_blob8: total: - instructions: 5174504738 + instructions: 339684422 heap_increase: 0 - stable_memory_increase: 178 + stable_memory_increase: 7 scopes: {} - btreemap_insert_blob_128_1024: + btreemap_v1_insert_u64_u64: total: - instructions: 1276472811 + instructions: 344884908 heap_increase: 0 - stable_memory_increase: 260 + stable_memory_increase: 7 scopes: {} - btreemap_insert_blob_128_1024_v2: + btreemap_v1_pop_first_blob8_u64: total: - instructions: 1378788105 + instructions: 440442786 heap_increase: 0 - stable_memory_increase: 195 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_16_1024: + btreemap_v1_pop_first_blob_1024_128: total: - instructions: 634307113 + instructions: 9209904825 heap_increase: 0 - stable_memory_increase: 215 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_16_1024_v2: + btreemap_v1_pop_first_blob_128_128: total: - instructions: 733723555 + instructions: 1817203783 heap_increase: 0 - stable_memory_increase: 161 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_256_1024: + btreemap_v1_pop_first_blob_16_128: total: - instructions: 1860540926 + instructions: 588226778 heap_increase: 0 - stable_memory_increase: 292 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_256_1024_v2: + btreemap_v1_pop_first_blob_256_128: total: - instructions: 1967548428 + instructions: 2895660576 heap_increase: 0 - stable_memory_increase: 219 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_32_1024: + btreemap_v1_pop_first_blob_32_1024: total: - instructions: 670121076 + instructions: 955590937 heap_increase: 0 - stable_memory_increase: 230 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_32_1024_v2: + btreemap_v1_pop_first_blob_32_128: total: - instructions: 773022814 + instructions: 694949290 heap_increase: 0 - stable_memory_increase: 173 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_4_1024: + btreemap_v1_pop_first_blob_32_16: total: - instructions: 494994994 + instructions: 642191114 heap_increase: 0 - stable_memory_increase: 123 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_4_1024_v2: + btreemap_v1_pop_first_blob_32_256: total: - instructions: 592951465 + instructions: 731539216 heap_increase: 0 - stable_memory_increase: 92 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_512_1024: + btreemap_v1_pop_first_blob_32_32: total: - instructions: 3002862489 + instructions: 651380687 heap_increase: 0 - stable_memory_increase: 351 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_512_1024_v2: + btreemap_v1_pop_first_blob_32_4: total: - instructions: 3105965075 + instructions: 623771279 heap_increase: 0 - stable_memory_increase: 263 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_64_1024: + btreemap_v1_pop_first_blob_32_512: total: - instructions: 919414593 + instructions: 797530494 heap_increase: 0 - stable_memory_increase: 245 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_64_1024_v2: + btreemap_v1_pop_first_blob_32_64: total: - instructions: 1020998986 + instructions: 661830735 heap_increase: 0 - stable_memory_increase: 183 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_8_1024: + btreemap_v1_pop_first_blob_32_8: total: - instructions: 605636927 + instructions: 637746040 heap_increase: 0 - stable_memory_increase: 183 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_8_1024_v2: + btreemap_v1_pop_first_blob_4_128: total: - instructions: 708696031 + instructions: 278931792 heap_increase: 0 - stable_memory_increase: 138 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_8_u64: + btreemap_v1_pop_first_blob_512_128: total: - instructions: 330055088 + instructions: 4985295219 heap_increase: 0 - stable_memory_increase: 6 + stable_memory_increase: 0 scopes: {} - btreemap_insert_blob_8_u64_v2: + btreemap_v1_pop_first_blob_64_128: total: - instructions: 440988930 + instructions: 1148964543 heap_increase: 0 - stable_memory_increase: 4 + stable_memory_increase: 0 scopes: {} - btreemap_insert_u64_blob_8: + btreemap_v1_pop_first_blob_8_128: total: - instructions: 339864719 + instructions: 464938767 heap_increase: 0 - stable_memory_increase: 7 + stable_memory_increase: 0 scopes: {} - btreemap_insert_u64_blob_8_v2: + btreemap_v1_pop_first_u64_blob8: total: - instructions: 422835585 + instructions: 552760738 heap_increase: 0 - stable_memory_increase: 5 + stable_memory_increase: 0 scopes: {} - btreemap_insert_u64_u64: + btreemap_v1_pop_first_u64_u64: total: - instructions: 345025209 + instructions: 555550289 heap_increase: 0 - stable_memory_increase: 7 + stable_memory_increase: 0 scopes: {} - btreemap_insert_u64_u64_v2: + btreemap_v1_pop_last_blob8_u64: total: - instructions: 431645530 + instructions: 425558322 heap_increase: 0 - stable_memory_increase: 6 + stable_memory_increase: 0 + scopes: {} + btreemap_v1_pop_last_blob_1024_128: + total: + instructions: 9026857390 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v1_pop_last_blob_128_128: + total: + instructions: 1771818496 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v1_pop_last_blob_16_128: + total: + instructions: 578504524 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v1_pop_last_blob_256_128: + total: + instructions: 2829333178 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v1_pop_last_blob_32_1024: + total: + instructions: 935766058 + heap_increase: 0 + stable_memory_increase: 0 scopes: {} - btreemap_insert_u64_u64_v2_mem_manager: + btreemap_v1_pop_last_blob_32_128: total: - instructions: 560976863 + instructions: 672669373 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_iter_10mib_values: + btreemap_v1_pop_last_blob_32_16: total: - instructions: 11407368 + instructions: 622149789 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_iter_count_10mib_values: + btreemap_v1_pop_last_blob_32_256: total: - instructions: 491365 + instructions: 710485425 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_iter_count_small_values: + btreemap_v1_pop_last_blob_32_32: total: - instructions: 9443266 + instructions: 632078429 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_iter_rev_10mib_values: + btreemap_v1_pop_last_blob_32_4: total: - instructions: 11404353 + instructions: 609993537 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_iter_rev_small_values: + btreemap_v1_pop_last_blob_32_512: total: - instructions: 14975879 + instructions: 779152304 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_iter_small_values: + btreemap_v1_pop_last_blob_32_64: total: - instructions: 15000850 + instructions: 642285310 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_keys_10mib_values: + btreemap_v1_pop_last_blob_32_8: total: - instructions: 464540 + instructions: 616068670 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_keys_rev_10mib_values: + btreemap_v1_pop_last_blob_4_128: total: - instructions: 464165 + instructions: 271362314 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_keys_rev_small_values: + btreemap_v1_pop_last_blob_512_128: total: - instructions: 9654062 + instructions: 4875145521 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_keys_small_values: + btreemap_v1_pop_last_blob_64_128: total: - instructions: 9528327 + instructions: 1118455938 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_read_every_third_value_from_range: + btreemap_v1_pop_last_blob_8_128: total: - instructions: 84833060 + instructions: 461614248 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_read_keys_from_range: + btreemap_v1_pop_last_u64_blob8: total: - instructions: 84873064 + instructions: 540607851 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_128_1024: + btreemap_v1_pop_last_u64_u64: total: - instructions: 1575050534 + instructions: 543112821 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_128_1024_v2: + btreemap_v1_remove_blob8_u64: total: - instructions: 1721504123 + instructions: 439863392 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_16_1024: + btreemap_v1_remove_blob_1024_128: total: - instructions: 755252791 + instructions: 6329350311 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_16_1024_v2: + btreemap_v1_remove_blob_128_128: total: - instructions: 895690307 + instructions: 1320296970 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_256_1024: + btreemap_v1_remove_blob_16_128: total: - instructions: 2279810995 + instructions: 539004547 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_256_1024_v2: + btreemap_v1_remove_blob_256_128: total: - instructions: 2427184450 + instructions: 2044963965 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_32_1024: + btreemap_v1_remove_blob_32_1024: total: instructions: 825632231 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_32_1024_v2: + btreemap_v1_remove_blob_32_128: total: - instructions: 965884147 + instructions: 588789993 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_4_1024: + btreemap_v1_remove_blob_32_16: total: - instructions: 485805538 + instructions: 545908410 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_4_1024_v2: + btreemap_v1_remove_blob_32_256: total: - instructions: 600161724 + instructions: 625265227 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_512_1024: + btreemap_v1_remove_blob_32_32: total: - instructions: 3738145419 + instructions: 553650900 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_512_1024_v2: + btreemap_v1_remove_blob_32_4: total: - instructions: 3883681704 + instructions: 537395900 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_64_1024: + btreemap_v1_remove_blob_32_512: total: - instructions: 1139970828 + instructions: 696535326 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_64_1024_v2: + btreemap_v1_remove_blob_32_64: total: - instructions: 1283145072 + instructions: 574620363 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_8_1024: + btreemap_v1_remove_blob_32_8: total: - instructions: 642836148 + instructions: 538139629 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_8_1024_v2: + btreemap_v1_remove_blob_4_128: total: - instructions: 775037862 + instructions: 342732420 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_8_u64: + btreemap_v1_remove_blob_512_128: total: - instructions: 433944769 + instructions: 3454094220 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_blob_8_u64_v2: + btreemap_v1_remove_blob_64_128: total: - instructions: 579958230 + instructions: 875777361 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_u64_blob_8: + btreemap_v1_remove_blob_8_128: total: - instructions: 485913516 + instructions: 470018886 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_u64_blob_8_v2: + btreemap_v1_remove_u64_blob8: total: - instructions: 597538858 + instructions: 485913516 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_u64_u64: + btreemap_v1_remove_u64_u64: total: instructions: 499266505 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_remove_u64_u64_v2: + btreemap_v2_contains_10mib_values: + total: + instructions: 142213004 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_blob8_u64: + total: + instructions: 277713087 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_blob_1024_128: + total: + instructions: 4897884819 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_blob_128_128: + total: + instructions: 925983020 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_blob_16_128: + total: + instructions: 304185180 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_blob_256_128: + total: + instructions: 1482592583 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_blob_32_1024: + total: + instructions: 334889492 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_blob_32_128: + total: + instructions: 332336378 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_blob_32_16: + total: + instructions: 336647532 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_blob_32_256: + total: + instructions: 336952134 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_blob_32_32: + total: + instructions: 337767804 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_blob_32_4: + total: + instructions: 333734209 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_blob_32_512: + total: + instructions: 332809414 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_blob_32_64: + total: + instructions: 335145674 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_blob_32_8: + total: + instructions: 334699459 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_blob_4_128: + total: + instructions: 244876846 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_blob_512_128: + total: + instructions: 2624677444 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_blob_64_128: + total: + instructions: 584178824 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_blob_8_128: + total: + instructions: 268359561 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_u64_blob8: + total: + instructions: 234897323 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_u64_u64: + total: + instructions: 236421608 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_u64_vec8: + total: + instructions: 234897338 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_vec8_u64: + total: + instructions: 366491431 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_vec_1024_128: + total: + instructions: 2875641971 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_vec_128_128: + total: + instructions: 698056573 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_vec_16_128: + total: + instructions: 430496510 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_vec_256_128: + total: + instructions: 1220085542 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_vec_32_1024: + total: + instructions: 573798539 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_vec_32_128: + total: + instructions: 488603839 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_vec_32_16: + total: + instructions: 408307710 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_vec_32_256: + total: + instructions: 521878485 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_vec_32_32: + total: + instructions: 408806200 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_vec_32_4: + total: + instructions: 407179812 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_vec_32_512: + total: + instructions: 536998195 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_vec_32_64: + total: + instructions: 463602926 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_vec_32_8: + total: + instructions: 407102811 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_vec_4_128: + total: + instructions: 397153848 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_vec_512_128: + total: + instructions: 1812299060 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_vec_64_128: + total: + instructions: 594729377 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_contains_vec_8_128: + total: + instructions: 388847731 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_10mib_values: + total: + instructions: 1227472657 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_blob8_u64: + total: + instructions: 297139911 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_blob_1024_128: + total: + instructions: 4953924210 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_blob_128_128: + total: + instructions: 947186495 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_blob_16_128: + total: + instructions: 317354417 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_blob_256_128: + total: + instructions: 1507431266 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_blob_32_1024: + total: + instructions: 353756221 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_blob_32_128: + total: + instructions: 345894163 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_blob_32_16: + total: + instructions: 346953462 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_blob_32_256: + total: + instructions: 351580221 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_blob_32_32: + total: + instructions: 348889561 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_blob_32_4: + total: + instructions: 343473664 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_blob_32_512: + total: + instructions: 348929751 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_blob_32_64: + total: + instructions: 347119635 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_blob_32_8: + total: + instructions: 345315038 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_blob_4_128: + total: + instructions: 257370621 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_blob_512_128: + total: + instructions: 2659912132 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_blob_64_128: + total: + instructions: 601774814 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_blob_8_128: + total: + instructions: 281640219 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_u64_blob8: + total: + instructions: 245362209 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_u64_u64: + total: + instructions: 249268645 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_u64_vec8: + total: + instructions: 246137433 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec8_u64: + total: + instructions: 376858286 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_1024_128: + total: + instructions: 2921959775 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_128_128: + total: + instructions: 710827388 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_16_128: + total: + instructions: 440398211 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_256_128: + total: + instructions: 1233367092 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_32_1024: + total: + instructions: 606431114 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_32_128: + total: + instructions: 498908637 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_32_16: + total: + instructions: 416949497 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_32_256: + total: + instructions: 539821398 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_32_32: + total: + instructions: 417020079 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_32_4: + total: + instructions: 415119023 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_32_512: + total: + instructions: 558783250 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_32_64: + total: + instructions: 472181771 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_32_8: + total: + instructions: 415079885 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_4_128: + total: + instructions: 407056995 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_512_128: + total: + instructions: 1825704224 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_64_128: + total: + instructions: 606201847 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_get_vec_8_128: + total: + instructions: 398653757 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_insert_10mib_values: + total: + instructions: 5236275168 + heap_increase: 322 + stable_memory_increase: 3613 + scopes: {} + btreemap_v2_insert_blob8_u64: + total: + instructions: 440861921 + heap_increase: 0 + stable_memory_increase: 4 + scopes: {} + btreemap_v2_insert_blob_1024_128: + total: + instructions: 5104008235 + heap_increase: 0 + stable_memory_increase: 196 + scopes: {} + btreemap_v2_insert_blob_128_128: + total: + instructions: 1133684047 + heap_increase: 0 + stable_memory_increase: 46 + scopes: {} + btreemap_v2_insert_blob_16_128: + total: + instructions: 494767992 + heap_increase: 0 + stable_memory_increase: 24 + scopes: {} + btreemap_v2_insert_blob_256_128: + total: + instructions: 1683872591 + heap_increase: 0 + stable_memory_increase: 67 + scopes: {} + btreemap_v2_insert_blob_32_1024: + total: + instructions: 687122501 + heap_increase: 0 + stable_memory_increase: 173 + scopes: {} + btreemap_v2_insert_blob_32_128: + total: + instructions: 529123151 + heap_increase: 0 + stable_memory_increase: 28 + scopes: {} + btreemap_v2_insert_blob_32_16: + total: + instructions: 508434265 + heap_increase: 0 + stable_memory_increase: 11 + scopes: {} + btreemap_v2_insert_blob_32_256: + total: + instructions: 560318876 + heap_increase: 0 + stable_memory_increase: 49 + scopes: {} + btreemap_v2_insert_blob_32_32: + total: + instructions: 514031722 + heap_increase: 0 + stable_memory_increase: 13 + scopes: {} + btreemap_v2_insert_blob_32_4: + total: + instructions: 496606631 + heap_increase: 0 + stable_memory_increase: 8 + scopes: {} + btreemap_v2_insert_blob_32_512: + total: + instructions: 597566604 + heap_increase: 0 + stable_memory_increase: 91 + scopes: {} + btreemap_v2_insert_blob_32_64: + total: + instructions: 519519045 + heap_increase: 0 + stable_memory_increase: 18 + scopes: {} + btreemap_v2_insert_blob_32_8: + total: + instructions: 503751175 + heap_increase: 0 + stable_memory_increase: 9 + scopes: {} + btreemap_v2_insert_blob_4_128: + total: + instructions: 410411924 + heap_increase: 0 + stable_memory_increase: 13 + scopes: {} + btreemap_v2_insert_blob_512_128: + total: + instructions: 2855055481 + heap_increase: 0 + stable_memory_increase: 111 + scopes: {} + btreemap_v2_insert_blob_64_128: + total: + instructions: 777536947 + heap_increase: 0 + stable_memory_increase: 34 + scopes: {} + btreemap_v2_insert_blob_8_128: + total: + instructions: 462943497 + heap_increase: 0 + stable_memory_increase: 20 + scopes: {} + btreemap_v2_insert_u64_blob8: + total: + instructions: 422654181 + heap_increase: 0 + stable_memory_increase: 5 + scopes: {} + btreemap_v2_insert_u64_u64: + total: + instructions: 431497067 + heap_increase: 0 + stable_memory_increase: 6 + scopes: {} + btreemap_v2_insert_u64_vec8: + total: + instructions: 429929989 + heap_increase: 0 + stable_memory_increase: 21 + scopes: {} + btreemap_v2_insert_vec8_u64: + total: + instructions: 581931268 + heap_increase: 0 + stable_memory_increase: 16 + scopes: {} + btreemap_v2_insert_vec_1024_128: + total: + instructions: 3318166891 + heap_increase: 0 + stable_memory_increase: 193 + scopes: {} + btreemap_v2_insert_vec_128_128: + total: + instructions: 1095306451 + heap_increase: 0 + stable_memory_increase: 51 + scopes: {} + btreemap_v2_insert_vec_16_128: + total: + instructions: 703253294 + heap_increase: 0 + stable_memory_increase: 31 + scopes: {} + btreemap_v2_insert_vec_256_128: + total: + instructions: 1506010620 + heap_increase: 0 + stable_memory_increase: 71 + scopes: {} + btreemap_v2_insert_vec_32_1024: + total: + instructions: 1221769507 + heap_increase: 0 + stable_memory_increase: 171 + scopes: {} + btreemap_v2_insert_vec_32_128: + total: + instructions: 761626630 + heap_increase: 0 + stable_memory_increase: 33 + scopes: {} + btreemap_v2_insert_vec_32_16: + total: + instructions: 663288909 + heap_increase: 0 + stable_memory_increase: 20 + scopes: {} + btreemap_v2_insert_vec_32_256: + total: + instructions: 890332939 + heap_increase: 0 + stable_memory_increase: 54 + scopes: {} + btreemap_v2_insert_vec_32_32: + total: + instructions: 666181941 + heap_increase: 0 + stable_memory_increase: 20 + scopes: {} + btreemap_v2_insert_vec_32_4: + total: + instructions: 660361307 + heap_increase: 0 + stable_memory_increase: 20 + scopes: {} + btreemap_v2_insert_vec_32_512: + total: + instructions: 1008642945 + heap_increase: 0 + stable_memory_increase: 91 + scopes: {} + btreemap_v2_insert_vec_32_64: + total: + instructions: 692118095 + heap_increase: 0 + stable_memory_increase: 24 + scopes: {} + btreemap_v2_insert_vec_32_8: + total: + instructions: 660131454 + heap_increase: 0 + stable_memory_increase: 20 + scopes: {} + btreemap_v2_insert_vec_4_128: + total: + instructions: 608604433 + heap_increase: 0 + stable_memory_increase: 16 + scopes: {} + btreemap_v2_insert_vec_512_128: + total: + instructions: 2126953494 + heap_increase: 0 + stable_memory_increase: 112 + scopes: {} + btreemap_v2_insert_vec_64_128: + total: + instructions: 880172928 + heap_increase: 0 + stable_memory_increase: 41 + scopes: {} + btreemap_v2_insert_vec_8_128: + total: + instructions: 666246354 + heap_increase: 0 + stable_memory_increase: 23 + scopes: {} + btreemap_v2_mem_manager_contains_blob512_u64: + total: + instructions: 2717630382 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_mem_manager_contains_u64_blob512: + total: + instructions: 311110875 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_mem_manager_contains_u64_u64: + total: + instructions: 316773716 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_mem_manager_contains_u64_vec512: + total: + instructions: 395734654 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_mem_manager_contains_vec512_u64: + total: + instructions: 1754766489 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_mem_manager_get_blob512_u64: + total: + instructions: 2762707145 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_mem_manager_get_u64_blob512: + total: + instructions: 327868758 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_mem_manager_get_u64_u64: + total: + instructions: 329806410 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_mem_manager_get_u64_vec512: + total: + instructions: 422661515 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_mem_manager_get_vec512_u64: + total: + instructions: 1792390521 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_mem_manager_insert_blob512_u64: + total: + instructions: 2959846456 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_mem_manager_insert_u64_blob512: + total: + instructions: 647064908 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_mem_manager_insert_u64_u64: + total: + instructions: 560862124 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_mem_manager_insert_u64_vec512: + total: + instructions: 901842874 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_mem_manager_insert_vec512_u64: + total: + instructions: 2241199345 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_mem_manager_remove_blob512_u64: + total: + instructions: 3847539272 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_mem_manager_remove_u64_blob512: + total: + instructions: 947364196 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_mem_manager_remove_u64_u64: + total: + instructions: 807405593 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_mem_manager_remove_u64_vec512: + total: + instructions: 1287069190 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_mem_manager_remove_vec512_u64: + total: + instructions: 3316383884 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_blob8_u64: + total: + instructions: 608291661 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_blob_1024_128: + total: + instructions: 9398188467 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_blob_128_128: + total: + instructions: 2007415368 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_blob_16_128: + total: + instructions: 757418966 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_blob_256_128: + total: + instructions: 3093785202 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_blob_32_1024: + total: + instructions: 1132453514 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_blob_32_128: + total: + instructions: 876371666 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_blob_32_16: + total: + instructions: 819915570 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_blob_32_256: + total: + instructions: 907503803 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_blob_32_32: + total: + instructions: 831628016 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_blob_32_4: + total: + instructions: 802089971 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_blob_32_512: + total: + instructions: 973265656 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_blob_32_64: + total: + instructions: 838693246 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_blob_32_8: + total: + instructions: 818463740 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_blob_4_128: + total: + instructions: 371985311 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_blob_512_128: + total: + instructions: 5172264944 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_blob_64_128: + total: + instructions: 1328879808 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_blob_8_128: + total: + instructions: 611407092 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_u64_blob8: + total: + instructions: 705248265 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_u64_u64: + total: + instructions: 717329877 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_u64_vec8: + total: + instructions: 709593211 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec8_u64: + total: + instructions: 782287090 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_1024_128: + total: + instructions: 5762265936 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_128_128: + total: + instructions: 1815546654 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_16_128: + total: + instructions: 1024443186 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_256_128: + total: + instructions: 2528307535 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_32_1024: + total: + instructions: 1811350791 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_32_128: + total: + instructions: 1204814177 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_32_16: + total: + instructions: 1039338017 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_32_256: + total: + instructions: 1326543051 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_32_32: + total: + instructions: 1055530159 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_32_4: + total: + instructions: 1038272566 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_32_512: + total: + instructions: 1489882556 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_32_64: + total: + instructions: 1089756943 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_32_8: + total: + instructions: 1050176827 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_4_128: + total: + instructions: 537424590 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_512_128: + total: + instructions: 3599302571 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_64_128: + total: + instructions: 1401892097 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_first_vec_8_128: + total: + instructions: 845504240 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob8_u64: + total: + instructions: 592362547 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_1024_128: + total: + instructions: 9219664993 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_128_128: + total: + instructions: 1958516704 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_16_128: + total: + instructions: 738623015 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_256_128: + total: + instructions: 3020531374 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_32_1024: + total: + instructions: 1112565103 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_32_128: + total: + instructions: 854347996 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_32_16: + total: + instructions: 798819036 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_32_256: + total: + instructions: 886655814 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_32_32: + total: + instructions: 810795267 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_32_4: + total: + instructions: 787773511 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_32_512: + total: + instructions: 955218753 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_32_64: + total: + instructions: 820640883 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_32_8: + total: + instructions: 797866752 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_4_128: + total: + instructions: 363658412 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_512_128: + total: + instructions: 5053410203 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_64_128: + total: + instructions: 1307018060 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_blob_8_128: + total: + instructions: 611183029 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_u64_blob8: + total: + instructions: 692886714 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_u64_u64: + total: + instructions: 704577983 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_u64_vec8: + total: + instructions: 695997588 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec8_u64: + total: + instructions: 763627664 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_1024_128: + total: + instructions: 6009852618 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_128_128: + total: + instructions: 1829432194 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_16_128: + total: + instructions: 1012645478 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_256_128: + total: + instructions: 2581611468 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_32_1024: + total: + instructions: 1806174004 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_32_128: + total: + instructions: 1204020271 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_32_16: + total: + instructions: 1028212700 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_32_256: + total: + instructions: 1324004314 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_32_32: + total: + instructions: 1043904024 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_32_4: + total: + instructions: 1036623333 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_32_512: + total: + instructions: 1490189536 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_32_64: + total: + instructions: 1084539473 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_32_8: + total: + instructions: 1038381761 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_4_128: + total: + instructions: 528568472 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_512_128: + total: + instructions: 3722254862 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_64_128: + total: + instructions: 1415401855 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_pop_last_vec_8_128: + total: + instructions: 853141400 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_range_count_1k_0b: + total: + instructions: 16871 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_range_count_1k_10kib: + total: + instructions: 2440306 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_range_count_20_10mib: + total: + instructions: 20572482 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_range_key_sum_1k_0b: + total: + instructions: 17405 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_range_key_sum_1k_10kib: + total: + instructions: 57254917 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_range_key_sum_20_10mib: + total: + instructions: 1105826146 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_range_value_sum_1k_0b: + total: + instructions: 17419 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_range_value_sum_1k_10kib: + total: + instructions: 57266913 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_range_value_sum_20_10mib: + total: + instructions: 1105826382 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_10mib_values: + total: + instructions: 5561337528 + heap_increase: 0 + stable_memory_increase: 657 + scopes: {} + btreemap_v2_remove_blob8_u64: + total: + instructions: 587148004 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_1024_128: + total: + instructions: 6474121980 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_128_128: + total: + instructions: 1466116527 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_16_128: + total: + instructions: 680002778 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_256_128: + total: + instructions: 2195216146 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_32_1024: + total: + instructions: 965884145 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_32_128: + total: + instructions: 731104519 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_32_16: + total: + instructions: 687174807 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_32_256: + total: + instructions: 765993244 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_32_32: + total: + instructions: 695978850 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_32_4: + total: + instructions: 679309614 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_32_512: + total: + instructions: 837922200 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_32_64: + total: + instructions: 720007632 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_32_8: + total: + instructions: 679954161 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_4_128: + total: + instructions: 455500782 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_512_128: + total: + instructions: 3600501128 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_64_128: + total: + instructions: 1020115077 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_blob_8_128: + total: + instructions: 607878082 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_u64_blob8: + total: + instructions: 597535434 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_u64_u64: + total: + instructions: 619080526 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_u64_vec8: + total: + instructions: 603458045 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_vec8_u64: + total: + instructions: 750426147 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_vec_1024_128: + total: + instructions: 5020456905 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_vec_128_128: + total: + instructions: 1451042556 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_vec_16_128: + total: + instructions: 907590325 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_vec_256_128: + total: + instructions: 2313326693 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_vec_32_1024: + total: + instructions: 1673021222 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_vec_32_128: + total: + instructions: 1010534168 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_vec_32_16: + total: + instructions: 834640728 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_vec_32_256: + total: + instructions: 1228590016 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_vec_32_32: + total: + instructions: 841144006 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_vec_32_4: + total: + instructions: 839617721 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_vec_32_512: + total: + instructions: 1392150674 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_vec_32_64: + total: + instructions: 923615504 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_vec_32_8: + total: + instructions: 833306650 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_vec_4_128: + total: + instructions: 649594780 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_vec_512_128: + total: + instructions: 3264643019 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_vec_64_128: + total: + instructions: 1178301615 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_remove_vec_8_128: + total: + instructions: 819927738 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_scan_iter_1k_0b: + total: + instructions: 1493458 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_scan_iter_1k_10kib: + total: + instructions: 57069957 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_scan_iter_20_10mib: + total: + instructions: 1103719699 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_scan_iter_rev_1k_0b: + total: + instructions: 1495597 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_scan_iter_rev_1k_10kib: + total: + instructions: 57047594 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_scan_iter_rev_20_10mib: + total: + instructions: 1103719281 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_scan_keys_1k_0b: + total: + instructions: 946083 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_scan_keys_1k_10kib: + total: + instructions: 2359607 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_scan_keys_20_10mib: + total: + instructions: 18465439 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_scan_keys_rev_1k_0b: + total: + instructions: 963320 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_scan_keys_rev_1k_10kib: + total: + instructions: 2355505 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_scan_keys_rev_20_10mib: + total: + instructions: 18465774 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_scan_values_1k_0b: + total: + instructions: 1490856 + heap_increase: 0 + stable_memory_increase: 0 + scopes: {} + btreemap_v2_scan_values_1k_10kib: total: - instructions: 619109964 + instructions: 57067355 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_values_10mib_values: + btreemap_v2_scan_values_20_10mib: total: - instructions: 11406848 + instructions: 1103719649 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_values_rev_10mib_values: + btreemap_v2_scan_values_rev_1k_0b: total: - instructions: 11403833 + instructions: 1492995 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_values_rev_small_values: + btreemap_v2_scan_values_rev_1k_10kib: total: - instructions: 14949875 + instructions: 57044992 heap_increase: 0 stable_memory_increase: 0 scopes: {} - btreemap_values_small_values: + btreemap_v2_scan_values_rev_20_10mib: total: - instructions: 14974846 + instructions: 1103719231 heap_increase: 0 stable_memory_increase: 0 scopes: {} From 4fc81dc955503ad0dfce502e31171750029c120e Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Wed, 14 May 2025 18:32:19 +0200 Subject: [PATCH 51/68] --persist --csv --- canbench_results.csv | 810 +++++++++++++++++++++---------------------- canbench_results.yml | 810 +++++++++++++++++++++---------------------- 2 files changed, 810 insertions(+), 810 deletions(-) diff --git a/canbench_results.csv b/canbench_results.csv index b0399740..d22b88c4 100644 --- a/canbench_results.csv +++ b/canbench_results.csv @@ -1,409 +1,409 @@ status,name,instructions,instructions change %,heap_increase,heap_increase change %,stable_memory_increase,stable_memory_increase change % -new,btreemap_v1_contains_blob8_u64,195271021,,0,,0, -new,btreemap_v1_contains_blob_1024_128,4811323110,,0,,0, -new,btreemap_v1_contains_blob_128_128,850930156,,0,,0, -new,btreemap_v1_contains_blob_16_128,226230369,,0,,0, -new,btreemap_v1_contains_blob_256_128,1407896845,,0,,0, -new,btreemap_v1_contains_blob_32_1024,256961773,,0,,0, -new,btreemap_v1_contains_blob_32_128,250177816,,0,,0, -new,btreemap_v1_contains_blob_32_16,261906396,,0,,0, -new,btreemap_v1_contains_blob_32_256,258725278,,0,,0, -new,btreemap_v1_contains_blob_32_32,259151053,,0,,0, -new,btreemap_v1_contains_blob_32_4,257349962,,0,,0, -new,btreemap_v1_contains_blob_32_512,255019597,,0,,0, -new,btreemap_v1_contains_blob_32_64,252217576,,0,,0, -new,btreemap_v1_contains_blob_32_8,252815455,,0,,0, -new,btreemap_v1_contains_blob_4_128,161092850,,0,,0, -new,btreemap_v1_contains_blob_512_128,2540558634,,0,,0, -new,btreemap_v1_contains_blob_64_128,495156778,,0,,0, -new,btreemap_v1_contains_blob_8_128,188138732,,0,,0, -new,btreemap_v1_contains_u64_blob8,166038798,,0,,0, -new,btreemap_v1_contains_u64_u64,167293960,,0,,0, -new,btreemap_v1_get_blob8_u64,203697122,,0,,0, -new,btreemap_v1_get_blob_1024_128,4867663262,,0,,0, -new,btreemap_v1_get_blob_128_128,867834674,,0,,0, -new,btreemap_v1_get_blob_16_128,239293029,,0,,0, -new,btreemap_v1_get_blob_256_128,1431740445,,0,,0, -new,btreemap_v1_get_blob_32_1024,275141698,,0,,0, -new,btreemap_v1_get_blob_32_128,262740541,,0,,0, -new,btreemap_v1_get_blob_32_16,269802882,,0,,0, -new,btreemap_v1_get_blob_32_256,272218440,,0,,0, -new,btreemap_v1_get_blob_32_32,267860063,,0,,0, -new,btreemap_v1_get_blob_32_4,264584535,,0,,0, -new,btreemap_v1_get_blob_32_512,270395928,,0,,0, -new,btreemap_v1_get_blob_32_64,262951923,,0,,0, -new,btreemap_v1_get_blob_32_8,261740283,,0,,0, -new,btreemap_v1_get_blob_4_128,174475611,,0,,0, -new,btreemap_v1_get_blob_512_128,2575484041,,0,,0, -new,btreemap_v1_get_blob_64_128,508829622,,0,,0, -new,btreemap_v1_get_blob_8_128,201098226,,0,,0, -new,btreemap_v1_get_u64_blob8,173677469,,0,,0, -new,btreemap_v1_get_u64_u64,176711268,,0,,0, -new,btreemap_v1_insert_blob8_u64,329934785,,0,,6, -new,btreemap_v1_insert_blob_1024_128,5003142436,,0,,262, -new,btreemap_v1_insert_blob_128_128,1026896477,,0,,61, -new,btreemap_v1_insert_blob_16_128,391208873,,0,,32, -new,btreemap_v1_insert_blob_256_128,1576029658,,0,,90, -new,btreemap_v1_insert_blob_32_1024,584220763,,0,,230, -new,btreemap_v1_insert_blob_32_128,423534612,,0,,37, -new,btreemap_v1_insert_blob_32_16,405329416,,0,,14, -new,btreemap_v1_insert_blob_32_256,453509950,,0,,66, -new,btreemap_v1_insert_blob_32_32,407982201,,0,,17, -new,btreemap_v1_insert_blob_32_4,393092021,,0,,11, -new,btreemap_v1_insert_blob_32_512,494442570,,0,,121, -new,btreemap_v1_insert_blob_32_64,411446503,,0,,24, -new,btreemap_v1_insert_blob_32_8,397466462,,0,,12, -new,btreemap_v1_insert_blob_4_128,312941760,,0,,17, -new,btreemap_v1_insert_blob_512_128,2752074589,,0,,148, -new,btreemap_v1_insert_blob_64_128,669974138,,0,,46, -new,btreemap_v1_insert_blob_8_128,358039235,,0,,27, -new,btreemap_v1_insert_u64_blob8,339684422,,0,,7, -new,btreemap_v1_insert_u64_u64,344884908,,0,,7, -new,btreemap_v1_pop_first_blob8_u64,440442786,,0,,0, -new,btreemap_v1_pop_first_blob_1024_128,9209904825,,0,,0, -new,btreemap_v1_pop_first_blob_128_128,1817203783,,0,,0, -new,btreemap_v1_pop_first_blob_16_128,588226778,,0,,0, -new,btreemap_v1_pop_first_blob_256_128,2895660576,,0,,0, -new,btreemap_v1_pop_first_blob_32_1024,955590937,,0,,0, -new,btreemap_v1_pop_first_blob_32_128,694949290,,0,,0, -new,btreemap_v1_pop_first_blob_32_16,642191114,,0,,0, -new,btreemap_v1_pop_first_blob_32_256,731539216,,0,,0, -new,btreemap_v1_pop_first_blob_32_32,651380687,,0,,0, -new,btreemap_v1_pop_first_blob_32_4,623771279,,0,,0, -new,btreemap_v1_pop_first_blob_32_512,797530494,,0,,0, -new,btreemap_v1_pop_first_blob_32_64,661830735,,0,,0, -new,btreemap_v1_pop_first_blob_32_8,637746040,,0,,0, -new,btreemap_v1_pop_first_blob_4_128,278931792,,0,,0, -new,btreemap_v1_pop_first_blob_512_128,4985295219,,0,,0, -new,btreemap_v1_pop_first_blob_64_128,1148964543,,0,,0, -new,btreemap_v1_pop_first_blob_8_128,464938767,,0,,0, -new,btreemap_v1_pop_first_u64_blob8,552760738,,0,,0, -new,btreemap_v1_pop_first_u64_u64,555550289,,0,,0, -new,btreemap_v1_pop_last_blob8_u64,425558322,,0,,0, -new,btreemap_v1_pop_last_blob_1024_128,9026857390,,0,,0, -new,btreemap_v1_pop_last_blob_128_128,1771818496,,0,,0, -new,btreemap_v1_pop_last_blob_16_128,578504524,,0,,0, -new,btreemap_v1_pop_last_blob_256_128,2829333178,,0,,0, -new,btreemap_v1_pop_last_blob_32_1024,935766058,,0,,0, -new,btreemap_v1_pop_last_blob_32_128,672669373,,0,,0, -new,btreemap_v1_pop_last_blob_32_16,622149789,,0,,0, -new,btreemap_v1_pop_last_blob_32_256,710485425,,0,,0, -new,btreemap_v1_pop_last_blob_32_32,632078429,,0,,0, -new,btreemap_v1_pop_last_blob_32_4,609993537,,0,,0, -new,btreemap_v1_pop_last_blob_32_512,779152304,,0,,0, -new,btreemap_v1_pop_last_blob_32_64,642285310,,0,,0, -new,btreemap_v1_pop_last_blob_32_8,616068670,,0,,0, -new,btreemap_v1_pop_last_blob_4_128,271362314,,0,,0, -new,btreemap_v1_pop_last_blob_512_128,4875145521,,0,,0, -new,btreemap_v1_pop_last_blob_64_128,1118455938,,0,,0, -new,btreemap_v1_pop_last_blob_8_128,461614248,,0,,0, -new,btreemap_v1_pop_last_u64_blob8,540607851,,0,,0, -new,btreemap_v1_pop_last_u64_u64,543112821,,0,,0, -new,btreemap_v1_remove_blob8_u64,439863392,,0,,0, -new,btreemap_v1_remove_blob_1024_128,6329350311,,0,,0, -new,btreemap_v1_remove_blob_128_128,1320296970,,0,,0, -new,btreemap_v1_remove_blob_16_128,539004547,,0,,0, -new,btreemap_v1_remove_blob_256_128,2044963965,,0,,0, -new,btreemap_v1_remove_blob_32_1024,825632231,,0,,0, -new,btreemap_v1_remove_blob_32_128,588789993,,0,,0, -new,btreemap_v1_remove_blob_32_16,545908410,,0,,0, -new,btreemap_v1_remove_blob_32_256,625265227,,0,,0, -new,btreemap_v1_remove_blob_32_32,553650900,,0,,0, -new,btreemap_v1_remove_blob_32_4,537395900,,0,,0, -new,btreemap_v1_remove_blob_32_512,696535326,,0,,0, -new,btreemap_v1_remove_blob_32_64,574620363,,0,,0, -new,btreemap_v1_remove_blob_32_8,538139629,,0,,0, -new,btreemap_v1_remove_blob_4_128,342732420,,0,,0, -new,btreemap_v1_remove_blob_512_128,3454094220,,0,,0, -new,btreemap_v1_remove_blob_64_128,875777361,,0,,0, -new,btreemap_v1_remove_blob_8_128,470018886,,0,,0, -new,btreemap_v1_remove_u64_blob8,485913516,,0,,0, -new,btreemap_v1_remove_u64_u64,499266505,,0,,0, -new,btreemap_v2_contains_10mib_values,142213004,,0,,0, -new,btreemap_v2_contains_blob8_u64,277713087,,0,,0, -new,btreemap_v2_contains_blob_1024_128,4897884819,,0,,0, -new,btreemap_v2_contains_blob_128_128,925983020,,0,,0, -new,btreemap_v2_contains_blob_16_128,304185180,,0,,0, -new,btreemap_v2_contains_blob_256_128,1482592583,,0,,0, -new,btreemap_v2_contains_blob_32_1024,334889492,,0,,0, -new,btreemap_v2_contains_blob_32_128,332336378,,0,,0, -new,btreemap_v2_contains_blob_32_16,336647532,,0,,0, -new,btreemap_v2_contains_blob_32_256,336952134,,0,,0, -new,btreemap_v2_contains_blob_32_32,337767804,,0,,0, -new,btreemap_v2_contains_blob_32_4,333734209,,0,,0, -new,btreemap_v2_contains_blob_32_512,332809414,,0,,0, -new,btreemap_v2_contains_blob_32_64,335145674,,0,,0, -new,btreemap_v2_contains_blob_32_8,334699459,,0,,0, -new,btreemap_v2_contains_blob_4_128,244876846,,0,,0, -new,btreemap_v2_contains_blob_512_128,2624677444,,0,,0, -new,btreemap_v2_contains_blob_64_128,584178824,,0,,0, -new,btreemap_v2_contains_blob_8_128,268359561,,0,,0, -new,btreemap_v2_contains_u64_blob8,234897323,,0,,0, -new,btreemap_v2_contains_u64_u64,236421608,,0,,0, -new,btreemap_v2_contains_u64_vec8,234897338,,0,,0, -new,btreemap_v2_contains_vec8_u64,366491431,,0,,0, -new,btreemap_v2_contains_vec_1024_128,2875641971,,0,,0, -new,btreemap_v2_contains_vec_128_128,698056573,,0,,0, -new,btreemap_v2_contains_vec_16_128,430496510,,0,,0, -new,btreemap_v2_contains_vec_256_128,1220085542,,0,,0, -new,btreemap_v2_contains_vec_32_1024,573798539,,0,,0, -new,btreemap_v2_contains_vec_32_128,488603839,,0,,0, -new,btreemap_v2_contains_vec_32_16,408307710,,0,,0, -new,btreemap_v2_contains_vec_32_256,521878485,,0,,0, -new,btreemap_v2_contains_vec_32_32,408806200,,0,,0, -new,btreemap_v2_contains_vec_32_4,407179812,,0,,0, -new,btreemap_v2_contains_vec_32_512,536998195,,0,,0, -new,btreemap_v2_contains_vec_32_64,463602926,,0,,0, -new,btreemap_v2_contains_vec_32_8,407102811,,0,,0, -new,btreemap_v2_contains_vec_4_128,397153848,,0,,0, -new,btreemap_v2_contains_vec_512_128,1812299060,,0,,0, -new,btreemap_v2_contains_vec_64_128,594729377,,0,,0, -new,btreemap_v2_contains_vec_8_128,388847731,,0,,0, -new,btreemap_v2_get_10mib_values,1227472657,,0,,0, -new,btreemap_v2_get_blob8_u64,297139911,,0,,0, -new,btreemap_v2_get_blob_1024_128,4953924210,,0,,0, -new,btreemap_v2_get_blob_128_128,947186495,,0,,0, -new,btreemap_v2_get_blob_16_128,317354417,,0,,0, -new,btreemap_v2_get_blob_256_128,1507431266,,0,,0, -new,btreemap_v2_get_blob_32_1024,353756221,,0,,0, -new,btreemap_v2_get_blob_32_128,345894163,,0,,0, -new,btreemap_v2_get_blob_32_16,346953462,,0,,0, -new,btreemap_v2_get_blob_32_256,351580221,,0,,0, -new,btreemap_v2_get_blob_32_32,348889561,,0,,0, -new,btreemap_v2_get_blob_32_4,343473664,,0,,0, -new,btreemap_v2_get_blob_32_512,348929751,,0,,0, -new,btreemap_v2_get_blob_32_64,347119635,,0,,0, -new,btreemap_v2_get_blob_32_8,345315038,,0,,0, -new,btreemap_v2_get_blob_4_128,257370621,,0,,0, -new,btreemap_v2_get_blob_512_128,2659912132,,0,,0, -new,btreemap_v2_get_blob_64_128,601774814,,0,,0, -new,btreemap_v2_get_blob_8_128,281640219,,0,,0, -new,btreemap_v2_get_u64_blob8,245362209,,0,,0, -new,btreemap_v2_get_u64_u64,249268645,,0,,0, -new,btreemap_v2_get_u64_vec8,246137433,,0,,0, -new,btreemap_v2_get_vec8_u64,376858286,,0,,0, -new,btreemap_v2_get_vec_1024_128,2921959775,,0,,0, -new,btreemap_v2_get_vec_128_128,710827388,,0,,0, -new,btreemap_v2_get_vec_16_128,440398211,,0,,0, -new,btreemap_v2_get_vec_256_128,1233367092,,0,,0, -new,btreemap_v2_get_vec_32_1024,606431114,,0,,0, -new,btreemap_v2_get_vec_32_128,498908637,,0,,0, -new,btreemap_v2_get_vec_32_16,416949497,,0,,0, -new,btreemap_v2_get_vec_32_256,539821398,,0,,0, -new,btreemap_v2_get_vec_32_32,417020079,,0,,0, -new,btreemap_v2_get_vec_32_4,415119023,,0,,0, -new,btreemap_v2_get_vec_32_512,558783250,,0,,0, -new,btreemap_v2_get_vec_32_64,472181771,,0,,0, -new,btreemap_v2_get_vec_32_8,415079885,,0,,0, -new,btreemap_v2_get_vec_4_128,407056995,,0,,0, -new,btreemap_v2_get_vec_512_128,1825704224,,0,,0, -new,btreemap_v2_get_vec_64_128,606201847,,0,,0, -new,btreemap_v2_get_vec_8_128,398653757,,0,,0, -new,btreemap_v2_insert_10mib_values,5236275168,,322,,3613, -new,btreemap_v2_insert_blob8_u64,440861921,,0,,4, -new,btreemap_v2_insert_blob_1024_128,5104008235,,0,,196, -new,btreemap_v2_insert_blob_128_128,1133684047,,0,,46, -new,btreemap_v2_insert_blob_16_128,494767992,,0,,24, -new,btreemap_v2_insert_blob_256_128,1683872591,,0,,67, -new,btreemap_v2_insert_blob_32_1024,687122501,,0,,173, -new,btreemap_v2_insert_blob_32_128,529123151,,0,,28, -new,btreemap_v2_insert_blob_32_16,508434265,,0,,11, -new,btreemap_v2_insert_blob_32_256,560318876,,0,,49, -new,btreemap_v2_insert_blob_32_32,514031722,,0,,13, -new,btreemap_v2_insert_blob_32_4,496606631,,0,,8, -new,btreemap_v2_insert_blob_32_512,597566604,,0,,91, -new,btreemap_v2_insert_blob_32_64,519519045,,0,,18, -new,btreemap_v2_insert_blob_32_8,503751175,,0,,9, -new,btreemap_v2_insert_blob_4_128,410411924,,0,,13, -new,btreemap_v2_insert_blob_512_128,2855055481,,0,,111, -new,btreemap_v2_insert_blob_64_128,777536947,,0,,34, -new,btreemap_v2_insert_blob_8_128,462943497,,0,,20, -new,btreemap_v2_insert_u64_blob8,422654181,,0,,5, -new,btreemap_v2_insert_u64_u64,431497067,,0,,6, -new,btreemap_v2_insert_u64_vec8,429929989,,0,,21, -new,btreemap_v2_insert_vec8_u64,581931268,,0,,16, -new,btreemap_v2_insert_vec_1024_128,3318166891,,0,,193, -new,btreemap_v2_insert_vec_128_128,1095306451,,0,,51, -new,btreemap_v2_insert_vec_16_128,703253294,,0,,31, -new,btreemap_v2_insert_vec_256_128,1506010620,,0,,71, -new,btreemap_v2_insert_vec_32_1024,1221769507,,0,,171, -new,btreemap_v2_insert_vec_32_128,761626630,,0,,33, -new,btreemap_v2_insert_vec_32_16,663288909,,0,,20, -new,btreemap_v2_insert_vec_32_256,890332939,,0,,54, -new,btreemap_v2_insert_vec_32_32,666181941,,0,,20, -new,btreemap_v2_insert_vec_32_4,660361307,,0,,20, -new,btreemap_v2_insert_vec_32_512,1008642945,,0,,91, -new,btreemap_v2_insert_vec_32_64,692118095,,0,,24, -new,btreemap_v2_insert_vec_32_8,660131454,,0,,20, -new,btreemap_v2_insert_vec_4_128,608604433,,0,,16, -new,btreemap_v2_insert_vec_512_128,2126953494,,0,,112, -new,btreemap_v2_insert_vec_64_128,880172928,,0,,41, -new,btreemap_v2_insert_vec_8_128,666246354,,0,,23, -new,btreemap_v2_mem_manager_contains_blob512_u64,2717630382,,0,,0, -new,btreemap_v2_mem_manager_contains_u64_blob512,311110875,,0,,0, -new,btreemap_v2_mem_manager_contains_u64_u64,316773716,,0,,0, -new,btreemap_v2_mem_manager_contains_u64_vec512,395734654,,0,,0, -new,btreemap_v2_mem_manager_contains_vec512_u64,1754766489,,0,,0, -new,btreemap_v2_mem_manager_get_blob512_u64,2762707145,,0,,0, -new,btreemap_v2_mem_manager_get_u64_blob512,327868758,,0,,0, -new,btreemap_v2_mem_manager_get_u64_u64,329806410,,0,,0, -new,btreemap_v2_mem_manager_get_u64_vec512,422661515,,0,,0, -new,btreemap_v2_mem_manager_get_vec512_u64,1792390521,,0,,0, -new,btreemap_v2_mem_manager_insert_blob512_u64,2959846456,,0,,0, -new,btreemap_v2_mem_manager_insert_u64_blob512,647064908,,0,,0, -new,btreemap_v2_mem_manager_insert_u64_u64,560862124,,0,,0, -new,btreemap_v2_mem_manager_insert_u64_vec512,901842874,,0,,0, -new,btreemap_v2_mem_manager_insert_vec512_u64,2241199345,,0,,0, -new,btreemap_v2_mem_manager_remove_blob512_u64,3847539272,,0,,0, -new,btreemap_v2_mem_manager_remove_u64_blob512,947364196,,0,,0, -new,btreemap_v2_mem_manager_remove_u64_u64,807405593,,0,,0, -new,btreemap_v2_mem_manager_remove_u64_vec512,1287069190,,0,,0, -new,btreemap_v2_mem_manager_remove_vec512_u64,3316383884,,0,,0, -new,btreemap_v2_pop_first_blob8_u64,608291661,,0,,0, -new,btreemap_v2_pop_first_blob_1024_128,9398188467,,0,,0, -new,btreemap_v2_pop_first_blob_128_128,2007415368,,0,,0, -new,btreemap_v2_pop_first_blob_16_128,757418966,,0,,0, -new,btreemap_v2_pop_first_blob_256_128,3093785202,,0,,0, -new,btreemap_v2_pop_first_blob_32_1024,1132453514,,0,,0, -new,btreemap_v2_pop_first_blob_32_128,876371666,,0,,0, -new,btreemap_v2_pop_first_blob_32_16,819915570,,0,,0, -new,btreemap_v2_pop_first_blob_32_256,907503803,,0,,0, -new,btreemap_v2_pop_first_blob_32_32,831628016,,0,,0, -new,btreemap_v2_pop_first_blob_32_4,802089971,,0,,0, -new,btreemap_v2_pop_first_blob_32_512,973265656,,0,,0, -new,btreemap_v2_pop_first_blob_32_64,838693246,,0,,0, -new,btreemap_v2_pop_first_blob_32_8,818463740,,0,,0, -new,btreemap_v2_pop_first_blob_4_128,371985311,,0,,0, -new,btreemap_v2_pop_first_blob_512_128,5172264944,,0,,0, -new,btreemap_v2_pop_first_blob_64_128,1328879808,,0,,0, -new,btreemap_v2_pop_first_blob_8_128,611407092,,0,,0, -new,btreemap_v2_pop_first_u64_blob8,705248265,,0,,0, -new,btreemap_v2_pop_first_u64_u64,717329877,,0,,0, -new,btreemap_v2_pop_first_u64_vec8,709593211,,0,,0, -new,btreemap_v2_pop_first_vec8_u64,782287090,,0,,0, -new,btreemap_v2_pop_first_vec_1024_128,5762265936,,0,,0, -new,btreemap_v2_pop_first_vec_128_128,1815546654,,0,,0, -new,btreemap_v2_pop_first_vec_16_128,1024443186,,0,,0, -new,btreemap_v2_pop_first_vec_256_128,2528307535,,0,,0, -new,btreemap_v2_pop_first_vec_32_1024,1811350791,,0,,0, -new,btreemap_v2_pop_first_vec_32_128,1204814177,,0,,0, -new,btreemap_v2_pop_first_vec_32_16,1039338017,,0,,0, -new,btreemap_v2_pop_first_vec_32_256,1326543051,,0,,0, -new,btreemap_v2_pop_first_vec_32_32,1055530159,,0,,0, -new,btreemap_v2_pop_first_vec_32_4,1038272566,,0,,0, -new,btreemap_v2_pop_first_vec_32_512,1489882556,,0,,0, -new,btreemap_v2_pop_first_vec_32_64,1089756943,,0,,0, -new,btreemap_v2_pop_first_vec_32_8,1050176827,,0,,0, -new,btreemap_v2_pop_first_vec_4_128,537424590,,0,,0, -new,btreemap_v2_pop_first_vec_512_128,3599302571,,0,,0, -new,btreemap_v2_pop_first_vec_64_128,1401892097,,0,,0, -new,btreemap_v2_pop_first_vec_8_128,845504240,,0,,0, -new,btreemap_v2_pop_last_blob8_u64,592362547,,0,,0, -new,btreemap_v2_pop_last_blob_1024_128,9219664993,,0,,0, -new,btreemap_v2_pop_last_blob_128_128,1958516704,,0,,0, -new,btreemap_v2_pop_last_blob_16_128,738623015,,0,,0, -new,btreemap_v2_pop_last_blob_256_128,3020531374,,0,,0, -new,btreemap_v2_pop_last_blob_32_1024,1112565103,,0,,0, -new,btreemap_v2_pop_last_blob_32_128,854347996,,0,,0, -new,btreemap_v2_pop_last_blob_32_16,798819036,,0,,0, -new,btreemap_v2_pop_last_blob_32_256,886655814,,0,,0, -new,btreemap_v2_pop_last_blob_32_32,810795267,,0,,0, -new,btreemap_v2_pop_last_blob_32_4,787773511,,0,,0, -new,btreemap_v2_pop_last_blob_32_512,955218753,,0,,0, -new,btreemap_v2_pop_last_blob_32_64,820640883,,0,,0, -new,btreemap_v2_pop_last_blob_32_8,797866752,,0,,0, -new,btreemap_v2_pop_last_blob_4_128,363658412,,0,,0, -new,btreemap_v2_pop_last_blob_512_128,5053410203,,0,,0, -new,btreemap_v2_pop_last_blob_64_128,1307018060,,0,,0, -new,btreemap_v2_pop_last_blob_8_128,611183029,,0,,0, -new,btreemap_v2_pop_last_u64_blob8,692886714,,0,,0, -new,btreemap_v2_pop_last_u64_u64,704577983,,0,,0, -new,btreemap_v2_pop_last_u64_vec8,695997588,,0,,0, -new,btreemap_v2_pop_last_vec8_u64,763627664,,0,,0, -new,btreemap_v2_pop_last_vec_1024_128,6009852618,,0,,0, -new,btreemap_v2_pop_last_vec_128_128,1829432194,,0,,0, -new,btreemap_v2_pop_last_vec_16_128,1012645478,,0,,0, -new,btreemap_v2_pop_last_vec_256_128,2581611468,,0,,0, -new,btreemap_v2_pop_last_vec_32_1024,1806174004,,0,,0, -new,btreemap_v2_pop_last_vec_32_128,1204020271,,0,,0, -new,btreemap_v2_pop_last_vec_32_16,1028212700,,0,,0, -new,btreemap_v2_pop_last_vec_32_256,1324004314,,0,,0, -new,btreemap_v2_pop_last_vec_32_32,1043904024,,0,,0, -new,btreemap_v2_pop_last_vec_32_4,1036623333,,0,,0, -new,btreemap_v2_pop_last_vec_32_512,1490189536,,0,,0, -new,btreemap_v2_pop_last_vec_32_64,1084539473,,0,,0, -new,btreemap_v2_pop_last_vec_32_8,1038381761,,0,,0, -new,btreemap_v2_pop_last_vec_4_128,528568472,,0,,0, -new,btreemap_v2_pop_last_vec_512_128,3722254862,,0,,0, -new,btreemap_v2_pop_last_vec_64_128,1415401855,,0,,0, -new,btreemap_v2_pop_last_vec_8_128,853141400,,0,,0, -new,btreemap_v2_range_count_1k_0b,16871,,0,,0, -new,btreemap_v2_range_count_1k_10kib,2440306,,0,,0, -new,btreemap_v2_range_count_20_10mib,20572482,,0,,0, -new,btreemap_v2_range_key_sum_1k_0b,17405,,0,,0, -new,btreemap_v2_range_key_sum_1k_10kib,57254917,,0,,0, -new,btreemap_v2_range_key_sum_20_10mib,1105826146,,0,,0, -new,btreemap_v2_range_value_sum_1k_0b,17419,,0,,0, -new,btreemap_v2_range_value_sum_1k_10kib,57266913,,0,,0, -new,btreemap_v2_range_value_sum_20_10mib,1105826382,,0,,0, -new,btreemap_v2_remove_10mib_values,5561337528,,0,,657, -new,btreemap_v2_remove_blob8_u64,587148004,,0,,0, -new,btreemap_v2_remove_blob_1024_128,6474121980,,0,,0, -new,btreemap_v2_remove_blob_128_128,1466116527,,0,,0, -new,btreemap_v2_remove_blob_16_128,680002778,,0,,0, -new,btreemap_v2_remove_blob_256_128,2195216146,,0,,0, -new,btreemap_v2_remove_blob_32_1024,965884145,,0,,0, -new,btreemap_v2_remove_blob_32_128,731104519,,0,,0, -new,btreemap_v2_remove_blob_32_16,687174807,,0,,0, -new,btreemap_v2_remove_blob_32_256,765993244,,0,,0, -new,btreemap_v2_remove_blob_32_32,695978850,,0,,0, -new,btreemap_v2_remove_blob_32_4,679309614,,0,,0, -new,btreemap_v2_remove_blob_32_512,837922200,,0,,0, -new,btreemap_v2_remove_blob_32_64,720007632,,0,,0, -new,btreemap_v2_remove_blob_32_8,679954161,,0,,0, -new,btreemap_v2_remove_blob_4_128,455500782,,0,,0, -new,btreemap_v2_remove_blob_512_128,3600501128,,0,,0, -new,btreemap_v2_remove_blob_64_128,1020115077,,0,,0, -new,btreemap_v2_remove_blob_8_128,607878082,,0,,0, -new,btreemap_v2_remove_u64_blob8,597535434,,0,,0, -new,btreemap_v2_remove_u64_u64,619080526,,0,,0, -new,btreemap_v2_remove_u64_vec8,603458045,,0,,0, -new,btreemap_v2_remove_vec8_u64,750426147,,0,,0, -new,btreemap_v2_remove_vec_1024_128,5020456905,,0,,0, -new,btreemap_v2_remove_vec_128_128,1451042556,,0,,0, -new,btreemap_v2_remove_vec_16_128,907590325,,0,,0, -new,btreemap_v2_remove_vec_256_128,2313326693,,0,,0, -new,btreemap_v2_remove_vec_32_1024,1673021222,,0,,0, -new,btreemap_v2_remove_vec_32_128,1010534168,,0,,0, -new,btreemap_v2_remove_vec_32_16,834640728,,0,,0, -new,btreemap_v2_remove_vec_32_256,1228590016,,0,,0, -new,btreemap_v2_remove_vec_32_32,841144006,,0,,0, -new,btreemap_v2_remove_vec_32_4,839617721,,0,,0, -new,btreemap_v2_remove_vec_32_512,1392150674,,0,,0, -new,btreemap_v2_remove_vec_32_64,923615504,,0,,0, -new,btreemap_v2_remove_vec_32_8,833306650,,0,,0, -new,btreemap_v2_remove_vec_4_128,649594780,,0,,0, -new,btreemap_v2_remove_vec_512_128,3264643019,,0,,0, -new,btreemap_v2_remove_vec_64_128,1178301615,,0,,0, -new,btreemap_v2_remove_vec_8_128,819927738,,0,,0, -new,btreemap_v2_scan_iter_1k_0b,1493458,,0,,0, -new,btreemap_v2_scan_iter_1k_10kib,57069957,,0,,0, -new,btreemap_v2_scan_iter_20_10mib,1103719699,,0,,0, -new,btreemap_v2_scan_iter_rev_1k_0b,1495597,,0,,0, -new,btreemap_v2_scan_iter_rev_1k_10kib,57047594,,0,,0, -new,btreemap_v2_scan_iter_rev_20_10mib,1103719281,,0,,0, -new,btreemap_v2_scan_keys_1k_0b,946083,,0,,0, -new,btreemap_v2_scan_keys_1k_10kib,2359607,,0,,0, -new,btreemap_v2_scan_keys_20_10mib,18465439,,0,,0, -new,btreemap_v2_scan_keys_rev_1k_0b,963320,,0,,0, -new,btreemap_v2_scan_keys_rev_1k_10kib,2355505,,0,,0, -new,btreemap_v2_scan_keys_rev_20_10mib,18465774,,0,,0, -new,btreemap_v2_scan_values_1k_0b,1490856,,0,,0, -new,btreemap_v2_scan_values_1k_10kib,57067355,,0,,0, -new,btreemap_v2_scan_values_20_10mib,1103719649,,0,,0, -new,btreemap_v2_scan_values_rev_1k_0b,1492995,,0,,0, -new,btreemap_v2_scan_values_rev_1k_10kib,57044992,,0,,0, -new,btreemap_v2_scan_values_rev_20_10mib,1103719231,,0,,0, +,btreemap_v1_contains_blob8_u64,214604512,9.90%,0,0.00%,0,0.00% +,btreemap_v1_contains_blob_1024_128,2922408508,-39.26%,0,0.00%,0,0.00% +,btreemap_v1_contains_blob_128_128,586872178,-31.03%,0,0.00%,0,0.00% +,btreemap_v1_contains_blob_16_128,221164121,-2.24%,0,0.00%,0,0.00% +,btreemap_v1_contains_blob_256_128,910841769,-35.30%,0,0.00%,0,0.00% +,btreemap_v1_contains_blob_32_1024,239720485,-6.71%,0,0.00%,0,0.00% +,btreemap_v1_contains_blob_32_128,239038963,-4.45%,0,0.00%,0,0.00% +,btreemap_v1_contains_blob_32_16,238053183,-9.11%,0,0.00%,0,0.00% +,btreemap_v1_contains_blob_32_256,241032021,-6.84%,0,0.00%,0,0.00% +,btreemap_v1_contains_blob_32_32,242001291,-6.62%,0,0.00%,0,0.00% +,btreemap_v1_contains_blob_32_4,238944894,-7.15%,0,0.00%,0,0.00% +,btreemap_v1_contains_blob_32_512,239131439,-6.23%,0,0.00%,0,0.00% +,btreemap_v1_contains_blob_32_64,241803503,-4.13%,0,0.00%,0,0.00% +,btreemap_v1_contains_blob_32_8,240243079,-4.97%,0,0.00%,0,0.00% +,btreemap_v1_contains_blob_4_128,183790067,14.09%,0,0.00%,0,0.00% +,btreemap_v1_contains_blob_512_128,1575950352,-37.97%,0,0.00%,0,0.00% +,btreemap_v1_contains_blob_64_128,320247840,-35.32%,0,0.00%,0,0.00% +,btreemap_v1_contains_blob_8_128,205037342,8.98%,0,0.00%,0,0.00% +,btreemap_v1_contains_u64_blob8,195672843,17.85%,0,0.00%,0,0.00% +,btreemap_v1_contains_u64_u64,196021965,17.17%,0,0.00%,0,0.00% +,btreemap_v1_get_blob8_u64,226053141,10.98%,0,0.00%,0,0.00% +,btreemap_v1_get_blob_1024_128,3062249766,-37.09%,0,0.00%,0,0.00% +,btreemap_v1_get_blob_128_128,618229550,-28.76%,0,0.00%,0,0.00% +,btreemap_v1_get_blob_16_128,234737465,-1.90%,0,0.00%,0,0.00% +,btreemap_v1_get_blob_256_128,959560160,-32.98%,0,0.00%,0,0.00% +,btreemap_v1_get_blob_32_1024,259133975,-5.82%,0,0.00%,0,0.00% +,btreemap_v1_get_blob_32_128,253461956,-3.53%,0,0.00%,0,0.00% +,btreemap_v1_get_blob_32_16,249673367,-7.46%,0,0.00%,0,0.00% +,btreemap_v1_get_blob_32_256,256358543,-5.83%,0,0.00%,0,0.00% +,btreemap_v1_get_blob_32_32,254243373,-5.08%,0,0.00%,0,0.00% +,btreemap_v1_get_blob_32_4,249550013,-5.68%,0,0.00%,0,0.00% +,btreemap_v1_get_blob_32_512,255866506,-5.37%,0,0.00%,0,0.00% +,btreemap_v1_get_blob_32_64,255219317,-2.94%,0,0.00%,0,0.00% +,btreemap_v1_get_blob_32_8,251351113,-3.97%,0,0.00%,0,0.00% +,btreemap_v1_get_blob_4_128,196604066,12.68%,0,0.00%,0,0.00% +,btreemap_v1_get_blob_512_128,1653919423,-35.78%,0,0.00%,0,0.00% +,btreemap_v1_get_blob_64_128,343711304,-32.45%,0,0.00%,0,0.00% +,btreemap_v1_get_blob_8_128,218813053,8.81%,0,0.00%,0,0.00% +,btreemap_v1_get_u64_blob8,206269161,18.77%,0,0.00%,0,0.00% +,btreemap_v1_get_u64_u64,208428437,17.95%,0,0.00%,0,0.00% +,btreemap_v1_insert_blob8_u64,396006263,20.03%,0,0.00%,6,0.00% +,btreemap_v1_insert_blob_1024_128,4197290629,-16.11%,0,0.00%,262,0.00% +,btreemap_v1_insert_blob_128_128,959129308,-6.60%,0,0.00%,61,0.00% +,btreemap_v1_insert_blob_16_128,448746473,14.71%,0,0.00%,32,0.00% +,btreemap_v1_insert_blob_256_128,1413111739,-10.34%,0,0.00%,90,0.00% +,btreemap_v1_insert_blob_32_1024,632307971,8.23%,0,0.00%,230,0.00% +,btreemap_v1_insert_blob_32_128,475337286,12.23%,0,0.00%,37,0.00% +,btreemap_v1_insert_blob_32_16,452118398,11.54%,0,0.00%,14,0.00% +,btreemap_v1_insert_blob_32_256,502869401,10.88%,0,0.00%,66,0.00% +,btreemap_v1_insert_blob_32_32,456827298,11.97%,0,0.00%,17,0.00% +,btreemap_v1_insert_blob_32_4,441367761,12.28%,0,0.00%,11,0.00% +,btreemap_v1_insert_blob_32_512,544771606,10.18%,0,0.00%,121,0.00% +,btreemap_v1_insert_blob_32_64,465139431,13.05%,0,0.00%,24,0.00% +,btreemap_v1_insert_blob_32_8,447170990,12.51%,0,0.00%,12,0.00% +,btreemap_v1_insert_blob_4_128,384672598,22.92%,0,0.00%,17,0.00% +,btreemap_v1_insert_blob_512_128,2355678964,-14.40%,0,0.00%,148,0.00% +,btreemap_v1_insert_blob_64_128,588543826,-12.15%,0,0.00%,46,0.00% +,btreemap_v1_insert_blob_8_128,425034283,18.71%,0,0.00%,27,0.00% +,btreemap_v1_insert_u64_blob8,426703106,25.62%,0,0.00%,7,0.00% +,btreemap_v1_insert_u64_u64,432591081,25.43%,0,0.00%,7,0.00% +,btreemap_v1_pop_first_blob8_u64,472454354,7.27%,0,0.00%,0,0.00% +,btreemap_v1_pop_first_blob_1024_128,5968883226,-35.19%,0,0.00%,0,0.00% +,btreemap_v1_pop_first_blob_128_128,1351764916,-25.61%,0,0.00%,0,0.00% +,btreemap_v1_pop_first_blob_16_128,604940934,2.84%,0,0.00%,0,0.00% +,btreemap_v1_pop_first_blob_256_128,2006348151,-30.71%,0,0.00%,0,0.00% +,btreemap_v1_pop_first_blob_32_1024,943018826,-1.32%,0,0.00%,0,0.00% +,btreemap_v1_pop_first_blob_32_128,686775637,-1.18%,0,0.00%,0,0.00% +,btreemap_v1_pop_first_blob_32_16,629606485,-1.96%,0,0.00%,0,0.00% +,btreemap_v1_pop_first_blob_32_256,720864823,-1.46%,0,0.00%,0,0.00% +,btreemap_v1_pop_first_blob_32_32,639564112,-1.81%,0,0.00%,0,0.00% +,btreemap_v1_pop_first_blob_32_4,613328648,-1.67%,0,0.00%,0,0.00% +,btreemap_v1_pop_first_blob_32_512,789611286,-0.99%,0,0.00%,0,0.00% +,btreemap_v1_pop_first_blob_32_64,652639140,-1.39%,0,0.00%,0,0.00% +,btreemap_v1_pop_first_blob_32_8,629078870,-1.36%,0,0.00%,0,0.00% +,btreemap_v1_pop_first_blob_4_128,313307630,12.32%,0,0.00%,0,0.00% +,btreemap_v1_pop_first_blob_512_128,3330221349,-33.20%,0,0.00%,0,0.00% +,btreemap_v1_pop_first_blob_64_128,849184741,-26.09%,0,0.00%,0,0.00% +,btreemap_v1_pop_first_blob_8_128,498913893,7.31%,0,0.00%,0,0.00% +,btreemap_v1_pop_first_u64_blob8,628199923,13.65%,0,0.00%,0,0.00% +,btreemap_v1_pop_first_u64_u64,632530383,13.86%,0,0.00%,0,0.00% +,btreemap_v1_pop_last_blob8_u64,451460019,6.09%,0,0.00%,0,0.00% +,btreemap_v1_pop_last_blob_1024_128,5651998304,-37.39%,0,0.00%,0,0.00% +,btreemap_v1_pop_last_blob_128_128,1286463073,-27.39%,0,0.00%,0,0.00% +,btreemap_v1_pop_last_blob_16_128,578841691,0.06%,0,0.00%,0,0.00% +,btreemap_v1_pop_last_blob_256_128,1899750937,-32.86%,0,0.00%,0,0.00% +,btreemap_v1_pop_last_blob_32_1024,912952383,-2.44%,0,0.00%,0,0.00% +,btreemap_v1_pop_last_blob_32_128,656566327,-2.39%,0,0.00%,0,0.00% +,btreemap_v1_pop_last_blob_32_16,599383690,-3.66%,0,0.00%,0,0.00% +,btreemap_v1_pop_last_blob_32_256,690485560,-2.81%,0,0.00%,0,0.00% +,btreemap_v1_pop_last_blob_32_32,610564917,-3.40%,0,0.00%,0,0.00% +,btreemap_v1_pop_last_blob_32_4,588183759,-3.58%,0,0.00%,0,0.00% +,btreemap_v1_pop_last_blob_32_512,761717517,-2.24%,0,0.00%,0,0.00% +,btreemap_v1_pop_last_blob_32_64,624086352,-2.83%,0,0.00%,0,0.00% +,btreemap_v1_pop_last_blob_32_8,600304042,-2.56%,0,0.00%,0,0.00% +,btreemap_v1_pop_last_blob_4_128,300227276,10.64%,0,0.00%,0,0.00% +,btreemap_v1_pop_last_blob_512_128,3165558118,-35.07%,0,0.00%,0,0.00% +,btreemap_v1_pop_last_blob_64_128,812589058,-27.35%,0,0.00%,0,0.00% +,btreemap_v1_pop_last_blob_8_128,485071081,5.08%,0,0.00%,0,0.00% +,btreemap_v1_pop_last_u64_blob8,603958429,11.72%,0,0.00%,0,0.00% +,btreemap_v1_pop_last_u64_u64,609425522,12.21%,0,0.00%,0,0.00% +,btreemap_v1_remove_blob8_u64,530376899,20.58%,0,0.00%,0,0.00% +,btreemap_v1_remove_blob_1024_128,5925140748,-6.39%,0,0.00%,0,0.00% +,btreemap_v1_remove_blob_128_128,1318610652,-0.13%,0,0.00%,0,0.00% +,btreemap_v1_remove_blob_16_128,622048950,15.41%,0,0.00%,0,0.00% +,btreemap_v1_remove_blob_256_128,1959851216,-4.16%,0,0.00%,0,0.00% +,btreemap_v1_remove_blob_32_1024,898368311,8.81%,0,0.00%,0,0.00% +,btreemap_v1_remove_blob_32_128,664214259,12.81%,0,0.00%,0,0.00% +,btreemap_v1_remove_blob_32_16,619816674,13.54%,0,0.00%,0,0.00% +,btreemap_v1_remove_blob_32_256,700002324,11.95%,0,0.00%,0,0.00% +,btreemap_v1_remove_blob_32_32,629240192,13.65%,0,0.00%,0,0.00% +,btreemap_v1_remove_blob_32_4,612056855,13.89%,0,0.00%,0,0.00% +,btreemap_v1_remove_blob_32_512,772784434,10.95%,0,0.00%,0,0.00% +,btreemap_v1_remove_blob_32_64,654345614,13.87%,0,0.00%,0,0.00% +,btreemap_v1_remove_blob_32_8,613546662,14.01%,0,0.00%,0,0.00% +,btreemap_v1_remove_blob_4_128,416425733,21.50%,0,0.00%,0,0.00% +,btreemap_v1_remove_blob_512_128,3308478672,-4.22%,0,0.00%,0,0.00% +,btreemap_v1_remove_blob_64_128,811561284,-7.33%,0,0.00%,0,0.00% +,btreemap_v1_remove_blob_8_128,557257050,18.56%,0,0.00%,0,0.00% +,btreemap_v1_remove_u64_blob8,602567622,24.01%,0,0.00%,0,0.00% +,btreemap_v1_remove_u64_u64,617973106,23.78%,0,0.00%,0,0.00% +,btreemap_v2_contains_10mib_values,142229058,0.01%,0,0.00%,0,0.00% +,btreemap_v2_contains_blob8_u64,292071256,5.17%,0,0.00%,0,0.00% +,btreemap_v2_contains_blob_1024_128,3004678141,-38.65%,0,0.00%,0,0.00% +,btreemap_v2_contains_blob_128_128,665016023,-28.18%,0,0.00%,0,0.00% +,btreemap_v2_contains_blob_16_128,299266114,-1.62%,0,0.00%,0,0.00% +,btreemap_v2_contains_blob_256_128,985524245,-33.53%,0,0.00%,0,0.00% +,btreemap_v2_contains_blob_32_1024,317750197,-5.12%,0,0.00%,0,0.00% +,btreemap_v2_contains_blob_32_128,317486525,-4.47%,0,0.00%,0,0.00% +,btreemap_v2_contains_blob_32_16,316913507,-5.86%,0,0.00%,0,0.00% +,btreemap_v2_contains_blob_32_256,319375798,-5.22%,0,0.00%,0,0.00% +,btreemap_v2_contains_blob_32_32,321175428,-4.91%,0,0.00%,0,0.00% +,btreemap_v2_contains_blob_32_4,317302163,-4.92%,0,0.00%,0,0.00% +,btreemap_v2_contains_blob_32_512,317454763,-4.61%,0,0.00%,0,0.00% +,btreemap_v2_contains_blob_32_64,320828457,-4.27%,0,0.00%,0,0.00% +,btreemap_v2_contains_blob_32_8,318450047,-4.85%,0,0.00%,0,0.00% +,btreemap_v2_contains_blob_4_128,264127393,7.86%,0,0.00%,0,0.00% +,btreemap_v2_contains_blob_512_128,1657176786,-36.86%,0,0.00%,0,0.00% +,btreemap_v2_contains_blob_64_128,400794429,-31.39%,0,0.00%,0,0.00% +,btreemap_v2_contains_blob_8_128,280164328,4.40%,0,0.00%,0,0.00% +,btreemap_v2_contains_u64_blob8,249345668,6.15%,0,0.00%,0,0.00% +,btreemap_v2_contains_u64_u64,255212854,7.95%,0,0.00%,0,0.00% +,btreemap_v2_contains_u64_vec8,249345668,6.15%,0,0.00%,0,0.00% +,btreemap_v2_contains_vec8_u64,331414697,-9.57%,0,0.00%,0,0.00% +,btreemap_v2_contains_vec_1024_128,1843552548,-35.89%,0,0.00%,0,0.00% +,btreemap_v2_contains_vec_128_128,559068813,-19.91%,0,0.00%,0,0.00% +,btreemap_v2_contains_vec_16_128,379282562,-11.90%,0,0.00%,0,0.00% +,btreemap_v2_contains_vec_256_128,913001425,-25.17%,0,0.00%,0,0.00% +,btreemap_v2_contains_vec_32_1024,512588096,-10.67%,0,0.00%,0,0.00% +,btreemap_v2_contains_vec_32_128,433820781,-11.21%,0,0.00%,0,0.00% +,btreemap_v2_contains_vec_32_16,363297614,-11.02%,0,0.00%,0,0.00% +,btreemap_v2_contains_vec_32_256,441973791,-15.31%,0,0.00%,0,0.00% +,btreemap_v2_contains_vec_32_32,363312712,-11.13%,0,0.00%,0,0.00% +,btreemap_v2_contains_vec_32_4,362491802,-10.98%,0,0.00%,0,0.00% +,btreemap_v2_contains_vec_32_512,477204790,-11.13%,0,0.00%,0,0.00% +,btreemap_v2_contains_vec_32_64,403341248,-13.00%,0,0.00%,0,0.00% +,btreemap_v2_contains_vec_32_8,362531723,-10.95%,0,0.00%,0,0.00% +,btreemap_v2_contains_vec_4_128,352494755,-11.24%,0,0.00%,0,0.00% +,btreemap_v2_contains_vec_512_128,1272734638,-29.77%,0,0.00%,0,0.00% +,btreemap_v2_contains_vec_64_128,508397924,-14.52%,0,0.00%,0,0.00% +,btreemap_v2_contains_vec_8_128,350968224,-9.74%,0,0.00%,0,0.00% +,btreemap_v2_get_10mib_values,1227489035,0.00%,0,0.00%,0,0.00% +,btreemap_v2_get_blob8_u64,304816032,2.58%,0,0.00%,0,0.00% +,btreemap_v2_get_blob_1024_128,3144320444,-36.53%,0,0.00%,0,0.00% +,btreemap_v2_get_blob_128_128,698826651,-26.22%,0,0.00%,0,0.00% +,btreemap_v2_get_blob_16_128,313298866,-1.28%,0,0.00%,0,0.00% +,btreemap_v2_get_blob_256_128,1032439290,-31.51%,0,0.00%,0,0.00% +,btreemap_v2_get_blob_32_1024,338180223,-4.40%,0,0.00%,0,0.00% +,btreemap_v2_get_blob_32_128,332624198,-3.84%,0,0.00%,0,0.00% +,btreemap_v2_get_blob_32_16,328919681,-5.20%,0,0.00%,0,0.00% +,btreemap_v2_get_blob_32_256,335563422,-4.56%,0,0.00%,0,0.00% +,btreemap_v2_get_blob_32_32,333781460,-4.33%,0,0.00%,0,0.00% +,btreemap_v2_get_blob_32_4,328246778,-4.43%,0,0.00%,0,0.00% +,btreemap_v2_get_blob_32_512,335192871,-3.94%,0,0.00%,0,0.00% +,btreemap_v2_get_blob_32_64,334932529,-3.51%,0,0.00%,0,0.00% +,btreemap_v2_get_blob_32_8,329900204,-4.46%,0,0.00%,0,0.00% +,btreemap_v2_get_blob_4_128,276743152,7.53%,0,0.00%,0,0.00% +,btreemap_v2_get_blob_512_128,1734963607,-34.77%,0,0.00%,0,0.00% +,btreemap_v2_get_blob_64_128,425486333,-29.29%,0,0.00%,0,0.00% +,btreemap_v2_get_blob_8_128,293940212,4.37%,0,0.00%,0,0.00% +,btreemap_v2_get_u64_blob8,260251406,6.07%,0,0.00%,0,0.00% +,btreemap_v2_get_u64_u64,268110583,7.56%,0,0.00%,0,0.00% +,btreemap_v2_get_u64_vec8,261065188,6.06%,0,0.00%,0,0.00% +,btreemap_v2_get_vec8_u64,343885017,-8.75%,0,0.00%,0,0.00% +,btreemap_v2_get_vec_1024_128,1892468068,-35.23%,0,0.00%,0,0.00% +,btreemap_v2_get_vec_128_128,571871925,-19.55%,0,0.00%,0,0.00% +,btreemap_v2_get_vec_16_128,390610021,-11.31%,0,0.00%,0,0.00% +,btreemap_v2_get_vec_256_128,926323429,-24.89%,0,0.00%,0,0.00% +,btreemap_v2_get_vec_32_1024,555478534,-8.40%,0,0.00%,0,0.00% +,btreemap_v2_get_vec_32_128,444489523,-10.91%,0,0.00%,0,0.00% +,btreemap_v2_get_vec_32_16,371411562,-10.92%,0,0.00%,0,0.00% +,btreemap_v2_get_vec_32_256,460059095,-14.78%,0,0.00%,0,0.00% +,btreemap_v2_get_vec_32_32,371559358,-10.90%,0,0.00%,0,0.00% +,btreemap_v2_get_vec_32_4,370813831,-10.67%,0,0.00%,0,0.00% +,btreemap_v2_get_vec_32_512,499706941,-10.57%,0,0.00%,0,0.00% +,btreemap_v2_get_vec_32_64,412299789,-12.68%,0,0.00%,0,0.00% +,btreemap_v2_get_vec_32_8,370858341,-10.65%,0,0.00%,0,0.00% +,btreemap_v2_get_vec_4_128,363440040,-10.72%,0,0.00%,0,0.00% +,btreemap_v2_get_vec_512_128,1285923842,-29.57%,0,0.00%,0,0.00% +,btreemap_v2_get_vec_64_128,519684483,-14.27%,0,0.00%,0,0.00% +,btreemap_v2_get_vec_8_128,361789415,-9.25%,0,0.00%,0,0.00% +,btreemap_v2_insert_10mib_values,5236020394,-0.00%,322,0.00%,3613,0.00% +,btreemap_v2_insert_blob8_u64,501716659,13.80%,0,0.00%,4,0.00% +,btreemap_v2_insert_blob_1024_128,4298409341,-15.78%,0,0.00%,196,0.00% +,btreemap_v2_insert_blob_128_128,1062334322,-6.29%,0,0.00%,46,0.00% +,btreemap_v2_insert_blob_16_128,550033663,11.17%,0,0.00%,24,0.00% +,btreemap_v2_insert_blob_256_128,1517044762,-9.91%,0,0.00%,67,0.00% +,btreemap_v2_insert_blob_32_1024,732784071,6.65%,0,0.00%,173,0.00% +,btreemap_v2_insert_blob_32_128,577281316,9.10%,0,0.00%,28,0.00% +,btreemap_v2_insert_blob_32_16,555235014,9.20%,0,0.00%,11,0.00% +,btreemap_v2_insert_blob_32_256,603441750,7.70%,0,0.00%,49,0.00% +,btreemap_v2_insert_blob_32_32,560817016,9.10%,0,0.00%,13,0.00% +,btreemap_v2_insert_blob_32_4,544048239,9.55%,0,0.00%,8,0.00% +,btreemap_v2_insert_blob_32_512,645074828,7.95%,0,0.00%,91,0.00% +,btreemap_v2_insert_blob_32_64,567941552,9.32%,0,0.00%,18,0.00% +,btreemap_v2_insert_blob_32_8,549794717,9.14%,0,0.00%,9,0.00% +,btreemap_v2_insert_blob_4_128,477592446,16.37%,0,0.00%,13,0.00% +,btreemap_v2_insert_blob_512_128,2459054925,-13.87%,0,0.00%,111,0.00% +,btreemap_v2_insert_blob_64_128,691018270,-11.13%,0,0.00%,34,0.00% +,btreemap_v2_insert_blob_8_128,524164752,13.22%,0,0.00%,20,0.00% +,btreemap_v2_insert_u64_blob8,491247984,16.23%,0,0.00%,5,0.00% +,btreemap_v2_insert_u64_u64,500866926,16.08%,0,0.00%,6,0.00% +,btreemap_v2_insert_u64_vec8,501307103,16.60%,0,0.00%,21,0.00% +,btreemap_v2_insert_vec8_u64,614982299,5.68%,0,0.00%,16,0.00% +,btreemap_v2_insert_vec_1024_128,2789610913,-15.93%,0,0.00%,193,0.00% +,btreemap_v2_insert_vec_128_128,1042177787,-4.85%,0,0.00%,51,0.00% +,btreemap_v2_insert_vec_16_128,738414762,5.00%,0,0.00%,31,0.00% +,btreemap_v2_insert_vec_256_128,1423894681,-5.45%,0,0.00%,71,0.00% +,btreemap_v2_insert_vec_32_1024,1243910406,1.81%,0,0.00%,171,0.00% +,btreemap_v2_insert_vec_32_128,782955660,2.80%,0,0.00%,33,0.00% +,btreemap_v2_insert_vec_32_16,690772545,4.14%,0,0.00%,20,0.00% +,btreemap_v2_insert_vec_32_256,906365509,1.80%,0,0.00%,54,0.00% +,btreemap_v2_insert_vec_32_32,684749908,2.79%,0,0.00%,20,0.00% +,btreemap_v2_insert_vec_32_4,684856776,3.71%,0,0.00%,20,0.00% +,btreemap_v2_insert_vec_32_512,1026119993,1.73%,0,0.00%,91,0.00% +,btreemap_v2_insert_vec_32_64,716558458,3.53%,0,0.00%,24,0.00% +,btreemap_v2_insert_vec_32_8,684037572,3.62%,0,0.00%,20,0.00% +,btreemap_v2_insert_vec_4_128,648407960,6.54%,0,0.00%,16,0.00% +,btreemap_v2_insert_vec_512_128,1901572280,-10.60%,0,0.00%,112,0.00% +,btreemap_v2_insert_vec_64_128,873371621,-0.77%,0,0.00%,41,0.00% +,btreemap_v2_insert_vec_8_128,707096235,6.13%,0,0.00%,23,0.00% +,btreemap_v2_mem_manager_contains_blob512_u64,1775949161,-34.65%,0,0.00%,0,0.00% +,btreemap_v2_mem_manager_contains_u64_blob512,311272695,0.05%,0,0.00%,0,0.00% +,btreemap_v2_mem_manager_contains_u64_u64,317156841,0.12%,0,0.00%,0,0.00% +,btreemap_v2_mem_manager_contains_u64_vec512,400392398,1.18%,0,0.00%,0,0.00% +,btreemap_v2_mem_manager_contains_vec512_u64,1258425858,-28.29%,0,0.00%,0,0.00% +,btreemap_v2_mem_manager_get_blob512_u64,1863808659,-32.54%,0,0.00%,0,0.00% +,btreemap_v2_mem_manager_get_u64_blob512,329294891,0.43%,0,0.00%,0,0.00% +,btreemap_v2_mem_manager_get_u64_u64,331652326,0.56%,0,0.00%,0,0.00% +,btreemap_v2_mem_manager_get_u64_vec512,427935018,1.25%,0,0.00%,0,0.00% +,btreemap_v2_mem_manager_get_vec512_u64,1303577687,-27.27%,0,0.00%,0,0.00% +,btreemap_v2_mem_manager_insert_blob512_u64,2597565947,-12.24%,0,0.00%,0,0.00% +,btreemap_v2_mem_manager_insert_u64_blob512,707049704,9.27%,0,0.00%,0,0.00% +,btreemap_v2_mem_manager_insert_u64_u64,621126909,10.75%,0,0.00%,0,0.00% +,btreemap_v2_mem_manager_insert_u64_vec512,960296871,6.48%,0,0.00%,0,0.00% +,btreemap_v2_mem_manager_insert_vec512_u64,2031591198,-9.35%,0,0.00%,0,0.00% +,btreemap_v2_mem_manager_remove_blob512_u64,3736567051,-2.88%,0,0.00%,0,0.00% +,btreemap_v2_mem_manager_remove_u64_blob512,1034958115,9.25%,0,0.00%,0,0.00% +,btreemap_v2_mem_manager_remove_u64_u64,892052152,10.48%,0,0.00%,0,0.00% +,btreemap_v2_mem_manager_remove_u64_vec512,1375819243,6.90%,0,0.00%,0,0.00% +,btreemap_v2_mem_manager_remove_vec512_u64,3198591960,-3.55%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_blob8_u64,629253248,3.45%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_blob_1024_128,6147001197,-34.59%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_blob_128_128,1531908056,-23.69%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_blob_16_128,765283250,1.04%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_blob_256_128,2185233950,-29.37%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_blob_32_1024,1116736838,-1.39%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_blob_32_128,860692670,-1.79%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_blob_32_16,802464245,-2.13%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_blob_32_256,892952288,-1.60%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_blob_32_32,811824098,-2.38%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_blob_32_4,786045356,-2.00%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_blob_32_512,960837938,-1.28%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_blob_32_64,823444657,-1.82%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_blob_32_8,802974323,-1.89%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_blob_4_128,399711532,7.45%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_blob_512_128,3509572847,-32.15%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_blob_64_128,1025420211,-22.84%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_blob_8_128,634095102,3.71%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_u64_blob8,753793039,6.88%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_u64_u64,768155629,7.09%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_u64_vec8,757240426,6.71%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_vec8_u64,732991720,-6.30%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_vec_1024_128,4085915603,-29.09%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_vec_128_128,1538597561,-15.25%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_vec_16_128,969028764,-5.41%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_vec_256_128,2055957144,-18.68%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_vec_32_1024,1717441040,-5.18%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_vec_32_128,1114978395,-7.46%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_vec_32_16,961475566,-7.49%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_vec_32_256,1243299725,-6.28%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_vec_32_32,955175429,-9.51%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_vec_32_4,948465621,-8.65%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_vec_32_512,1398936327,-6.10%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_vec_32_64,1002725828,-7.99%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_vec_32_8,959526555,-8.63%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_vec_4_128,519693694,-3.30%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_vec_512_128,2758195778,-23.37%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_vec_64_128,1262234043,-9.96%,0,0.00%,0,0.00% +,btreemap_v2_pop_first_vec_8_128,808949551,-4.32%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_blob8_u64,605594719,2.23%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_blob_1024_128,5830793696,-36.76%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_blob_128_128,1465499866,-25.17%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_blob_16_128,738880823,0.03%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_blob_256_128,2079294367,-31.16%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_blob_32_1024,1085669333,-2.42%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_blob_32_128,830643675,-2.77%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_blob_32_16,769688933,-3.65%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_blob_32_256,861919416,-2.79%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_blob_32_32,780760100,-3.70%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_blob_32_4,760677261,-3.44%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_blob_32_512,933506500,-2.27%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_blob_32_64,795410677,-3.07%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_blob_32_8,771816802,-3.26%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_blob_4_128,386661070,6.33%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_blob_512_128,3345362741,-33.80%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_blob_64_128,990351700,-24.23%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_blob_8_128,624461847,2.17%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_u64_blob8,729066416,5.22%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_u64_u64,743800192,5.57%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_u64_vec8,731910124,5.16%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_vec8_u64,708957905,-7.16%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_vec_1024_128,4313316700,-28.23%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_vec_128_128,1552648335,-15.13%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_vec_16_128,947358933,-6.45%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_vec_256_128,2129557691,-17.51%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_vec_32_1024,1698443491,-5.96%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_vec_32_128,1096848946,-8.90%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_vec_32_16,941209083,-8.46%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_vec_32_256,1226663580,-7.35%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_vec_32_32,936303418,-10.31%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_vec_32_4,934258686,-9.87%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_vec_32_512,1389566809,-6.75%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_vec_32_64,983167413,-9.35%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_vec_32_8,937711654,-9.69%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_vec_4_128,504246189,-4.60%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_vec_512_128,2873424953,-22.80%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_vec_64_128,1255974553,-11.26%,0,0.00%,0,0.00% +,btreemap_v2_pop_last_vec_8_128,801484501,-6.05%,0,0.00%,0,0.00% +,btreemap_v2_range_count_1k_0b,20115,19.23%,0,0.00%,0,0.00% +,btreemap_v2_range_count_1k_10kib,2986687,22.39%,0,0.00%,0,0.00% +,btreemap_v2_range_count_20_10mib,20584404,0.06%,0,0.00%,0,0.00% +,btreemap_v2_range_key_sum_1k_0b,20531,17.96%,0,0.00%,0,0.00% +,btreemap_v2_range_key_sum_1k_10kib,57677193,0.74%,0,0.00%,0,0.00% +,btreemap_v2_range_key_sum_20_10mib,1105836590,0.00%,0,0.00%,0,0.00% +,btreemap_v2_range_value_sum_1k_0b,20545,17.95%,0,0.00%,0,0.00% +,btreemap_v2_range_value_sum_1k_10kib,57689189,0.74%,0,0.00%,0,0.00% +,btreemap_v2_range_value_sum_20_10mib,1105836826,0.00%,0,0.00%,0,0.00% +,btreemap_v2_remove_10mib_values,5561272860,-0.00%,0,0.00%,657,0.00% +,btreemap_v2_remove_blob8_u64,667900563,13.75%,0,0.00%,0,0.00% +,btreemap_v2_remove_blob_1024_128,6063706104,-6.34%,0,0.00%,0,0.00% +,btreemap_v2_remove_blob_128_128,1457463878,-0.59%,0,0.00%,0,0.00% +,btreemap_v2_remove_blob_16_128,757672413,11.42%,0,0.00%,0,0.00% +,btreemap_v2_remove_blob_256_128,2098091924,-4.42%,0,0.00%,0,0.00% +,btreemap_v2_remove_blob_32_1024,1036297823,7.29%,0,0.00%,0,0.00% +,btreemap_v2_remove_blob_32_128,801420541,9.62%,0,0.00%,0,0.00% +,btreemap_v2_remove_blob_32_16,755774413,9.98%,0,0.00%,0,0.00% +,btreemap_v2_remove_blob_32_256,837217335,9.30%,0,0.00%,0,0.00% +,btreemap_v2_remove_blob_32_32,765911420,10.05%,0,0.00%,0,0.00% +,btreemap_v2_remove_blob_32_4,750822623,10.53%,0,0.00%,0,0.00% +,btreemap_v2_remove_blob_32_512,911302025,8.76%,0,0.00%,0,0.00% +,btreemap_v2_remove_blob_32_64,793243985,10.17%,0,0.00%,0,0.00% +,btreemap_v2_remove_blob_32_8,749626337,10.25%,0,0.00%,0,0.00% +,btreemap_v2_remove_blob_4_128,522538214,14.72%,0,0.00%,0,0.00% +,btreemap_v2_remove_blob_512_128,3448674395,-4.22%,0,0.00%,0,0.00% +,btreemap_v2_remove_blob_64_128,947748278,-7.09%,0,0.00%,0,0.00% +,btreemap_v2_remove_blob_8_128,685714058,12.80%,0,0.00%,0,0.00% +,btreemap_v2_remove_u64_blob8,689441571,15.38%,0,0.00%,0,0.00% +,btreemap_v2_remove_u64_u64,712995636,15.17%,0,0.00%,0,0.00% +,btreemap_v2_remove_u64_vec8,695853424,15.31%,0,0.00%,0,0.00% +,btreemap_v2_remove_vec8_u64,804496668,7.21%,0,0.00%,0,0.00% +,btreemap_v2_remove_vec_1024_128,4560037620,-9.17%,0,0.00%,0,0.00% +,btreemap_v2_remove_vec_128_128,1473629560,1.56%,0,0.00%,0,0.00% +,btreemap_v2_remove_vec_16_128,971674171,7.06%,0,0.00%,0,0.00% +,btreemap_v2_remove_vec_256_128,2293167894,-0.87%,0,0.00%,0,0.00% +,btreemap_v2_remove_vec_32_1024,1732355221,3.55%,0,0.00%,0,0.00% +,btreemap_v2_remove_vec_32_128,1069927739,5.88%,0,0.00%,0,0.00% +,btreemap_v2_remove_vec_32_16,890477096,6.69%,0,0.00%,0,0.00% +,btreemap_v2_remove_vec_32_256,1280544115,4.23%,0,0.00%,0,0.00% +,btreemap_v2_remove_vec_32_32,897812266,6.74%,0,0.00%,0,0.00% +,btreemap_v2_remove_vec_32_4,896826883,6.81%,0,0.00%,0,0.00% +,btreemap_v2_remove_vec_32_512,1443936645,3.72%,0,0.00%,0,0.00% +,btreemap_v2_remove_vec_32_64,979473079,6.05%,0,0.00%,0,0.00% +,btreemap_v2_remove_vec_32_8,890819873,6.90%,0,0.00%,0,0.00% +,btreemap_v2_remove_vec_4_128,687282319,5.80%,0,0.00%,0,0.00% +,btreemap_v2_remove_vec_512_128,3130403453,-4.11%,0,0.00%,0,0.00% +,btreemap_v2_remove_vec_64_128,1192475703,1.20%,0,0.00%,0,0.00% +,btreemap_v2_remove_vec_8_128,877067292,6.97%,0,0.00%,0,0.00% +,btreemap_v2_scan_iter_1k_0b,1981104,32.65%,0,0.00%,0,0.00% +,btreemap_v2_scan_iter_1k_10kib,57549224,0.84%,0,0.00%,0,0.00% +,btreemap_v2_scan_iter_20_10mib,1103729363,0.00%,0,0.00%,0,0.00% +,btreemap_v2_scan_iter_rev_1k_0b,1981815,32.51%,0,0.00%,0,0.00% +,btreemap_v2_scan_iter_rev_1k_10kib,57530291,0.85%,0,0.00%,0,0.00% +,btreemap_v2_scan_iter_rev_20_10mib,1103728938,0.00%,0,0.00%,0,0.00% +,btreemap_v2_scan_keys_1k_0b,1551166,63.96%,0,0.00%,0,0.00% +,btreemap_v2_scan_keys_1k_10kib,2958502,25.38%,0,0.00%,0,0.00% +,btreemap_v2_scan_keys_20_10mib,18477478,0.07%,0,0.00%,0,0.00% +,btreemap_v2_scan_keys_rev_1k_0b,1552873,61.20%,0,0.00%,0,0.00% +,btreemap_v2_scan_keys_rev_1k_10kib,2941017,24.86%,0,0.00%,0,0.00% +,btreemap_v2_scan_keys_rev_20_10mib,18477506,0.06%,0,0.00%,0,0.00% +,btreemap_v2_scan_values_1k_0b,1941502,30.23%,0,0.00%,0,0.00% +,btreemap_v2_scan_values_1k_10kib,57509622,0.77%,0,0.00%,0,0.00% +,btreemap_v2_scan_values_20_10mib,1103728573,0.00%,0,0.00%,0,0.00% +,btreemap_v2_scan_values_rev_1k_0b,1942213,30.09%,0,0.00%,0,0.00% +,btreemap_v2_scan_values_rev_1k_10kib,57490689,0.78%,0,0.00%,0,0.00% +,btreemap_v2_scan_values_rev_20_10mib,1103728148,0.00%,0,0.00%,0,0.00% ,memory_manager_baseline,1176577076,0.00%,0,0.00%,8000,0.00% ,memory_manager_grow,346537961,0.00%,2,0.00%,32000,0.00% ,memory_manager_overhead,1181962837,0.00%,0,0.00%,8320,0.00% diff --git a/canbench_results.yml b/canbench_results.yml index 8a68e345..c8ed0ff4 100644 --- a/canbench_results.yml +++ b/canbench_results.yml @@ -1,2431 +1,2431 @@ benches: btreemap_v1_contains_blob8_u64: total: - instructions: 195271021 + instructions: 214604512 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_1024_128: total: - instructions: 4811323110 + instructions: 2922408508 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_128_128: total: - instructions: 850930156 + instructions: 586872178 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_16_128: total: - instructions: 226230369 + instructions: 221164121 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_256_128: total: - instructions: 1407896845 + instructions: 910841769 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_32_1024: total: - instructions: 256961773 + instructions: 239720485 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_32_128: total: - instructions: 250177816 + instructions: 239038963 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_32_16: total: - instructions: 261906396 + instructions: 238053183 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_32_256: total: - instructions: 258725278 + instructions: 241032021 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_32_32: total: - instructions: 259151053 + instructions: 242001291 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_32_4: total: - instructions: 257349962 + instructions: 238944894 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_32_512: total: - instructions: 255019597 + instructions: 239131439 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_32_64: total: - instructions: 252217576 + instructions: 241803503 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_32_8: total: - instructions: 252815455 + instructions: 240243079 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_4_128: total: - instructions: 161092850 + instructions: 183790067 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_512_128: total: - instructions: 2540558634 + instructions: 1575950352 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_64_128: total: - instructions: 495156778 + instructions: 320247840 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_blob_8_128: total: - instructions: 188138732 + instructions: 205037342 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_u64_blob8: total: - instructions: 166038798 + instructions: 195672843 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_contains_u64_u64: total: - instructions: 167293960 + instructions: 196021965 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob8_u64: total: - instructions: 203697122 + instructions: 226053141 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_1024_128: total: - instructions: 4867663262 + instructions: 3062249766 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_128_128: total: - instructions: 867834674 + instructions: 618229550 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_16_128: total: - instructions: 239293029 + instructions: 234737465 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_256_128: total: - instructions: 1431740445 + instructions: 959560160 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_32_1024: total: - instructions: 275141698 + instructions: 259133975 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_32_128: total: - instructions: 262740541 + instructions: 253461956 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_32_16: total: - instructions: 269802882 + instructions: 249673367 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_32_256: total: - instructions: 272218440 + instructions: 256358543 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_32_32: total: - instructions: 267860063 + instructions: 254243373 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_32_4: total: - instructions: 264584535 + instructions: 249550013 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_32_512: total: - instructions: 270395928 + instructions: 255866506 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_32_64: total: - instructions: 262951923 + instructions: 255219317 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_32_8: total: - instructions: 261740283 + instructions: 251351113 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_4_128: total: - instructions: 174475611 + instructions: 196604066 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_512_128: total: - instructions: 2575484041 + instructions: 1653919423 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_64_128: total: - instructions: 508829622 + instructions: 343711304 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_blob_8_128: total: - instructions: 201098226 + instructions: 218813053 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_u64_blob8: total: - instructions: 173677469 + instructions: 206269161 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_get_u64_u64: total: - instructions: 176711268 + instructions: 208428437 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_insert_blob8_u64: total: - instructions: 329934785 + instructions: 396006263 heap_increase: 0 stable_memory_increase: 6 scopes: {} btreemap_v1_insert_blob_1024_128: total: - instructions: 5003142436 + instructions: 4197290629 heap_increase: 0 stable_memory_increase: 262 scopes: {} btreemap_v1_insert_blob_128_128: total: - instructions: 1026896477 + instructions: 959129308 heap_increase: 0 stable_memory_increase: 61 scopes: {} btreemap_v1_insert_blob_16_128: total: - instructions: 391208873 + instructions: 448746473 heap_increase: 0 stable_memory_increase: 32 scopes: {} btreemap_v1_insert_blob_256_128: total: - instructions: 1576029658 + instructions: 1413111739 heap_increase: 0 stable_memory_increase: 90 scopes: {} btreemap_v1_insert_blob_32_1024: total: - instructions: 584220763 + instructions: 632307971 heap_increase: 0 stable_memory_increase: 230 scopes: {} btreemap_v1_insert_blob_32_128: total: - instructions: 423534612 + instructions: 475337286 heap_increase: 0 stable_memory_increase: 37 scopes: {} btreemap_v1_insert_blob_32_16: total: - instructions: 405329416 + instructions: 452118398 heap_increase: 0 stable_memory_increase: 14 scopes: {} btreemap_v1_insert_blob_32_256: total: - instructions: 453509950 + instructions: 502869401 heap_increase: 0 stable_memory_increase: 66 scopes: {} btreemap_v1_insert_blob_32_32: total: - instructions: 407982201 + instructions: 456827298 heap_increase: 0 stable_memory_increase: 17 scopes: {} btreemap_v1_insert_blob_32_4: total: - instructions: 393092021 + instructions: 441367761 heap_increase: 0 stable_memory_increase: 11 scopes: {} btreemap_v1_insert_blob_32_512: total: - instructions: 494442570 + instructions: 544771606 heap_increase: 0 stable_memory_increase: 121 scopes: {} btreemap_v1_insert_blob_32_64: total: - instructions: 411446503 + instructions: 465139431 heap_increase: 0 stable_memory_increase: 24 scopes: {} btreemap_v1_insert_blob_32_8: total: - instructions: 397466462 + instructions: 447170990 heap_increase: 0 stable_memory_increase: 12 scopes: {} btreemap_v1_insert_blob_4_128: total: - instructions: 312941760 + instructions: 384672598 heap_increase: 0 stable_memory_increase: 17 scopes: {} btreemap_v1_insert_blob_512_128: total: - instructions: 2752074589 + instructions: 2355678964 heap_increase: 0 stable_memory_increase: 148 scopes: {} btreemap_v1_insert_blob_64_128: total: - instructions: 669974138 + instructions: 588543826 heap_increase: 0 stable_memory_increase: 46 scopes: {} btreemap_v1_insert_blob_8_128: total: - instructions: 358039235 + instructions: 425034283 heap_increase: 0 stable_memory_increase: 27 scopes: {} btreemap_v1_insert_u64_blob8: total: - instructions: 339684422 + instructions: 426703106 heap_increase: 0 stable_memory_increase: 7 scopes: {} btreemap_v1_insert_u64_u64: total: - instructions: 344884908 + instructions: 432591081 heap_increase: 0 stable_memory_increase: 7 scopes: {} btreemap_v1_pop_first_blob8_u64: total: - instructions: 440442786 + instructions: 472454354 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_1024_128: total: - instructions: 9209904825 + instructions: 5968883226 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_128_128: total: - instructions: 1817203783 + instructions: 1351764916 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_16_128: total: - instructions: 588226778 + instructions: 604940934 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_256_128: total: - instructions: 2895660576 + instructions: 2006348151 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_32_1024: total: - instructions: 955590937 + instructions: 943018826 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_32_128: total: - instructions: 694949290 + instructions: 686775637 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_32_16: total: - instructions: 642191114 + instructions: 629606485 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_32_256: total: - instructions: 731539216 + instructions: 720864823 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_32_32: total: - instructions: 651380687 + instructions: 639564112 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_32_4: total: - instructions: 623771279 + instructions: 613328648 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_32_512: total: - instructions: 797530494 + instructions: 789611286 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_32_64: total: - instructions: 661830735 + instructions: 652639140 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_32_8: total: - instructions: 637746040 + instructions: 629078870 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_4_128: total: - instructions: 278931792 + instructions: 313307630 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_512_128: total: - instructions: 4985295219 + instructions: 3330221349 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_64_128: total: - instructions: 1148964543 + instructions: 849184741 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_blob_8_128: total: - instructions: 464938767 + instructions: 498913893 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_u64_blob8: total: - instructions: 552760738 + instructions: 628199923 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_first_u64_u64: total: - instructions: 555550289 + instructions: 632530383 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob8_u64: total: - instructions: 425558322 + instructions: 451460019 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_1024_128: total: - instructions: 9026857390 + instructions: 5651998304 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_128_128: total: - instructions: 1771818496 + instructions: 1286463073 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_16_128: total: - instructions: 578504524 + instructions: 578841691 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_256_128: total: - instructions: 2829333178 + instructions: 1899750937 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_32_1024: total: - instructions: 935766058 + instructions: 912952383 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_32_128: total: - instructions: 672669373 + instructions: 656566327 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_32_16: total: - instructions: 622149789 + instructions: 599383690 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_32_256: total: - instructions: 710485425 + instructions: 690485560 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_32_32: total: - instructions: 632078429 + instructions: 610564917 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_32_4: total: - instructions: 609993537 + instructions: 588183759 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_32_512: total: - instructions: 779152304 + instructions: 761717517 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_32_64: total: - instructions: 642285310 + instructions: 624086352 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_32_8: total: - instructions: 616068670 + instructions: 600304042 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_4_128: total: - instructions: 271362314 + instructions: 300227276 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_512_128: total: - instructions: 4875145521 + instructions: 3165558118 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_64_128: total: - instructions: 1118455938 + instructions: 812589058 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_blob_8_128: total: - instructions: 461614248 + instructions: 485071081 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_u64_blob8: total: - instructions: 540607851 + instructions: 603958429 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_pop_last_u64_u64: total: - instructions: 543112821 + instructions: 609425522 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob8_u64: total: - instructions: 439863392 + instructions: 530376899 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_1024_128: total: - instructions: 6329350311 + instructions: 5925140748 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_128_128: total: - instructions: 1320296970 + instructions: 1318610652 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_16_128: total: - instructions: 539004547 + instructions: 622048950 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_256_128: total: - instructions: 2044963965 + instructions: 1959851216 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_32_1024: total: - instructions: 825632231 + instructions: 898368311 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_32_128: total: - instructions: 588789993 + instructions: 664214259 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_32_16: total: - instructions: 545908410 + instructions: 619816674 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_32_256: total: - instructions: 625265227 + instructions: 700002324 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_32_32: total: - instructions: 553650900 + instructions: 629240192 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_32_4: total: - instructions: 537395900 + instructions: 612056855 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_32_512: total: - instructions: 696535326 + instructions: 772784434 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_32_64: total: - instructions: 574620363 + instructions: 654345614 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_32_8: total: - instructions: 538139629 + instructions: 613546662 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_4_128: total: - instructions: 342732420 + instructions: 416425733 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_512_128: total: - instructions: 3454094220 + instructions: 3308478672 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_64_128: total: - instructions: 875777361 + instructions: 811561284 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_blob_8_128: total: - instructions: 470018886 + instructions: 557257050 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_u64_blob8: total: - instructions: 485913516 + instructions: 602567622 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v1_remove_u64_u64: total: - instructions: 499266505 + instructions: 617973106 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_10mib_values: total: - instructions: 142213004 + instructions: 142229058 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob8_u64: total: - instructions: 277713087 + instructions: 292071256 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_1024_128: total: - instructions: 4897884819 + instructions: 3004678141 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_128_128: total: - instructions: 925983020 + instructions: 665016023 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_16_128: total: - instructions: 304185180 + instructions: 299266114 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_256_128: total: - instructions: 1482592583 + instructions: 985524245 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_1024: total: - instructions: 334889492 + instructions: 317750197 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_128: total: - instructions: 332336378 + instructions: 317486525 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_16: total: - instructions: 336647532 + instructions: 316913507 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_256: total: - instructions: 336952134 + instructions: 319375798 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_32: total: - instructions: 337767804 + instructions: 321175428 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_4: total: - instructions: 333734209 + instructions: 317302163 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_512: total: - instructions: 332809414 + instructions: 317454763 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_64: total: - instructions: 335145674 + instructions: 320828457 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_8: total: - instructions: 334699459 + instructions: 318450047 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_4_128: total: - instructions: 244876846 + instructions: 264127393 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_512_128: total: - instructions: 2624677444 + instructions: 1657176786 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_64_128: total: - instructions: 584178824 + instructions: 400794429 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_8_128: total: - instructions: 268359561 + instructions: 280164328 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_u64_blob8: total: - instructions: 234897323 + instructions: 249345668 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_u64_u64: total: - instructions: 236421608 + instructions: 255212854 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_u64_vec8: total: - instructions: 234897338 + instructions: 249345668 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec8_u64: total: - instructions: 366491431 + instructions: 331414697 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_1024_128: total: - instructions: 2875641971 + instructions: 1843552548 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_128_128: total: - instructions: 698056573 + instructions: 559068813 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_16_128: total: - instructions: 430496510 + instructions: 379282562 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_256_128: total: - instructions: 1220085542 + instructions: 913001425 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_1024: total: - instructions: 573798539 + instructions: 512588096 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_128: total: - instructions: 488603839 + instructions: 433820781 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_16: total: - instructions: 408307710 + instructions: 363297614 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_256: total: - instructions: 521878485 + instructions: 441973791 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_32: total: - instructions: 408806200 + instructions: 363312712 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_4: total: - instructions: 407179812 + instructions: 362491802 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_512: total: - instructions: 536998195 + instructions: 477204790 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_64: total: - instructions: 463602926 + instructions: 403341248 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_8: total: - instructions: 407102811 + instructions: 362531723 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_4_128: total: - instructions: 397153848 + instructions: 352494755 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_512_128: total: - instructions: 1812299060 + instructions: 1272734638 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_64_128: total: - instructions: 594729377 + instructions: 508397924 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_8_128: total: - instructions: 388847731 + instructions: 350968224 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_10mib_values: total: - instructions: 1227472657 + instructions: 1227489035 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob8_u64: total: - instructions: 297139911 + instructions: 304816032 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_1024_128: total: - instructions: 4953924210 + instructions: 3144320444 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_128_128: total: - instructions: 947186495 + instructions: 698826651 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_16_128: total: - instructions: 317354417 + instructions: 313298866 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_256_128: total: - instructions: 1507431266 + instructions: 1032439290 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_1024: total: - instructions: 353756221 + instructions: 338180223 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_128: total: - instructions: 345894163 + instructions: 332624198 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_16: total: - instructions: 346953462 + instructions: 328919681 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_256: total: - instructions: 351580221 + instructions: 335563422 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_32: total: - instructions: 348889561 + instructions: 333781460 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_4: total: - instructions: 343473664 + instructions: 328246778 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_512: total: - instructions: 348929751 + instructions: 335192871 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_64: total: - instructions: 347119635 + instructions: 334932529 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_8: total: - instructions: 345315038 + instructions: 329900204 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_4_128: total: - instructions: 257370621 + instructions: 276743152 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_512_128: total: - instructions: 2659912132 + instructions: 1734963607 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_64_128: total: - instructions: 601774814 + instructions: 425486333 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_8_128: total: - instructions: 281640219 + instructions: 293940212 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_u64_blob8: total: - instructions: 245362209 + instructions: 260251406 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_u64_u64: total: - instructions: 249268645 + instructions: 268110583 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_u64_vec8: total: - instructions: 246137433 + instructions: 261065188 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec8_u64: total: - instructions: 376858286 + instructions: 343885017 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_1024_128: total: - instructions: 2921959775 + instructions: 1892468068 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_128_128: total: - instructions: 710827388 + instructions: 571871925 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_16_128: total: - instructions: 440398211 + instructions: 390610021 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_256_128: total: - instructions: 1233367092 + instructions: 926323429 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_1024: total: - instructions: 606431114 + instructions: 555478534 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_128: total: - instructions: 498908637 + instructions: 444489523 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_16: total: - instructions: 416949497 + instructions: 371411562 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_256: total: - instructions: 539821398 + instructions: 460059095 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_32: total: - instructions: 417020079 + instructions: 371559358 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_4: total: - instructions: 415119023 + instructions: 370813831 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_512: total: - instructions: 558783250 + instructions: 499706941 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_64: total: - instructions: 472181771 + instructions: 412299789 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_8: total: - instructions: 415079885 + instructions: 370858341 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_4_128: total: - instructions: 407056995 + instructions: 363440040 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_512_128: total: - instructions: 1825704224 + instructions: 1285923842 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_64_128: total: - instructions: 606201847 + instructions: 519684483 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_8_128: total: - instructions: 398653757 + instructions: 361789415 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_insert_10mib_values: total: - instructions: 5236275168 + instructions: 5236020394 heap_increase: 322 stable_memory_increase: 3613 scopes: {} btreemap_v2_insert_blob8_u64: total: - instructions: 440861921 + instructions: 501716659 heap_increase: 0 stable_memory_increase: 4 scopes: {} btreemap_v2_insert_blob_1024_128: total: - instructions: 5104008235 + instructions: 4298409341 heap_increase: 0 stable_memory_increase: 196 scopes: {} btreemap_v2_insert_blob_128_128: total: - instructions: 1133684047 + instructions: 1062334322 heap_increase: 0 stable_memory_increase: 46 scopes: {} btreemap_v2_insert_blob_16_128: total: - instructions: 494767992 + instructions: 550033663 heap_increase: 0 stable_memory_increase: 24 scopes: {} btreemap_v2_insert_blob_256_128: total: - instructions: 1683872591 + instructions: 1517044762 heap_increase: 0 stable_memory_increase: 67 scopes: {} btreemap_v2_insert_blob_32_1024: total: - instructions: 687122501 + instructions: 732784071 heap_increase: 0 stable_memory_increase: 173 scopes: {} btreemap_v2_insert_blob_32_128: total: - instructions: 529123151 + instructions: 577281316 heap_increase: 0 stable_memory_increase: 28 scopes: {} btreemap_v2_insert_blob_32_16: total: - instructions: 508434265 + instructions: 555235014 heap_increase: 0 stable_memory_increase: 11 scopes: {} btreemap_v2_insert_blob_32_256: total: - instructions: 560318876 + instructions: 603441750 heap_increase: 0 stable_memory_increase: 49 scopes: {} btreemap_v2_insert_blob_32_32: total: - instructions: 514031722 + instructions: 560817016 heap_increase: 0 stable_memory_increase: 13 scopes: {} btreemap_v2_insert_blob_32_4: total: - instructions: 496606631 + instructions: 544048239 heap_increase: 0 stable_memory_increase: 8 scopes: {} btreemap_v2_insert_blob_32_512: total: - instructions: 597566604 + instructions: 645074828 heap_increase: 0 stable_memory_increase: 91 scopes: {} btreemap_v2_insert_blob_32_64: total: - instructions: 519519045 + instructions: 567941552 heap_increase: 0 stable_memory_increase: 18 scopes: {} btreemap_v2_insert_blob_32_8: total: - instructions: 503751175 + instructions: 549794717 heap_increase: 0 stable_memory_increase: 9 scopes: {} btreemap_v2_insert_blob_4_128: total: - instructions: 410411924 + instructions: 477592446 heap_increase: 0 stable_memory_increase: 13 scopes: {} btreemap_v2_insert_blob_512_128: total: - instructions: 2855055481 + instructions: 2459054925 heap_increase: 0 stable_memory_increase: 111 scopes: {} btreemap_v2_insert_blob_64_128: total: - instructions: 777536947 + instructions: 691018270 heap_increase: 0 stable_memory_increase: 34 scopes: {} btreemap_v2_insert_blob_8_128: total: - instructions: 462943497 + instructions: 524164752 heap_increase: 0 stable_memory_increase: 20 scopes: {} btreemap_v2_insert_u64_blob8: total: - instructions: 422654181 + instructions: 491247984 heap_increase: 0 stable_memory_increase: 5 scopes: {} btreemap_v2_insert_u64_u64: total: - instructions: 431497067 + instructions: 500866926 heap_increase: 0 stable_memory_increase: 6 scopes: {} btreemap_v2_insert_u64_vec8: total: - instructions: 429929989 + instructions: 501307103 heap_increase: 0 stable_memory_increase: 21 scopes: {} btreemap_v2_insert_vec8_u64: total: - instructions: 581931268 + instructions: 614982299 heap_increase: 0 stable_memory_increase: 16 scopes: {} btreemap_v2_insert_vec_1024_128: total: - instructions: 3318166891 + instructions: 2789610913 heap_increase: 0 stable_memory_increase: 193 scopes: {} btreemap_v2_insert_vec_128_128: total: - instructions: 1095306451 + instructions: 1042177787 heap_increase: 0 stable_memory_increase: 51 scopes: {} btreemap_v2_insert_vec_16_128: total: - instructions: 703253294 + instructions: 738414762 heap_increase: 0 stable_memory_increase: 31 scopes: {} btreemap_v2_insert_vec_256_128: total: - instructions: 1506010620 + instructions: 1423894681 heap_increase: 0 stable_memory_increase: 71 scopes: {} btreemap_v2_insert_vec_32_1024: total: - instructions: 1221769507 + instructions: 1243910406 heap_increase: 0 stable_memory_increase: 171 scopes: {} btreemap_v2_insert_vec_32_128: total: - instructions: 761626630 + instructions: 782955660 heap_increase: 0 stable_memory_increase: 33 scopes: {} btreemap_v2_insert_vec_32_16: total: - instructions: 663288909 + instructions: 690772545 heap_increase: 0 stable_memory_increase: 20 scopes: {} btreemap_v2_insert_vec_32_256: total: - instructions: 890332939 + instructions: 906365509 heap_increase: 0 stable_memory_increase: 54 scopes: {} btreemap_v2_insert_vec_32_32: total: - instructions: 666181941 + instructions: 684749908 heap_increase: 0 stable_memory_increase: 20 scopes: {} btreemap_v2_insert_vec_32_4: total: - instructions: 660361307 + instructions: 684856776 heap_increase: 0 stable_memory_increase: 20 scopes: {} btreemap_v2_insert_vec_32_512: total: - instructions: 1008642945 + instructions: 1026119993 heap_increase: 0 stable_memory_increase: 91 scopes: {} btreemap_v2_insert_vec_32_64: total: - instructions: 692118095 + instructions: 716558458 heap_increase: 0 stable_memory_increase: 24 scopes: {} btreemap_v2_insert_vec_32_8: total: - instructions: 660131454 + instructions: 684037572 heap_increase: 0 stable_memory_increase: 20 scopes: {} btreemap_v2_insert_vec_4_128: total: - instructions: 608604433 + instructions: 648407960 heap_increase: 0 stable_memory_increase: 16 scopes: {} btreemap_v2_insert_vec_512_128: total: - instructions: 2126953494 + instructions: 1901572280 heap_increase: 0 stable_memory_increase: 112 scopes: {} btreemap_v2_insert_vec_64_128: total: - instructions: 880172928 + instructions: 873371621 heap_increase: 0 stable_memory_increase: 41 scopes: {} btreemap_v2_insert_vec_8_128: total: - instructions: 666246354 + instructions: 707096235 heap_increase: 0 stable_memory_increase: 23 scopes: {} btreemap_v2_mem_manager_contains_blob512_u64: total: - instructions: 2717630382 + instructions: 1775949161 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_contains_u64_blob512: total: - instructions: 311110875 + instructions: 311272695 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_contains_u64_u64: total: - instructions: 316773716 + instructions: 317156841 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_contains_u64_vec512: total: - instructions: 395734654 + instructions: 400392398 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_contains_vec512_u64: total: - instructions: 1754766489 + instructions: 1258425858 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_blob512_u64: total: - instructions: 2762707145 + instructions: 1863808659 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_u64_blob512: total: - instructions: 327868758 + instructions: 329294891 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_u64_u64: total: - instructions: 329806410 + instructions: 331652326 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_u64_vec512: total: - instructions: 422661515 + instructions: 427935018 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_vec512_u64: total: - instructions: 1792390521 + instructions: 1303577687 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_blob512_u64: total: - instructions: 2959846456 + instructions: 2597565947 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_u64_blob512: total: - instructions: 647064908 + instructions: 707049704 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_u64_u64: total: - instructions: 560862124 + instructions: 621126909 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_u64_vec512: total: - instructions: 901842874 + instructions: 960296871 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_vec512_u64: total: - instructions: 2241199345 + instructions: 2031591198 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_blob512_u64: total: - instructions: 3847539272 + instructions: 3736567051 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_u64_blob512: total: - instructions: 947364196 + instructions: 1034958115 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_u64_u64: total: - instructions: 807405593 + instructions: 892052152 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_u64_vec512: total: - instructions: 1287069190 + instructions: 1375819243 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_vec512_u64: total: - instructions: 3316383884 + instructions: 3198591960 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob8_u64: total: - instructions: 608291661 + instructions: 629253248 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_1024_128: total: - instructions: 9398188467 + instructions: 6147001197 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_128_128: total: - instructions: 2007415368 + instructions: 1531908056 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_16_128: total: - instructions: 757418966 + instructions: 765283250 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_256_128: total: - instructions: 3093785202 + instructions: 2185233950 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_1024: total: - instructions: 1132453514 + instructions: 1116736838 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_128: total: - instructions: 876371666 + instructions: 860692670 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_16: total: - instructions: 819915570 + instructions: 802464245 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_256: total: - instructions: 907503803 + instructions: 892952288 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_32: total: - instructions: 831628016 + instructions: 811824098 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_4: total: - instructions: 802089971 + instructions: 786045356 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_512: total: - instructions: 973265656 + instructions: 960837938 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_64: total: - instructions: 838693246 + instructions: 823444657 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_8: total: - instructions: 818463740 + instructions: 802974323 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_4_128: total: - instructions: 371985311 + instructions: 399711532 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_512_128: total: - instructions: 5172264944 + instructions: 3509572847 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_64_128: total: - instructions: 1328879808 + instructions: 1025420211 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_8_128: total: - instructions: 611407092 + instructions: 634095102 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_u64_blob8: total: - instructions: 705248265 + instructions: 753793039 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_u64_u64: total: - instructions: 717329877 + instructions: 768155629 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_u64_vec8: total: - instructions: 709593211 + instructions: 757240426 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec8_u64: total: - instructions: 782287090 + instructions: 732991720 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_1024_128: total: - instructions: 5762265936 + instructions: 4085915603 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_128_128: total: - instructions: 1815546654 + instructions: 1538597561 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_16_128: total: - instructions: 1024443186 + instructions: 969028764 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_256_128: total: - instructions: 2528307535 + instructions: 2055957144 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_1024: total: - instructions: 1811350791 + instructions: 1717441040 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_128: total: - instructions: 1204814177 + instructions: 1114978395 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_16: total: - instructions: 1039338017 + instructions: 961475566 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_256: total: - instructions: 1326543051 + instructions: 1243299725 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_32: total: - instructions: 1055530159 + instructions: 955175429 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_4: total: - instructions: 1038272566 + instructions: 948465621 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_512: total: - instructions: 1489882556 + instructions: 1398936327 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_64: total: - instructions: 1089756943 + instructions: 1002725828 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_8: total: - instructions: 1050176827 + instructions: 959526555 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_4_128: total: - instructions: 537424590 + instructions: 519693694 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_512_128: total: - instructions: 3599302571 + instructions: 2758195778 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_64_128: total: - instructions: 1401892097 + instructions: 1262234043 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_8_128: total: - instructions: 845504240 + instructions: 808949551 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob8_u64: total: - instructions: 592362547 + instructions: 605594719 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_1024_128: total: - instructions: 9219664993 + instructions: 5830793696 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_128_128: total: - instructions: 1958516704 + instructions: 1465499866 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_16_128: total: - instructions: 738623015 + instructions: 738880823 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_256_128: total: - instructions: 3020531374 + instructions: 2079294367 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_1024: total: - instructions: 1112565103 + instructions: 1085669333 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_128: total: - instructions: 854347996 + instructions: 830643675 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_16: total: - instructions: 798819036 + instructions: 769688933 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_256: total: - instructions: 886655814 + instructions: 861919416 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_32: total: - instructions: 810795267 + instructions: 780760100 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_4: total: - instructions: 787773511 + instructions: 760677261 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_512: total: - instructions: 955218753 + instructions: 933506500 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_64: total: - instructions: 820640883 + instructions: 795410677 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_8: total: - instructions: 797866752 + instructions: 771816802 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_4_128: total: - instructions: 363658412 + instructions: 386661070 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_512_128: total: - instructions: 5053410203 + instructions: 3345362741 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_64_128: total: - instructions: 1307018060 + instructions: 990351700 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_8_128: total: - instructions: 611183029 + instructions: 624461847 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_u64_blob8: total: - instructions: 692886714 + instructions: 729066416 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_u64_u64: total: - instructions: 704577983 + instructions: 743800192 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_u64_vec8: total: - instructions: 695997588 + instructions: 731910124 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec8_u64: total: - instructions: 763627664 + instructions: 708957905 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_1024_128: total: - instructions: 6009852618 + instructions: 4313316700 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_128_128: total: - instructions: 1829432194 + instructions: 1552648335 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_16_128: total: - instructions: 1012645478 + instructions: 947358933 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_256_128: total: - instructions: 2581611468 + instructions: 2129557691 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_1024: total: - instructions: 1806174004 + instructions: 1698443491 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_128: total: - instructions: 1204020271 + instructions: 1096848946 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_16: total: - instructions: 1028212700 + instructions: 941209083 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_256: total: - instructions: 1324004314 + instructions: 1226663580 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_32: total: - instructions: 1043904024 + instructions: 936303418 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_4: total: - instructions: 1036623333 + instructions: 934258686 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_512: total: - instructions: 1490189536 + instructions: 1389566809 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_64: total: - instructions: 1084539473 + instructions: 983167413 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_8: total: - instructions: 1038381761 + instructions: 937711654 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_4_128: total: - instructions: 528568472 + instructions: 504246189 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_512_128: total: - instructions: 3722254862 + instructions: 2873424953 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_64_128: total: - instructions: 1415401855 + instructions: 1255974553 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_8_128: total: - instructions: 853141400 + instructions: 801484501 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_count_1k_0b: total: - instructions: 16871 + instructions: 20115 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_count_1k_10kib: total: - instructions: 2440306 + instructions: 2986687 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_count_20_10mib: total: - instructions: 20572482 + instructions: 20584404 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_key_sum_1k_0b: total: - instructions: 17405 + instructions: 20531 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_key_sum_1k_10kib: total: - instructions: 57254917 + instructions: 57677193 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_key_sum_20_10mib: total: - instructions: 1105826146 + instructions: 1105836590 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_value_sum_1k_0b: total: - instructions: 17419 + instructions: 20545 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_value_sum_1k_10kib: total: - instructions: 57266913 + instructions: 57689189 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_value_sum_20_10mib: total: - instructions: 1105826382 + instructions: 1105836826 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_10mib_values: total: - instructions: 5561337528 + instructions: 5561272860 heap_increase: 0 stable_memory_increase: 657 scopes: {} btreemap_v2_remove_blob8_u64: total: - instructions: 587148004 + instructions: 667900563 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_1024_128: total: - instructions: 6474121980 + instructions: 6063706104 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_128_128: total: - instructions: 1466116527 + instructions: 1457463878 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_16_128: total: - instructions: 680002778 + instructions: 757672413 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_256_128: total: - instructions: 2195216146 + instructions: 2098091924 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_1024: total: - instructions: 965884145 + instructions: 1036297823 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_128: total: - instructions: 731104519 + instructions: 801420541 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_16: total: - instructions: 687174807 + instructions: 755774413 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_256: total: - instructions: 765993244 + instructions: 837217335 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_32: total: - instructions: 695978850 + instructions: 765911420 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_4: total: - instructions: 679309614 + instructions: 750822623 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_512: total: - instructions: 837922200 + instructions: 911302025 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_64: total: - instructions: 720007632 + instructions: 793243985 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_8: total: - instructions: 679954161 + instructions: 749626337 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_4_128: total: - instructions: 455500782 + instructions: 522538214 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_512_128: total: - instructions: 3600501128 + instructions: 3448674395 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_64_128: total: - instructions: 1020115077 + instructions: 947748278 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_8_128: total: - instructions: 607878082 + instructions: 685714058 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_u64_blob8: total: - instructions: 597535434 + instructions: 689441571 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_u64_u64: total: - instructions: 619080526 + instructions: 712995636 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_u64_vec8: total: - instructions: 603458045 + instructions: 695853424 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec8_u64: total: - instructions: 750426147 + instructions: 804496668 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_1024_128: total: - instructions: 5020456905 + instructions: 4560037620 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_128_128: total: - instructions: 1451042556 + instructions: 1473629560 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_16_128: total: - instructions: 907590325 + instructions: 971674171 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_256_128: total: - instructions: 2313326693 + instructions: 2293167894 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_1024: total: - instructions: 1673021222 + instructions: 1732355221 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_128: total: - instructions: 1010534168 + instructions: 1069927739 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_16: total: - instructions: 834640728 + instructions: 890477096 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_256: total: - instructions: 1228590016 + instructions: 1280544115 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_32: total: - instructions: 841144006 + instructions: 897812266 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_4: total: - instructions: 839617721 + instructions: 896826883 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_512: total: - instructions: 1392150674 + instructions: 1443936645 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_64: total: - instructions: 923615504 + instructions: 979473079 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_8: total: - instructions: 833306650 + instructions: 890819873 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_4_128: total: - instructions: 649594780 + instructions: 687282319 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_512_128: total: - instructions: 3264643019 + instructions: 3130403453 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_64_128: total: - instructions: 1178301615 + instructions: 1192475703 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_8_128: total: - instructions: 819927738 + instructions: 877067292 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_iter_1k_0b: total: - instructions: 1493458 + instructions: 1981104 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_iter_1k_10kib: total: - instructions: 57069957 + instructions: 57549224 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_iter_20_10mib: total: - instructions: 1103719699 + instructions: 1103729363 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_iter_rev_1k_0b: total: - instructions: 1495597 + instructions: 1981815 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_iter_rev_1k_10kib: total: - instructions: 57047594 + instructions: 57530291 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_iter_rev_20_10mib: total: - instructions: 1103719281 + instructions: 1103728938 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_keys_1k_0b: total: - instructions: 946083 + instructions: 1551166 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_keys_1k_10kib: total: - instructions: 2359607 + instructions: 2958502 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_keys_20_10mib: total: - instructions: 18465439 + instructions: 18477478 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_keys_rev_1k_0b: total: - instructions: 963320 + instructions: 1552873 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_keys_rev_1k_10kib: total: - instructions: 2355505 + instructions: 2941017 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_keys_rev_20_10mib: total: - instructions: 18465774 + instructions: 18477506 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_values_1k_0b: total: - instructions: 1490856 + instructions: 1941502 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_values_1k_10kib: total: - instructions: 57067355 + instructions: 57509622 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_values_20_10mib: total: - instructions: 1103719649 + instructions: 1103728573 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_values_rev_1k_0b: total: - instructions: 1492995 + instructions: 1942213 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_values_rev_1k_10kib: total: - instructions: 57044992 + instructions: 57490689 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_values_rev_20_10mib: total: - instructions: 1103719231 + instructions: 1103728148 heap_increase: 0 stable_memory_increase: 0 scopes: {} From 3a633d14b05e63137dcc61def9fa4a90b1461c25 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Thu, 15 May 2025 14:06:12 +0200 Subject: [PATCH 52/68] rm v1 --- benchmarks/src/btreemap.rs | 219 ------------------------------------- 1 file changed, 219 deletions(-) diff --git a/benchmarks/src/btreemap.rs b/benchmarks/src/btreemap.rs index 47d8b3ec..46746a36 100644 --- a/benchmarks/src/btreemap.rs +++ b/benchmarks/src/btreemap.rs @@ -69,37 +69,6 @@ fn generate_random_blocks(count: usize, block_size: usize, rng: &mut Rng) -> Vec // Benchmarks for `BTreeMap::insert`. bench_tests! { - // === V1 === - - // V1 blob K x 128 - btreemap_v1_insert_blob_4_128, insert_helper_v1, Blob4, Blob128; - btreemap_v1_insert_blob_8_128, insert_helper_v1, Blob8, Blob128; - btreemap_v1_insert_blob_16_128, insert_helper_v1, Blob16, Blob128; - btreemap_v1_insert_blob_32_128, insert_helper_v1, Blob32, Blob128; - btreemap_v1_insert_blob_64_128, insert_helper_v1, Blob64, Blob128; - btreemap_v1_insert_blob_128_128, insert_helper_v1, Blob128, Blob128; - btreemap_v1_insert_blob_256_128, insert_helper_v1, Blob256, Blob128; - btreemap_v1_insert_blob_512_128, insert_helper_v1, Blob512, Blob128; - btreemap_v1_insert_blob_1024_128, insert_helper_v1, Blob1024, Blob128; - - // V1 blob 32 x V - btreemap_v1_insert_blob_32_4, insert_helper_v1, Blob32, Blob4; - btreemap_v1_insert_blob_32_8, insert_helper_v1, Blob32, Blob8; - btreemap_v1_insert_blob_32_16, insert_helper_v1, Blob32, Blob16; - btreemap_v1_insert_blob_32_32, insert_helper_v1, Blob32, Blob32; - btreemap_v1_insert_blob_32_64, insert_helper_v1, Blob32, Blob64; - //btreemap_v1_insert_blob_32_128, insert_helper_v1, Blob32, Blob128; - btreemap_v1_insert_blob_32_256, insert_helper_v1, Blob32, Blob256; - btreemap_v1_insert_blob_32_512, insert_helper_v1, Blob32, Blob512; - btreemap_v1_insert_blob_32_1024, insert_helper_v1, Blob32, Blob1024; - - // V1 u64 / blob8 - btreemap_v1_insert_u64_u64, insert_helper_v1, u64, u64; - btreemap_v1_insert_u64_blob8, insert_helper_v1, u64, Blob8; - btreemap_v1_insert_blob8_u64, insert_helper_v1, Blob8, u64; - - // === V2 === - // V2 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; @@ -159,11 +128,6 @@ bench_tests! { btreemap_v2_mem_manager_insert_vec512_u64, insert_helper_v2_mem_manager, FixedVec512, u64; } -fn insert_helper_v1() -> BenchResult { - let btree = BTreeMap::new_v1(DefaultMemoryImpl::default()); - insert_helper::(btree) -} - fn insert_helper_v2() -> BenchResult { let btree = BTreeMap::new(DefaultMemoryImpl::default()); insert_helper::(btree) @@ -205,37 +169,6 @@ pub fn btreemap_v2_insert_10mib_values() -> BenchResult { // Benchmarks for `BTreeMap::remove`. bench_tests! { - // === V1 === - - // V1 blob K x 128 - btreemap_v1_remove_blob_4_128, remove_helper_v1, Blob4, Blob128; - btreemap_v1_remove_blob_8_128, remove_helper_v1, Blob8, Blob128; - btreemap_v1_remove_blob_16_128, remove_helper_v1, Blob16, Blob128; - btreemap_v1_remove_blob_32_128, remove_helper_v1, Blob32, Blob128; - btreemap_v1_remove_blob_64_128, remove_helper_v1, Blob64, Blob128; - btreemap_v1_remove_blob_128_128, remove_helper_v1, Blob128, Blob128; - btreemap_v1_remove_blob_256_128, remove_helper_v1, Blob256, Blob128; - btreemap_v1_remove_blob_512_128, remove_helper_v1, Blob512, Blob128; - btreemap_v1_remove_blob_1024_128, remove_helper_v1, Blob1024, Blob128; - - // V1 blob 32 x V - btreemap_v1_remove_blob_32_4, remove_helper_v1, Blob32, Blob4; - btreemap_v1_remove_blob_32_8, remove_helper_v1, Blob32, Blob8; - btreemap_v1_remove_blob_32_16, remove_helper_v1, Blob32, Blob16; - btreemap_v1_remove_blob_32_32, remove_helper_v1, Blob32, Blob32; - btreemap_v1_remove_blob_32_64, remove_helper_v1, Blob32, Blob64; - //btreemap_v1_remove_blob_32_128, remove_helper_v1, Blob32, Blob128; - btreemap_v1_remove_blob_32_256, remove_helper_v1, Blob32, Blob256; - btreemap_v1_remove_blob_32_512, remove_helper_v1, Blob32, Blob512; - btreemap_v1_remove_blob_32_1024, remove_helper_v1, Blob32, Blob1024; - - // V1 u64 / blob8 - btreemap_v1_remove_u64_u64, remove_helper_v1, u64, u64; - btreemap_v1_remove_u64_blob8, remove_helper_v1, u64, Blob8; - btreemap_v1_remove_blob8_u64, remove_helper_v1, Blob8, u64; - - // === V2 === - // V2 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; @@ -295,11 +228,6 @@ bench_tests! { btreemap_v2_mem_manager_remove_vec512_u64, remove_helper_v2_mem_manager, FixedVec512, u64; } -fn remove_helper_v1() -> BenchResult { - let btree = BTreeMap::new_v1(DefaultMemoryImpl::default()); - remove_helper::(btree) -} - fn remove_helper_v2() -> BenchResult { let btree = BTreeMap::new(DefaultMemoryImpl::default()); remove_helper::(btree) @@ -348,37 +276,6 @@ pub fn btreemap_v2_remove_10mib_values() -> BenchResult { // Benchmarks for `BTreeMap::get`. bench_tests! { - // === V1 === - - // V1 blob K x 128 - btreemap_v1_get_blob_4_128, get_helper_v1, Blob4, Blob128; - btreemap_v1_get_blob_8_128, get_helper_v1, Blob8, Blob128; - btreemap_v1_get_blob_16_128, get_helper_v1, Blob16, Blob128; - btreemap_v1_get_blob_32_128, get_helper_v1, Blob32, Blob128; - btreemap_v1_get_blob_64_128, get_helper_v1, Blob64, Blob128; - btreemap_v1_get_blob_128_128, get_helper_v1, Blob128, Blob128; - btreemap_v1_get_blob_256_128, get_helper_v1, Blob256, Blob128; - btreemap_v1_get_blob_512_128, get_helper_v1, Blob512, Blob128; - btreemap_v1_get_blob_1024_128, get_helper_v1, Blob1024, Blob128; - - // V1 blob 32 x V - btreemap_v1_get_blob_32_4, get_helper_v1, Blob32, Blob4; - btreemap_v1_get_blob_32_8, get_helper_v1, Blob32, Blob8; - btreemap_v1_get_blob_32_16, get_helper_v1, Blob32, Blob16; - btreemap_v1_get_blob_32_32, get_helper_v1, Blob32, Blob32; - btreemap_v1_get_blob_32_64, get_helper_v1, Blob32, Blob64; - //btreemap_v1_get_blob_32_128, get_helper_v1, Blob32, Blob128; - btreemap_v1_get_blob_32_256, get_helper_v1, Blob32, Blob256; - btreemap_v1_get_blob_32_512, get_helper_v1, Blob32, Blob512; - btreemap_v1_get_blob_32_1024, get_helper_v1, Blob32, Blob1024; - - // V1 u64 / blob8 - btreemap_v1_get_u64_u64, get_helper_v1, u64, u64; - btreemap_v1_get_u64_blob8, get_helper_v1, u64, Blob8; - btreemap_v1_get_blob8_u64, get_helper_v1, Blob8, u64; - - // === V2 === - // V2 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; @@ -438,11 +335,6 @@ bench_tests! { btreemap_v2_mem_manager_get_vec512_u64, get_helper_v2_mem_manager, FixedVec512, u64; } -fn get_helper_v1() -> BenchResult { - let btree = BTreeMap::new_v1(DefaultMemoryImpl::default()); - get_helper::(btree) -} - fn get_helper_v2() -> BenchResult { let btree = BTreeMap::new(DefaultMemoryImpl::default()); get_helper::(btree) @@ -491,37 +383,6 @@ pub fn btreemap_v2_get_10mib_values() -> BenchResult { // Benchmarks for `BTreeMap::contains_key`. bench_tests! { - // === V1 === - - // V1 blob K x 128 - btreemap_v1_contains_blob_4_128, contains_helper_v1, Blob4, Blob128; - btreemap_v1_contains_blob_8_128, contains_helper_v1, Blob8, Blob128; - btreemap_v1_contains_blob_16_128, contains_helper_v1, Blob16, Blob128; - btreemap_v1_contains_blob_32_128, contains_helper_v1, Blob32, Blob128; - btreemap_v1_contains_blob_64_128, contains_helper_v1, Blob64, Blob128; - btreemap_v1_contains_blob_128_128, contains_helper_v1, Blob128, Blob128; - btreemap_v1_contains_blob_256_128, contains_helper_v1, Blob256, Blob128; - btreemap_v1_contains_blob_512_128, contains_helper_v1, Blob512, Blob128; - btreemap_v1_contains_blob_1024_128, contains_helper_v1, Blob1024, Blob128; - - // V1 blob 32 x V - btreemap_v1_contains_blob_32_4, contains_helper_v1, Blob32, Blob4; - btreemap_v1_contains_blob_32_8, contains_helper_v1, Blob32, Blob8; - btreemap_v1_contains_blob_32_16, contains_helper_v1, Blob32, Blob16; - btreemap_v1_contains_blob_32_32, contains_helper_v1, Blob32, Blob32; - btreemap_v1_contains_blob_32_64, contains_helper_v1, Blob32, Blob64; - //btreemap_v1_contains_blob_32_128, contains_helper_v1, Blob32, Blob128; - btreemap_v1_contains_blob_32_256, contains_helper_v1, Blob32, Blob256; - btreemap_v1_contains_blob_32_512, contains_helper_v1, Blob32, Blob512; - btreemap_v1_contains_blob_32_1024, contains_helper_v1, Blob32, Blob1024; - - // V1 u64 / blob8 - btreemap_v1_contains_u64_u64, contains_helper_v1, u64, u64; - btreemap_v1_contains_u64_blob8, contains_helper_v1, u64, Blob8; - btreemap_v1_contains_blob8_u64, contains_helper_v1, Blob8, u64; - - // === V2 === - // V2 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; @@ -581,11 +442,6 @@ bench_tests! { btreemap_v2_mem_manager_contains_vec512_u64, contains_helper_v2_mem_manager, FixedVec512, u64; } -fn contains_helper_v1() -> BenchResult { - let btree = BTreeMap::new_v1(DefaultMemoryImpl::default()); - contains_helper::(btree) -} - fn contains_helper_v2() -> BenchResult { let btree = BTreeMap::new(DefaultMemoryImpl::default()); contains_helper::(btree) @@ -656,37 +512,6 @@ macro_rules! bench_traversal_tests { // First bench_tests! { - // === V1 === - - // V1 blob K x 128 - btreemap_v1_pop_first_blob_4_128, pop_first_helper_v1, Blob4, Blob128; - btreemap_v1_pop_first_blob_8_128, pop_first_helper_v1, Blob8, Blob128; - btreemap_v1_pop_first_blob_16_128, pop_first_helper_v1, Blob16, Blob128; - btreemap_v1_pop_first_blob_32_128, pop_first_helper_v1, Blob32, Blob128; - btreemap_v1_pop_first_blob_64_128, pop_first_helper_v1, Blob64, Blob128; - btreemap_v1_pop_first_blob_128_128, pop_first_helper_v1, Blob128, Blob128; - btreemap_v1_pop_first_blob_256_128, pop_first_helper_v1, Blob256, Blob128; - btreemap_v1_pop_first_blob_512_128, pop_first_helper_v1, Blob512, Blob128; - btreemap_v1_pop_first_blob_1024_128, pop_first_helper_v1, Blob1024, Blob128; - - // V1 blob 32 x V - btreemap_v1_pop_first_blob_32_4, pop_first_helper_v1, Blob32, Blob4; - btreemap_v1_pop_first_blob_32_8, pop_first_helper_v1, Blob32, Blob8; - btreemap_v1_pop_first_blob_32_16, pop_first_helper_v1, Blob32, Blob16; - btreemap_v1_pop_first_blob_32_32, pop_first_helper_v1, Blob32, Blob32; - btreemap_v1_pop_first_blob_32_64, pop_first_helper_v1, Blob32, Blob64; - //btreemap_v1_pop_first_blob_32_128, pop_first_helper_v1, Blob32, Blob128; - btreemap_v1_pop_first_blob_32_256, pop_first_helper_v1, Blob32, Blob256; - btreemap_v1_pop_first_blob_32_512, pop_first_helper_v1, Blob32, Blob512; - btreemap_v1_pop_first_blob_32_1024, pop_first_helper_v1, Blob32, Blob1024; - - // V1 u64 / blob8 - btreemap_v1_pop_first_u64_u64, pop_first_helper_v1, u64, u64; - btreemap_v1_pop_first_u64_blob8, pop_first_helper_v1, u64, Blob8; - btreemap_v1_pop_first_blob8_u64, pop_first_helper_v1, Blob8, u64; - - // === V2 === - // V2 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; @@ -741,37 +566,6 @@ bench_tests! { // Last bench_tests! { - // === V1 === - - // V1 blob K x 128 - btreemap_v1_pop_last_blob_4_128, pop_last_helper_v1, Blob4, Blob128; - btreemap_v1_pop_last_blob_8_128, pop_last_helper_v1, Blob8, Blob128; - btreemap_v1_pop_last_blob_16_128, pop_last_helper_v1, Blob16, Blob128; - btreemap_v1_pop_last_blob_32_128, pop_last_helper_v1, Blob32, Blob128; - btreemap_v1_pop_last_blob_64_128, pop_last_helper_v1, Blob64, Blob128; - btreemap_v1_pop_last_blob_128_128, pop_last_helper_v1, Blob128, Blob128; - btreemap_v1_pop_last_blob_256_128, pop_last_helper_v1, Blob256, Blob128; - btreemap_v1_pop_last_blob_512_128, pop_last_helper_v1, Blob512, Blob128; - btreemap_v1_pop_last_blob_1024_128, pop_last_helper_v1, Blob1024, Blob128; - - // V1 blob 32 x V - btreemap_v1_pop_last_blob_32_4, pop_last_helper_v1, Blob32, Blob4; - btreemap_v1_pop_last_blob_32_8, pop_last_helper_v1, Blob32, Blob8; - btreemap_v1_pop_last_blob_32_16, pop_last_helper_v1, Blob32, Blob16; - btreemap_v1_pop_last_blob_32_32, pop_last_helper_v1, Blob32, Blob32; - btreemap_v1_pop_last_blob_32_64, pop_last_helper_v1, Blob32, Blob64; - //btreemap_v1_pop_last_blob_32_128, pop_last_helper_v1, Blob32, Blob128; - btreemap_v1_pop_last_blob_32_256, pop_last_helper_v1, Blob32, Blob256; - btreemap_v1_pop_last_blob_32_512, pop_last_helper_v1, Blob32, Blob512; - btreemap_v1_pop_last_blob_32_1024, pop_last_helper_v1, Blob32, Blob1024; - - // V1 u64 / blob8 - btreemap_v1_pop_last_u64_u64, pop_last_helper_v1, u64, u64; - btreemap_v1_pop_last_u64_blob8, pop_last_helper_v1, u64, Blob8; - btreemap_v1_pop_last_blob8_u64, pop_last_helper_v1, Blob8, u64; - - // === V2 === - // V2 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; @@ -824,14 +618,6 @@ bench_tests! { btreemap_v2_pop_last_vec8_u64, pop_last_helper_v2, FixedVec8, u64; } -fn pop_first_helper_v1() -> BenchResult { - pop_helper_v1::(Position::First) -} - -fn pop_last_helper_v1() -> BenchResult { - pop_helper_v1::(Position::Last) -} - fn pop_first_helper_v2() -> BenchResult { pop_helper_v2::(Position::First) } @@ -840,11 +626,6 @@ fn pop_last_helper_v2() -> BenchResult { pop_helper_v2::(Position::Last) } -fn pop_helper_v1(position: Position) -> BenchResult { - let btree = BTreeMap::new_v1(DefaultMemoryImpl::default()); - pop_helper::(btree, position) -} - fn pop_helper_v2(position: Position) -> BenchResult { let btree = BTreeMap::new(DefaultMemoryImpl::default()); pop_helper::(btree, position) From 7adcdab5e56fcd42672c4108dbad774bc955a9e5 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Fri, 16 May 2025 10:57:02 +0200 Subject: [PATCH 53/68] canbench main branch --- scripts/ci_run_benchmark.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/ci_run_benchmark.sh b/scripts/ci_run_benchmark.sh index 51cb842f..28eeeee3 100644 --- a/scripts/ci_run_benchmark.sh +++ b/scripts/ci_run_benchmark.sh @@ -24,7 +24,8 @@ MAIN_BRANCH_RESULTS_FILE="$MAIN_BRANCH_DIR/$CANBENCH_RESULTS_FILE" CANBENCH_RESULTS_CSV_FILE="/tmp/canbench_results_${CANBENCH_JOB_NAME}.csv" # Install canbench. -cargo install --version 0.1.13 canbench +#cargo install --version 0.1.13 canbench +cargo install --git https://github.com/dfinity/canbench --branch main canbench # Verify that the canbench results file exists. if [ ! -f "$CANBENCH_RESULTS_FILE" ]; then From 0919ac146b11eefb841917614569f5948d274327 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Fri, 16 May 2025 11:38:45 +0200 Subject: [PATCH 54/68] --persist --csv --- canbench_results.csv | 730 ++++++++++++++------------------- canbench_results.yml | 940 +++++-------------------------------------- 2 files changed, 415 insertions(+), 1255 deletions(-) diff --git a/canbench_results.csv b/canbench_results.csv index b0399740..012839f9 100644 --- a/canbench_results.csv +++ b/canbench_results.csv @@ -1,425 +1,305 @@ -status,name,instructions,instructions change %,heap_increase,heap_increase change %,stable_memory_increase,stable_memory_increase change % -new,btreemap_v1_contains_blob8_u64,195271021,,0,,0, -new,btreemap_v1_contains_blob_1024_128,4811323110,,0,,0, -new,btreemap_v1_contains_blob_128_128,850930156,,0,,0, -new,btreemap_v1_contains_blob_16_128,226230369,,0,,0, -new,btreemap_v1_contains_blob_256_128,1407896845,,0,,0, -new,btreemap_v1_contains_blob_32_1024,256961773,,0,,0, -new,btreemap_v1_contains_blob_32_128,250177816,,0,,0, -new,btreemap_v1_contains_blob_32_16,261906396,,0,,0, -new,btreemap_v1_contains_blob_32_256,258725278,,0,,0, -new,btreemap_v1_contains_blob_32_32,259151053,,0,,0, -new,btreemap_v1_contains_blob_32_4,257349962,,0,,0, -new,btreemap_v1_contains_blob_32_512,255019597,,0,,0, -new,btreemap_v1_contains_blob_32_64,252217576,,0,,0, -new,btreemap_v1_contains_blob_32_8,252815455,,0,,0, -new,btreemap_v1_contains_blob_4_128,161092850,,0,,0, -new,btreemap_v1_contains_blob_512_128,2540558634,,0,,0, -new,btreemap_v1_contains_blob_64_128,495156778,,0,,0, -new,btreemap_v1_contains_blob_8_128,188138732,,0,,0, -new,btreemap_v1_contains_u64_blob8,166038798,,0,,0, -new,btreemap_v1_contains_u64_u64,167293960,,0,,0, -new,btreemap_v1_get_blob8_u64,203697122,,0,,0, -new,btreemap_v1_get_blob_1024_128,4867663262,,0,,0, -new,btreemap_v1_get_blob_128_128,867834674,,0,,0, -new,btreemap_v1_get_blob_16_128,239293029,,0,,0, -new,btreemap_v1_get_blob_256_128,1431740445,,0,,0, -new,btreemap_v1_get_blob_32_1024,275141698,,0,,0, -new,btreemap_v1_get_blob_32_128,262740541,,0,,0, -new,btreemap_v1_get_blob_32_16,269802882,,0,,0, -new,btreemap_v1_get_blob_32_256,272218440,,0,,0, -new,btreemap_v1_get_blob_32_32,267860063,,0,,0, -new,btreemap_v1_get_blob_32_4,264584535,,0,,0, -new,btreemap_v1_get_blob_32_512,270395928,,0,,0, -new,btreemap_v1_get_blob_32_64,262951923,,0,,0, -new,btreemap_v1_get_blob_32_8,261740283,,0,,0, -new,btreemap_v1_get_blob_4_128,174475611,,0,,0, -new,btreemap_v1_get_blob_512_128,2575484041,,0,,0, -new,btreemap_v1_get_blob_64_128,508829622,,0,,0, -new,btreemap_v1_get_blob_8_128,201098226,,0,,0, -new,btreemap_v1_get_u64_blob8,173677469,,0,,0, -new,btreemap_v1_get_u64_u64,176711268,,0,,0, -new,btreemap_v1_insert_blob8_u64,329934785,,0,,6, -new,btreemap_v1_insert_blob_1024_128,5003142436,,0,,262, -new,btreemap_v1_insert_blob_128_128,1026896477,,0,,61, -new,btreemap_v1_insert_blob_16_128,391208873,,0,,32, -new,btreemap_v1_insert_blob_256_128,1576029658,,0,,90, -new,btreemap_v1_insert_blob_32_1024,584220763,,0,,230, -new,btreemap_v1_insert_blob_32_128,423534612,,0,,37, -new,btreemap_v1_insert_blob_32_16,405329416,,0,,14, -new,btreemap_v1_insert_blob_32_256,453509950,,0,,66, -new,btreemap_v1_insert_blob_32_32,407982201,,0,,17, -new,btreemap_v1_insert_blob_32_4,393092021,,0,,11, -new,btreemap_v1_insert_blob_32_512,494442570,,0,,121, -new,btreemap_v1_insert_blob_32_64,411446503,,0,,24, -new,btreemap_v1_insert_blob_32_8,397466462,,0,,12, -new,btreemap_v1_insert_blob_4_128,312941760,,0,,17, -new,btreemap_v1_insert_blob_512_128,2752074589,,0,,148, -new,btreemap_v1_insert_blob_64_128,669974138,,0,,46, -new,btreemap_v1_insert_blob_8_128,358039235,,0,,27, -new,btreemap_v1_insert_u64_blob8,339684422,,0,,7, -new,btreemap_v1_insert_u64_u64,344884908,,0,,7, -new,btreemap_v1_pop_first_blob8_u64,440442786,,0,,0, -new,btreemap_v1_pop_first_blob_1024_128,9209904825,,0,,0, -new,btreemap_v1_pop_first_blob_128_128,1817203783,,0,,0, -new,btreemap_v1_pop_first_blob_16_128,588226778,,0,,0, -new,btreemap_v1_pop_first_blob_256_128,2895660576,,0,,0, -new,btreemap_v1_pop_first_blob_32_1024,955590937,,0,,0, -new,btreemap_v1_pop_first_blob_32_128,694949290,,0,,0, -new,btreemap_v1_pop_first_blob_32_16,642191114,,0,,0, -new,btreemap_v1_pop_first_blob_32_256,731539216,,0,,0, -new,btreemap_v1_pop_first_blob_32_32,651380687,,0,,0, -new,btreemap_v1_pop_first_blob_32_4,623771279,,0,,0, -new,btreemap_v1_pop_first_blob_32_512,797530494,,0,,0, -new,btreemap_v1_pop_first_blob_32_64,661830735,,0,,0, -new,btreemap_v1_pop_first_blob_32_8,637746040,,0,,0, -new,btreemap_v1_pop_first_blob_4_128,278931792,,0,,0, -new,btreemap_v1_pop_first_blob_512_128,4985295219,,0,,0, -new,btreemap_v1_pop_first_blob_64_128,1148964543,,0,,0, -new,btreemap_v1_pop_first_blob_8_128,464938767,,0,,0, -new,btreemap_v1_pop_first_u64_blob8,552760738,,0,,0, -new,btreemap_v1_pop_first_u64_u64,555550289,,0,,0, -new,btreemap_v1_pop_last_blob8_u64,425558322,,0,,0, -new,btreemap_v1_pop_last_blob_1024_128,9026857390,,0,,0, -new,btreemap_v1_pop_last_blob_128_128,1771818496,,0,,0, -new,btreemap_v1_pop_last_blob_16_128,578504524,,0,,0, -new,btreemap_v1_pop_last_blob_256_128,2829333178,,0,,0, -new,btreemap_v1_pop_last_blob_32_1024,935766058,,0,,0, -new,btreemap_v1_pop_last_blob_32_128,672669373,,0,,0, -new,btreemap_v1_pop_last_blob_32_16,622149789,,0,,0, -new,btreemap_v1_pop_last_blob_32_256,710485425,,0,,0, -new,btreemap_v1_pop_last_blob_32_32,632078429,,0,,0, -new,btreemap_v1_pop_last_blob_32_4,609993537,,0,,0, -new,btreemap_v1_pop_last_blob_32_512,779152304,,0,,0, -new,btreemap_v1_pop_last_blob_32_64,642285310,,0,,0, -new,btreemap_v1_pop_last_blob_32_8,616068670,,0,,0, -new,btreemap_v1_pop_last_blob_4_128,271362314,,0,,0, -new,btreemap_v1_pop_last_blob_512_128,4875145521,,0,,0, -new,btreemap_v1_pop_last_blob_64_128,1118455938,,0,,0, -new,btreemap_v1_pop_last_blob_8_128,461614248,,0,,0, -new,btreemap_v1_pop_last_u64_blob8,540607851,,0,,0, -new,btreemap_v1_pop_last_u64_u64,543112821,,0,,0, -new,btreemap_v1_remove_blob8_u64,439863392,,0,,0, -new,btreemap_v1_remove_blob_1024_128,6329350311,,0,,0, -new,btreemap_v1_remove_blob_128_128,1320296970,,0,,0, -new,btreemap_v1_remove_blob_16_128,539004547,,0,,0, -new,btreemap_v1_remove_blob_256_128,2044963965,,0,,0, -new,btreemap_v1_remove_blob_32_1024,825632231,,0,,0, -new,btreemap_v1_remove_blob_32_128,588789993,,0,,0, -new,btreemap_v1_remove_blob_32_16,545908410,,0,,0, -new,btreemap_v1_remove_blob_32_256,625265227,,0,,0, -new,btreemap_v1_remove_blob_32_32,553650900,,0,,0, -new,btreemap_v1_remove_blob_32_4,537395900,,0,,0, -new,btreemap_v1_remove_blob_32_512,696535326,,0,,0, -new,btreemap_v1_remove_blob_32_64,574620363,,0,,0, -new,btreemap_v1_remove_blob_32_8,538139629,,0,,0, -new,btreemap_v1_remove_blob_4_128,342732420,,0,,0, -new,btreemap_v1_remove_blob_512_128,3454094220,,0,,0, -new,btreemap_v1_remove_blob_64_128,875777361,,0,,0, -new,btreemap_v1_remove_blob_8_128,470018886,,0,,0, -new,btreemap_v1_remove_u64_blob8,485913516,,0,,0, -new,btreemap_v1_remove_u64_u64,499266505,,0,,0, -new,btreemap_v2_contains_10mib_values,142213004,,0,,0, -new,btreemap_v2_contains_blob8_u64,277713087,,0,,0, -new,btreemap_v2_contains_blob_1024_128,4897884819,,0,,0, -new,btreemap_v2_contains_blob_128_128,925983020,,0,,0, -new,btreemap_v2_contains_blob_16_128,304185180,,0,,0, -new,btreemap_v2_contains_blob_256_128,1482592583,,0,,0, -new,btreemap_v2_contains_blob_32_1024,334889492,,0,,0, -new,btreemap_v2_contains_blob_32_128,332336378,,0,,0, -new,btreemap_v2_contains_blob_32_16,336647532,,0,,0, -new,btreemap_v2_contains_blob_32_256,336952134,,0,,0, -new,btreemap_v2_contains_blob_32_32,337767804,,0,,0, -new,btreemap_v2_contains_blob_32_4,333734209,,0,,0, -new,btreemap_v2_contains_blob_32_512,332809414,,0,,0, -new,btreemap_v2_contains_blob_32_64,335145674,,0,,0, -new,btreemap_v2_contains_blob_32_8,334699459,,0,,0, -new,btreemap_v2_contains_blob_4_128,244876846,,0,,0, -new,btreemap_v2_contains_blob_512_128,2624677444,,0,,0, -new,btreemap_v2_contains_blob_64_128,584178824,,0,,0, -new,btreemap_v2_contains_blob_8_128,268359561,,0,,0, -new,btreemap_v2_contains_u64_blob8,234897323,,0,,0, -new,btreemap_v2_contains_u64_u64,236421608,,0,,0, -new,btreemap_v2_contains_u64_vec8,234897338,,0,,0, -new,btreemap_v2_contains_vec8_u64,366491431,,0,,0, -new,btreemap_v2_contains_vec_1024_128,2875641971,,0,,0, -new,btreemap_v2_contains_vec_128_128,698056573,,0,,0, -new,btreemap_v2_contains_vec_16_128,430496510,,0,,0, -new,btreemap_v2_contains_vec_256_128,1220085542,,0,,0, -new,btreemap_v2_contains_vec_32_1024,573798539,,0,,0, -new,btreemap_v2_contains_vec_32_128,488603839,,0,,0, -new,btreemap_v2_contains_vec_32_16,408307710,,0,,0, -new,btreemap_v2_contains_vec_32_256,521878485,,0,,0, -new,btreemap_v2_contains_vec_32_32,408806200,,0,,0, -new,btreemap_v2_contains_vec_32_4,407179812,,0,,0, -new,btreemap_v2_contains_vec_32_512,536998195,,0,,0, -new,btreemap_v2_contains_vec_32_64,463602926,,0,,0, -new,btreemap_v2_contains_vec_32_8,407102811,,0,,0, -new,btreemap_v2_contains_vec_4_128,397153848,,0,,0, -new,btreemap_v2_contains_vec_512_128,1812299060,,0,,0, -new,btreemap_v2_contains_vec_64_128,594729377,,0,,0, -new,btreemap_v2_contains_vec_8_128,388847731,,0,,0, -new,btreemap_v2_get_10mib_values,1227472657,,0,,0, -new,btreemap_v2_get_blob8_u64,297139911,,0,,0, -new,btreemap_v2_get_blob_1024_128,4953924210,,0,,0, -new,btreemap_v2_get_blob_128_128,947186495,,0,,0, -new,btreemap_v2_get_blob_16_128,317354417,,0,,0, -new,btreemap_v2_get_blob_256_128,1507431266,,0,,0, -new,btreemap_v2_get_blob_32_1024,353756221,,0,,0, -new,btreemap_v2_get_blob_32_128,345894163,,0,,0, -new,btreemap_v2_get_blob_32_16,346953462,,0,,0, -new,btreemap_v2_get_blob_32_256,351580221,,0,,0, -new,btreemap_v2_get_blob_32_32,348889561,,0,,0, -new,btreemap_v2_get_blob_32_4,343473664,,0,,0, -new,btreemap_v2_get_blob_32_512,348929751,,0,,0, -new,btreemap_v2_get_blob_32_64,347119635,,0,,0, -new,btreemap_v2_get_blob_32_8,345315038,,0,,0, -new,btreemap_v2_get_blob_4_128,257370621,,0,,0, -new,btreemap_v2_get_blob_512_128,2659912132,,0,,0, -new,btreemap_v2_get_blob_64_128,601774814,,0,,0, -new,btreemap_v2_get_blob_8_128,281640219,,0,,0, -new,btreemap_v2_get_u64_blob8,245362209,,0,,0, -new,btreemap_v2_get_u64_u64,249268645,,0,,0, -new,btreemap_v2_get_u64_vec8,246137433,,0,,0, -new,btreemap_v2_get_vec8_u64,376858286,,0,,0, -new,btreemap_v2_get_vec_1024_128,2921959775,,0,,0, -new,btreemap_v2_get_vec_128_128,710827388,,0,,0, -new,btreemap_v2_get_vec_16_128,440398211,,0,,0, -new,btreemap_v2_get_vec_256_128,1233367092,,0,,0, -new,btreemap_v2_get_vec_32_1024,606431114,,0,,0, -new,btreemap_v2_get_vec_32_128,498908637,,0,,0, -new,btreemap_v2_get_vec_32_16,416949497,,0,,0, -new,btreemap_v2_get_vec_32_256,539821398,,0,,0, -new,btreemap_v2_get_vec_32_32,417020079,,0,,0, -new,btreemap_v2_get_vec_32_4,415119023,,0,,0, -new,btreemap_v2_get_vec_32_512,558783250,,0,,0, -new,btreemap_v2_get_vec_32_64,472181771,,0,,0, -new,btreemap_v2_get_vec_32_8,415079885,,0,,0, -new,btreemap_v2_get_vec_4_128,407056995,,0,,0, -new,btreemap_v2_get_vec_512_128,1825704224,,0,,0, -new,btreemap_v2_get_vec_64_128,606201847,,0,,0, -new,btreemap_v2_get_vec_8_128,398653757,,0,,0, -new,btreemap_v2_insert_10mib_values,5236275168,,322,,3613, -new,btreemap_v2_insert_blob8_u64,440861921,,0,,4, -new,btreemap_v2_insert_blob_1024_128,5104008235,,0,,196, -new,btreemap_v2_insert_blob_128_128,1133684047,,0,,46, -new,btreemap_v2_insert_blob_16_128,494767992,,0,,24, -new,btreemap_v2_insert_blob_256_128,1683872591,,0,,67, -new,btreemap_v2_insert_blob_32_1024,687122501,,0,,173, -new,btreemap_v2_insert_blob_32_128,529123151,,0,,28, -new,btreemap_v2_insert_blob_32_16,508434265,,0,,11, -new,btreemap_v2_insert_blob_32_256,560318876,,0,,49, -new,btreemap_v2_insert_blob_32_32,514031722,,0,,13, -new,btreemap_v2_insert_blob_32_4,496606631,,0,,8, -new,btreemap_v2_insert_blob_32_512,597566604,,0,,91, -new,btreemap_v2_insert_blob_32_64,519519045,,0,,18, -new,btreemap_v2_insert_blob_32_8,503751175,,0,,9, -new,btreemap_v2_insert_blob_4_128,410411924,,0,,13, -new,btreemap_v2_insert_blob_512_128,2855055481,,0,,111, -new,btreemap_v2_insert_blob_64_128,777536947,,0,,34, -new,btreemap_v2_insert_blob_8_128,462943497,,0,,20, -new,btreemap_v2_insert_u64_blob8,422654181,,0,,5, -new,btreemap_v2_insert_u64_u64,431497067,,0,,6, -new,btreemap_v2_insert_u64_vec8,429929989,,0,,21, -new,btreemap_v2_insert_vec8_u64,581931268,,0,,16, -new,btreemap_v2_insert_vec_1024_128,3318166891,,0,,193, -new,btreemap_v2_insert_vec_128_128,1095306451,,0,,51, -new,btreemap_v2_insert_vec_16_128,703253294,,0,,31, -new,btreemap_v2_insert_vec_256_128,1506010620,,0,,71, -new,btreemap_v2_insert_vec_32_1024,1221769507,,0,,171, -new,btreemap_v2_insert_vec_32_128,761626630,,0,,33, -new,btreemap_v2_insert_vec_32_16,663288909,,0,,20, -new,btreemap_v2_insert_vec_32_256,890332939,,0,,54, -new,btreemap_v2_insert_vec_32_32,666181941,,0,,20, -new,btreemap_v2_insert_vec_32_4,660361307,,0,,20, -new,btreemap_v2_insert_vec_32_512,1008642945,,0,,91, -new,btreemap_v2_insert_vec_32_64,692118095,,0,,24, -new,btreemap_v2_insert_vec_32_8,660131454,,0,,20, -new,btreemap_v2_insert_vec_4_128,608604433,,0,,16, -new,btreemap_v2_insert_vec_512_128,2126953494,,0,,112, -new,btreemap_v2_insert_vec_64_128,880172928,,0,,41, -new,btreemap_v2_insert_vec_8_128,666246354,,0,,23, -new,btreemap_v2_mem_manager_contains_blob512_u64,2717630382,,0,,0, -new,btreemap_v2_mem_manager_contains_u64_blob512,311110875,,0,,0, -new,btreemap_v2_mem_manager_contains_u64_u64,316773716,,0,,0, -new,btreemap_v2_mem_manager_contains_u64_vec512,395734654,,0,,0, -new,btreemap_v2_mem_manager_contains_vec512_u64,1754766489,,0,,0, -new,btreemap_v2_mem_manager_get_blob512_u64,2762707145,,0,,0, -new,btreemap_v2_mem_manager_get_u64_blob512,327868758,,0,,0, -new,btreemap_v2_mem_manager_get_u64_u64,329806410,,0,,0, -new,btreemap_v2_mem_manager_get_u64_vec512,422661515,,0,,0, -new,btreemap_v2_mem_manager_get_vec512_u64,1792390521,,0,,0, -new,btreemap_v2_mem_manager_insert_blob512_u64,2959846456,,0,,0, -new,btreemap_v2_mem_manager_insert_u64_blob512,647064908,,0,,0, -new,btreemap_v2_mem_manager_insert_u64_u64,560862124,,0,,0, -new,btreemap_v2_mem_manager_insert_u64_vec512,901842874,,0,,0, -new,btreemap_v2_mem_manager_insert_vec512_u64,2241199345,,0,,0, -new,btreemap_v2_mem_manager_remove_blob512_u64,3847539272,,0,,0, -new,btreemap_v2_mem_manager_remove_u64_blob512,947364196,,0,,0, -new,btreemap_v2_mem_manager_remove_u64_u64,807405593,,0,,0, -new,btreemap_v2_mem_manager_remove_u64_vec512,1287069190,,0,,0, -new,btreemap_v2_mem_manager_remove_vec512_u64,3316383884,,0,,0, -new,btreemap_v2_pop_first_blob8_u64,608291661,,0,,0, -new,btreemap_v2_pop_first_blob_1024_128,9398188467,,0,,0, -new,btreemap_v2_pop_first_blob_128_128,2007415368,,0,,0, -new,btreemap_v2_pop_first_blob_16_128,757418966,,0,,0, -new,btreemap_v2_pop_first_blob_256_128,3093785202,,0,,0, -new,btreemap_v2_pop_first_blob_32_1024,1132453514,,0,,0, -new,btreemap_v2_pop_first_blob_32_128,876371666,,0,,0, -new,btreemap_v2_pop_first_blob_32_16,819915570,,0,,0, -new,btreemap_v2_pop_first_blob_32_256,907503803,,0,,0, -new,btreemap_v2_pop_first_blob_32_32,831628016,,0,,0, -new,btreemap_v2_pop_first_blob_32_4,802089971,,0,,0, -new,btreemap_v2_pop_first_blob_32_512,973265656,,0,,0, -new,btreemap_v2_pop_first_blob_32_64,838693246,,0,,0, -new,btreemap_v2_pop_first_blob_32_8,818463740,,0,,0, -new,btreemap_v2_pop_first_blob_4_128,371985311,,0,,0, -new,btreemap_v2_pop_first_blob_512_128,5172264944,,0,,0, -new,btreemap_v2_pop_first_blob_64_128,1328879808,,0,,0, -new,btreemap_v2_pop_first_blob_8_128,611407092,,0,,0, -new,btreemap_v2_pop_first_u64_blob8,705248265,,0,,0, -new,btreemap_v2_pop_first_u64_u64,717329877,,0,,0, -new,btreemap_v2_pop_first_u64_vec8,709593211,,0,,0, -new,btreemap_v2_pop_first_vec8_u64,782287090,,0,,0, -new,btreemap_v2_pop_first_vec_1024_128,5762265936,,0,,0, -new,btreemap_v2_pop_first_vec_128_128,1815546654,,0,,0, -new,btreemap_v2_pop_first_vec_16_128,1024443186,,0,,0, -new,btreemap_v2_pop_first_vec_256_128,2528307535,,0,,0, -new,btreemap_v2_pop_first_vec_32_1024,1811350791,,0,,0, -new,btreemap_v2_pop_first_vec_32_128,1204814177,,0,,0, -new,btreemap_v2_pop_first_vec_32_16,1039338017,,0,,0, -new,btreemap_v2_pop_first_vec_32_256,1326543051,,0,,0, -new,btreemap_v2_pop_first_vec_32_32,1055530159,,0,,0, -new,btreemap_v2_pop_first_vec_32_4,1038272566,,0,,0, -new,btreemap_v2_pop_first_vec_32_512,1489882556,,0,,0, -new,btreemap_v2_pop_first_vec_32_64,1089756943,,0,,0, -new,btreemap_v2_pop_first_vec_32_8,1050176827,,0,,0, -new,btreemap_v2_pop_first_vec_4_128,537424590,,0,,0, -new,btreemap_v2_pop_first_vec_512_128,3599302571,,0,,0, -new,btreemap_v2_pop_first_vec_64_128,1401892097,,0,,0, -new,btreemap_v2_pop_first_vec_8_128,845504240,,0,,0, -new,btreemap_v2_pop_last_blob8_u64,592362547,,0,,0, -new,btreemap_v2_pop_last_blob_1024_128,9219664993,,0,,0, -new,btreemap_v2_pop_last_blob_128_128,1958516704,,0,,0, -new,btreemap_v2_pop_last_blob_16_128,738623015,,0,,0, -new,btreemap_v2_pop_last_blob_256_128,3020531374,,0,,0, -new,btreemap_v2_pop_last_blob_32_1024,1112565103,,0,,0, -new,btreemap_v2_pop_last_blob_32_128,854347996,,0,,0, -new,btreemap_v2_pop_last_blob_32_16,798819036,,0,,0, -new,btreemap_v2_pop_last_blob_32_256,886655814,,0,,0, -new,btreemap_v2_pop_last_blob_32_32,810795267,,0,,0, -new,btreemap_v2_pop_last_blob_32_4,787773511,,0,,0, -new,btreemap_v2_pop_last_blob_32_512,955218753,,0,,0, -new,btreemap_v2_pop_last_blob_32_64,820640883,,0,,0, -new,btreemap_v2_pop_last_blob_32_8,797866752,,0,,0, -new,btreemap_v2_pop_last_blob_4_128,363658412,,0,,0, -new,btreemap_v2_pop_last_blob_512_128,5053410203,,0,,0, -new,btreemap_v2_pop_last_blob_64_128,1307018060,,0,,0, -new,btreemap_v2_pop_last_blob_8_128,611183029,,0,,0, -new,btreemap_v2_pop_last_u64_blob8,692886714,,0,,0, -new,btreemap_v2_pop_last_u64_u64,704577983,,0,,0, -new,btreemap_v2_pop_last_u64_vec8,695997588,,0,,0, -new,btreemap_v2_pop_last_vec8_u64,763627664,,0,,0, -new,btreemap_v2_pop_last_vec_1024_128,6009852618,,0,,0, -new,btreemap_v2_pop_last_vec_128_128,1829432194,,0,,0, -new,btreemap_v2_pop_last_vec_16_128,1012645478,,0,,0, -new,btreemap_v2_pop_last_vec_256_128,2581611468,,0,,0, -new,btreemap_v2_pop_last_vec_32_1024,1806174004,,0,,0, -new,btreemap_v2_pop_last_vec_32_128,1204020271,,0,,0, -new,btreemap_v2_pop_last_vec_32_16,1028212700,,0,,0, -new,btreemap_v2_pop_last_vec_32_256,1324004314,,0,,0, -new,btreemap_v2_pop_last_vec_32_32,1043904024,,0,,0, -new,btreemap_v2_pop_last_vec_32_4,1036623333,,0,,0, -new,btreemap_v2_pop_last_vec_32_512,1490189536,,0,,0, -new,btreemap_v2_pop_last_vec_32_64,1084539473,,0,,0, -new,btreemap_v2_pop_last_vec_32_8,1038381761,,0,,0, -new,btreemap_v2_pop_last_vec_4_128,528568472,,0,,0, -new,btreemap_v2_pop_last_vec_512_128,3722254862,,0,,0, -new,btreemap_v2_pop_last_vec_64_128,1415401855,,0,,0, -new,btreemap_v2_pop_last_vec_8_128,853141400,,0,,0, -new,btreemap_v2_range_count_1k_0b,16871,,0,,0, -new,btreemap_v2_range_count_1k_10kib,2440306,,0,,0, -new,btreemap_v2_range_count_20_10mib,20572482,,0,,0, -new,btreemap_v2_range_key_sum_1k_0b,17405,,0,,0, -new,btreemap_v2_range_key_sum_1k_10kib,57254917,,0,,0, -new,btreemap_v2_range_key_sum_20_10mib,1105826146,,0,,0, -new,btreemap_v2_range_value_sum_1k_0b,17419,,0,,0, -new,btreemap_v2_range_value_sum_1k_10kib,57266913,,0,,0, -new,btreemap_v2_range_value_sum_20_10mib,1105826382,,0,,0, -new,btreemap_v2_remove_10mib_values,5561337528,,0,,657, -new,btreemap_v2_remove_blob8_u64,587148004,,0,,0, -new,btreemap_v2_remove_blob_1024_128,6474121980,,0,,0, -new,btreemap_v2_remove_blob_128_128,1466116527,,0,,0, -new,btreemap_v2_remove_blob_16_128,680002778,,0,,0, -new,btreemap_v2_remove_blob_256_128,2195216146,,0,,0, -new,btreemap_v2_remove_blob_32_1024,965884145,,0,,0, -new,btreemap_v2_remove_blob_32_128,731104519,,0,,0, -new,btreemap_v2_remove_blob_32_16,687174807,,0,,0, -new,btreemap_v2_remove_blob_32_256,765993244,,0,,0, -new,btreemap_v2_remove_blob_32_32,695978850,,0,,0, -new,btreemap_v2_remove_blob_32_4,679309614,,0,,0, -new,btreemap_v2_remove_blob_32_512,837922200,,0,,0, -new,btreemap_v2_remove_blob_32_64,720007632,,0,,0, -new,btreemap_v2_remove_blob_32_8,679954161,,0,,0, -new,btreemap_v2_remove_blob_4_128,455500782,,0,,0, -new,btreemap_v2_remove_blob_512_128,3600501128,,0,,0, -new,btreemap_v2_remove_blob_64_128,1020115077,,0,,0, -new,btreemap_v2_remove_blob_8_128,607878082,,0,,0, -new,btreemap_v2_remove_u64_blob8,597535434,,0,,0, -new,btreemap_v2_remove_u64_u64,619080526,,0,,0, -new,btreemap_v2_remove_u64_vec8,603458045,,0,,0, -new,btreemap_v2_remove_vec8_u64,750426147,,0,,0, -new,btreemap_v2_remove_vec_1024_128,5020456905,,0,,0, -new,btreemap_v2_remove_vec_128_128,1451042556,,0,,0, -new,btreemap_v2_remove_vec_16_128,907590325,,0,,0, -new,btreemap_v2_remove_vec_256_128,2313326693,,0,,0, -new,btreemap_v2_remove_vec_32_1024,1673021222,,0,,0, -new,btreemap_v2_remove_vec_32_128,1010534168,,0,,0, -new,btreemap_v2_remove_vec_32_16,834640728,,0,,0, -new,btreemap_v2_remove_vec_32_256,1228590016,,0,,0, -new,btreemap_v2_remove_vec_32_32,841144006,,0,,0, -new,btreemap_v2_remove_vec_32_4,839617721,,0,,0, -new,btreemap_v2_remove_vec_32_512,1392150674,,0,,0, -new,btreemap_v2_remove_vec_32_64,923615504,,0,,0, -new,btreemap_v2_remove_vec_32_8,833306650,,0,,0, -new,btreemap_v2_remove_vec_4_128,649594780,,0,,0, -new,btreemap_v2_remove_vec_512_128,3264643019,,0,,0, -new,btreemap_v2_remove_vec_64_128,1178301615,,0,,0, -new,btreemap_v2_remove_vec_8_128,819927738,,0,,0, -new,btreemap_v2_scan_iter_1k_0b,1493458,,0,,0, -new,btreemap_v2_scan_iter_1k_10kib,57069957,,0,,0, -new,btreemap_v2_scan_iter_20_10mib,1103719699,,0,,0, -new,btreemap_v2_scan_iter_rev_1k_0b,1495597,,0,,0, -new,btreemap_v2_scan_iter_rev_1k_10kib,57047594,,0,,0, -new,btreemap_v2_scan_iter_rev_20_10mib,1103719281,,0,,0, -new,btreemap_v2_scan_keys_1k_0b,946083,,0,,0, -new,btreemap_v2_scan_keys_1k_10kib,2359607,,0,,0, -new,btreemap_v2_scan_keys_20_10mib,18465439,,0,,0, -new,btreemap_v2_scan_keys_rev_1k_0b,963320,,0,,0, -new,btreemap_v2_scan_keys_rev_1k_10kib,2355505,,0,,0, -new,btreemap_v2_scan_keys_rev_20_10mib,18465774,,0,,0, -new,btreemap_v2_scan_values_1k_0b,1490856,,0,,0, -new,btreemap_v2_scan_values_1k_10kib,57067355,,0,,0, -new,btreemap_v2_scan_values_20_10mib,1103719649,,0,,0, -new,btreemap_v2_scan_values_rev_1k_0b,1492995,,0,,0, -new,btreemap_v2_scan_values_rev_1k_10kib,57044992,,0,,0, -new,btreemap_v2_scan_values_rev_20_10mib,1103719231,,0,,0, -,memory_manager_baseline,1176577076,0.00%,0,0.00%,8000,0.00% -,memory_manager_grow,346537961,0.00%,2,0.00%,32000,0.00% -,memory_manager_overhead,1181962837,0.00%,0,0.00%,8320,0.00% -,vec_get_blob_128,19246658,0.00%,0,0.00%,0,0.00% -,vec_get_blob_16,6345942,0.00%,0,0.00%,0,0.00% -,vec_get_blob_32,7063501,0.00%,0,0.00%,0,0.00% -,vec_get_blob_4,4804323,0.00%,0,0.00%,0,0.00% -,vec_get_blob_4_mem_manager,7171673,0.00%,0,0.00%,0,0.00% -,vec_get_blob_64,11310940,0.00%,0,0.00%,0,0.00% -,vec_get_blob_64_mem_manager,13651088,0.00%,0,0.00%,0,0.00% -,vec_get_blob_8,5620865,0.00%,0,0.00%,0,0.00% -,vec_get_u64,5270302,0.00%,0,0.00%,0,0.00% -,vec_insert_blob_128,4131421,0.00%,0,0.00%,19,0.00% -,vec_insert_blob_16,3296224,0.00%,0,0.00%,2,0.00% -,vec_insert_blob_32,3415464,0.00%,0,0.00%,5,0.00% -,vec_insert_blob_4,3207465,0.00%,0,0.00%,0,0.00% -,vec_insert_blob_64,3655801,0.00%,0,0.00%,9,0.00% -,vec_insert_blob_8,3236886,0.00%,0,0.00%,1,0.00% -,vec_insert_u64,5859516,0.00%,0,0.00%,1,0.00% +status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_increase Δ,heap_increase Δ%,stable_memory_increase,stable_memory_increase Δ,stable_memory_increase Δ% +,btreemap_v2_contains_10mib_values,142213004,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob8_u64,277713087,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_1024_128,4897884819,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_128_128,925983020,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_16_128,304185180,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_256_128,1482592583,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_1024,334889492,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_128,332336378,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_16,336647532,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_256,336952134,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_32,337767804,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_4,333734209,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_512,332809414,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_64,335145674,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_8,334699459,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_4_128,244876846,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_512_128,2624677444,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_64_128,584178824,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_8_128,268359561,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_u64_blob8,234897323,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_u64_u64,236421608,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_u64_vec8,234897338,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec8_u64,366491431,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_1024_128,2875641971,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_128_128,698056573,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_16_128,430496510,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_256_128,1220085542,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_1024,573798539,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_128,488603839,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_16,408307710,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_256,521878485,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_32,408806200,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_4,407179812,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_512,536998195,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_64,463602926,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_8,407102811,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_4_128,397153848,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_512_128,1812299060,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_64_128,594729377,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_8_128,388847731,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_10mib_values,1227472657,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob8_u64,297139911,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_1024_128,4953924210,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_128_128,947186495,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_16_128,317354417,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_256_128,1507431266,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_1024,353756221,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_128,345894163,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_16,346953462,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_256,351580221,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_32,348889561,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_4,343473664,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_512,348929751,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_64,347119635,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_8,345315038,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_4_128,257370621,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_512_128,2659912132,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_64_128,601774814,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_8_128,281640219,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_u64_blob8,245362209,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_u64_u64,249268645,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_u64_vec8,246137433,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec8_u64,376858286,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_1024_128,2921959775,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_128_128,710827388,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_16_128,440398211,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_256_128,1233367092,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_1024,606431114,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_128,498908637,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_16,416949497,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_256,539821398,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_32,417020079,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_4,415119023,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_512,558783250,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_64,472181771,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_8,415079885,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_4_128,407056995,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_512_128,1825704224,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_64_128,606201847,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_8_128,398653757,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_insert_10mib_values,5235944819,-330349,-0.01%,322,0,0.00%,3613,0,0.00% +,btreemap_v2_insert_blob8_u64,440868627,6706,0.00%,0,0,0.00%,4,0,0.00% +,btreemap_v2_insert_blob_1024_128,5104008235,0,0.00%,0,0,0.00%,196,0,0.00% +,btreemap_v2_insert_blob_128_128,1133684047,0,0.00%,0,0,0.00%,46,0,0.00% +,btreemap_v2_insert_blob_16_128,494767994,2,0.00%,0,0,0.00%,24,0,0.00% +,btreemap_v2_insert_blob_256_128,1683872591,0,0.00%,0,0,0.00%,67,0,0.00% +,btreemap_v2_insert_blob_32_1024,687122501,0,0.00%,0,0,0.00%,173,0,0.00% +,btreemap_v2_insert_blob_32_128,529123151,0,0.00%,0,0,0.00%,28,0,0.00% +,btreemap_v2_insert_blob_32_16,508434275,10,0.00%,0,0,0.00%,11,0,0.00% +,btreemap_v2_insert_blob_32_256,560318880,4,0.00%,0,0,0.00%,49,0,0.00% +,btreemap_v2_insert_blob_32_32,514031722,0,0.00%,0,0,0.00%,13,0,0.00% +,btreemap_v2_insert_blob_32_4,496606799,168,0.00%,0,0,0.00%,8,0,0.00% +,btreemap_v2_insert_blob_32_512,597566608,4,0.00%,0,0,0.00%,91,0,0.00% +,btreemap_v2_insert_blob_32_64,519519045,0,0.00%,0,0,0.00%,18,0,0.00% +,btreemap_v2_insert_blob_32_8,503751175,0,0.00%,0,0,0.00%,9,0,0.00% +,btreemap_v2_insert_blob_4_128,410411927,3,0.00%,0,0,0.00%,13,0,0.00% +,btreemap_v2_insert_blob_512_128,2855055481,0,0.00%,0,0,0.00%,111,0,0.00% +,btreemap_v2_insert_blob_64_128,777536947,0,0.00%,0,0,0.00%,34,0,0.00% +,btreemap_v2_insert_blob_8_128,462943499,2,0.00%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_u64_blob8,422655288,1107,0.00%,0,0,0.00%,5,0,0.00% +,btreemap_v2_insert_u64_u64,431505229,8162,0.00%,0,0,0.00%,6,0,0.00% +,btreemap_v2_insert_u64_vec8,429929989,0,0.00%,0,0,0.00%,21,0,0.00% +,btreemap_v2_insert_vec8_u64,581931268,0,0.00%,0,0,0.00%,16,0,0.00% +,btreemap_v2_insert_vec_1024_128,3319375377,1208486,+0.04%,0,0,0.00%,193,0,0.00% +,btreemap_v2_insert_vec_128_128,1095946163,639712,+0.06%,0,0,0.00%,51,0,0.00% +,btreemap_v2_insert_vec_16_128,703380587,127293,+0.02%,0,0,0.00%,31,0,0.00% +,btreemap_v2_insert_vec_256_128,1506981804,971184,+0.06%,0,0,0.00%,71,0,0.00% +,btreemap_v2_insert_vec_32_1024,1222339084,569577,+0.05%,0,0,0.00%,171,0,0.00% +,btreemap_v2_insert_vec_32_128,761818423,191793,+0.03%,0,0,0.00%,33,0,0.00% +,btreemap_v2_insert_vec_32_16,663288909,0,0.00%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_vec_32_256,890722862,389923,+0.04%,0,0,0.00%,54,0,0.00% +,btreemap_v2_insert_vec_32_32,666181941,0,0.00%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_vec_32_4,660361307,0,0.00%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_vec_32_512,1009138885,495940,+0.05%,0,0,0.00%,91,0,0.00% +,btreemap_v2_insert_vec_32_64,692141273,23178,0.00%,0,0,0.00%,24,0,0.00% +,btreemap_v2_insert_vec_32_8,660131454,0,0.00%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_vec_4_128,608680659,76226,+0.01%,0,0,0.00%,16,0,0.00% +,btreemap_v2_insert_vec_512_128,2128089786,1136292,+0.05%,0,0,0.00%,112,0,0.00% +,btreemap_v2_insert_vec_64_128,880497251,324323,+0.04%,0,0,0.00%,41,0,0.00% +,btreemap_v2_insert_vec_8_128,666361818,115464,+0.02%,0,0,0.00%,23,0,0.00% +,btreemap_v2_mem_manager_contains_blob512_u64,2717630382,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_contains_u64_blob512,311110875,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_contains_u64_u64,316748263,-25453,-0.01%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_contains_u64_vec512,395074621,-660033,-0.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_contains_vec512_u64,1752116437,-2650052,-0.15%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_get_blob512_u64,2762707145,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_get_u64_blob512,327868758,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_get_u64_u64,329780567,-25843,-0.01%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_get_u64_vec512,421942583,-718932,-0.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_get_vec512_u64,1789680475,-2710046,-0.15%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_blob512_u64,2959846184,-272,-0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_u64_blob512,647064908,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_u64_u64,560836562,-25562,-0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_u64_vec512,900634331,-1208543,-0.13%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_vec512_u64,2238024968,-3174377,-0.14%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_blob512_u64,3847539102,-170,-0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_u64_blob512,947364196,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_u64_u64,807344380,-61213,-0.01%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_u64_vec512,1285424872,-1644318,-0.13%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_vec512_u64,3312475662,-3908222,-0.12%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob8_u64,608312410,20749,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_1024_128,9398188467,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_128_128,2007415368,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_16_128,757418973,7,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_256_128,3093785202,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_1024,1132453514,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_128,876371666,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_16,819915580,10,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_256,907503807,4,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_32,831628016,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_4,802090340,369,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_512,973265658,2,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_64,838693246,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_8,818463796,56,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_4_128,371985311,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_512_128,5172264952,8,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_64_128,1328879808,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_8_128,611407100,8,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_u64_blob8,705251730,3465,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_u64_u64,717356696,26819,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_u64_vec8,709593211,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec8_u64,782287090,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_1024_128,5764081817,1815881,+0.03%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_128_128,1816421653,874999,+0.05%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_16_128,1024586335,143149,+0.01%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_256_128,2529716684,1409149,+0.06%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_1024,1812179448,828657,+0.05%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_128,1205040545,226368,+0.02%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_16,1039338017,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_256,1327068201,525150,+0.04%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_32,1055530159,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_4,1038272566,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_512,1490585519,702963,+0.05%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_64,1089790483,33540,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_8,1050176827,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_4_128,537481485,56895,+0.01%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_512_128,3600978903,1676332,+0.05%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_64_128,1402296775,404678,+0.03%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_8_128,845611404,107164,+0.01%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob8_u64,592384197,21650,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_1024_128,9219664993,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_128_128,1958516704,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_16_128,738623017,2,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_256_128,3020531374,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_1024,1112565105,2,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_128,854347996,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_16,798819040,4,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_256,886655818,4,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_32,810795267,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_4,787773960,449,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_512,955218753,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_64,820640883,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_8,797866799,47,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_4_128,363658412,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_512_128,5053410207,4,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_64_128,1307018060,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_8_128,611183036,7,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_u64_blob8,692890659,3945,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_u64_u64,704605693,27710,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_u64_vec8,695997588,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec8_u64,763627664,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_1024_128,6011671477,1818859,+0.03%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_128_128,1830309719,877525,+0.05%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_16_128,1012789371,143893,+0.01%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_256_128,2583020373,1408905,+0.05%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_1024,1807002225,828221,+0.05%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_128,1204248068,227797,+0.02%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_16,1028212700,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_256,1324529488,525174,+0.04%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_32,1043904024,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_4,1036623333,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_512,1490891594,702058,+0.05%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_64,1084573805,34332,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_8,1038381761,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_4_128,528623870,55398,+0.01%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_512_128,3723931830,1676968,+0.05%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_64_128,1415805191,403336,+0.03%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_8_128,853248522,107122,+0.01%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_count_1k_0b,16871,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_count_1k_10kib,2440306,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_count_20_10mib,20572482,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_key_sum_1k_0b,17405,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_key_sum_1k_10kib,57254917,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_key_sum_20_10mib,1105826146,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_value_sum_1k_0b,17419,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_value_sum_1k_10kib,57266913,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_value_sum_20_10mib,1105826382,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_10mib_values,5561183230,-154298,-0.00%,0,0,0.00%,657,0,0.00% +,btreemap_v2_remove_blob8_u64,587170055,22051,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_1024_128,6474121980,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_128_128,1466116527,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_16_128,680002778,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_256_128,2195216146,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_1024,965884147,2,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_128,731104521,2,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_16,687174807,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_256,765993262,18,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_32,695978850,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_4,679309894,280,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_512,837922202,2,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_64,720007632,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_8,679954212,51,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_4_128,455500790,8,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_512_128,3600501128,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_64_128,1020115077,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_8_128,607878082,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_u64_blob8,597538858,3424,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_u64_u64,619109964,29438,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_u64_vec8,603458045,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec8_u64,750426147,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_1024_128,5022631520,2174615,+0.04%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_128_128,1452066520,1023964,+0.07%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_16_128,907746224,155899,+0.02%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_256_128,2314986697,1660004,+0.07%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_1024,1674012367,991145,+0.06%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_128,1010787616,253448,+0.03%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_16,834640728,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_256,1229226325,636309,+0.05%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_32,841144006,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_4,839617721,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_512,1392996478,845804,+0.06%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_64,923651396,35892,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_8,833306650,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_4_128,649657252,62472,0.01%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_512_128,3266656938,2013919,+0.06%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_64_128,1178765367,463752,+0.04%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_8_128,820045093,117355,+0.01%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_1k_0b,1493458,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_1k_10kib,57069957,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_20_10mib,1103719699,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_rev_1k_0b,1495597,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_rev_1k_10kib,57047594,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_rev_20_10mib,1103719281,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_1k_0b,946083,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_1k_10kib,2359607,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_20_10mib,18465439,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_rev_1k_0b,963320,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_rev_1k_10kib,2355505,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_rev_20_10mib,18465774,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_1k_0b,1490856,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_1k_10kib,57067355,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_20_10mib,1103719649,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_rev_1k_0b,1492995,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_rev_1k_10kib,57044992,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_rev_20_10mib,1103719231,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 8a68e345..4ff856f1 100644 --- a/canbench_results.yml +++ b/canbench_results.yml @@ -1,724 +1,4 @@ benches: - btreemap_v1_contains_blob8_u64: - total: - instructions: 195271021 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_blob_1024_128: - total: - instructions: 4811323110 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_blob_128_128: - total: - instructions: 850930156 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_blob_16_128: - total: - instructions: 226230369 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_blob_256_128: - total: - instructions: 1407896845 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_blob_32_1024: - total: - instructions: 256961773 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_blob_32_128: - total: - instructions: 250177816 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_blob_32_16: - total: - instructions: 261906396 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_blob_32_256: - total: - instructions: 258725278 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_blob_32_32: - total: - instructions: 259151053 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_blob_32_4: - total: - instructions: 257349962 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_blob_32_512: - total: - instructions: 255019597 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_blob_32_64: - total: - instructions: 252217576 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_blob_32_8: - total: - instructions: 252815455 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_blob_4_128: - total: - instructions: 161092850 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_blob_512_128: - total: - instructions: 2540558634 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_blob_64_128: - total: - instructions: 495156778 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_blob_8_128: - total: - instructions: 188138732 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_u64_blob8: - total: - instructions: 166038798 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_contains_u64_u64: - total: - instructions: 167293960 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob8_u64: - total: - instructions: 203697122 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob_1024_128: - total: - instructions: 4867663262 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob_128_128: - total: - instructions: 867834674 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob_16_128: - total: - instructions: 239293029 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob_256_128: - total: - instructions: 1431740445 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob_32_1024: - total: - instructions: 275141698 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob_32_128: - total: - instructions: 262740541 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob_32_16: - total: - instructions: 269802882 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob_32_256: - total: - instructions: 272218440 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob_32_32: - total: - instructions: 267860063 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob_32_4: - total: - instructions: 264584535 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob_32_512: - total: - instructions: 270395928 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob_32_64: - total: - instructions: 262951923 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob_32_8: - total: - instructions: 261740283 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob_4_128: - total: - instructions: 174475611 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob_512_128: - total: - instructions: 2575484041 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob_64_128: - total: - instructions: 508829622 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_blob_8_128: - total: - instructions: 201098226 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_u64_blob8: - total: - instructions: 173677469 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_get_u64_u64: - total: - instructions: 176711268 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_insert_blob8_u64: - total: - instructions: 329934785 - heap_increase: 0 - stable_memory_increase: 6 - scopes: {} - btreemap_v1_insert_blob_1024_128: - total: - instructions: 5003142436 - heap_increase: 0 - stable_memory_increase: 262 - scopes: {} - btreemap_v1_insert_blob_128_128: - total: - instructions: 1026896477 - heap_increase: 0 - stable_memory_increase: 61 - scopes: {} - btreemap_v1_insert_blob_16_128: - total: - instructions: 391208873 - heap_increase: 0 - stable_memory_increase: 32 - scopes: {} - btreemap_v1_insert_blob_256_128: - total: - instructions: 1576029658 - heap_increase: 0 - stable_memory_increase: 90 - scopes: {} - btreemap_v1_insert_blob_32_1024: - total: - instructions: 584220763 - heap_increase: 0 - stable_memory_increase: 230 - scopes: {} - btreemap_v1_insert_blob_32_128: - total: - instructions: 423534612 - heap_increase: 0 - stable_memory_increase: 37 - scopes: {} - btreemap_v1_insert_blob_32_16: - total: - instructions: 405329416 - heap_increase: 0 - stable_memory_increase: 14 - scopes: {} - btreemap_v1_insert_blob_32_256: - total: - instructions: 453509950 - heap_increase: 0 - stable_memory_increase: 66 - scopes: {} - btreemap_v1_insert_blob_32_32: - total: - instructions: 407982201 - heap_increase: 0 - stable_memory_increase: 17 - scopes: {} - btreemap_v1_insert_blob_32_4: - total: - instructions: 393092021 - heap_increase: 0 - stable_memory_increase: 11 - scopes: {} - btreemap_v1_insert_blob_32_512: - total: - instructions: 494442570 - heap_increase: 0 - stable_memory_increase: 121 - scopes: {} - btreemap_v1_insert_blob_32_64: - total: - instructions: 411446503 - heap_increase: 0 - stable_memory_increase: 24 - scopes: {} - btreemap_v1_insert_blob_32_8: - total: - instructions: 397466462 - heap_increase: 0 - stable_memory_increase: 12 - scopes: {} - btreemap_v1_insert_blob_4_128: - total: - instructions: 312941760 - heap_increase: 0 - stable_memory_increase: 17 - scopes: {} - btreemap_v1_insert_blob_512_128: - total: - instructions: 2752074589 - heap_increase: 0 - stable_memory_increase: 148 - scopes: {} - btreemap_v1_insert_blob_64_128: - total: - instructions: 669974138 - heap_increase: 0 - stable_memory_increase: 46 - scopes: {} - btreemap_v1_insert_blob_8_128: - total: - instructions: 358039235 - heap_increase: 0 - stable_memory_increase: 27 - scopes: {} - btreemap_v1_insert_u64_blob8: - total: - instructions: 339684422 - heap_increase: 0 - stable_memory_increase: 7 - scopes: {} - btreemap_v1_insert_u64_u64: - total: - instructions: 344884908 - heap_increase: 0 - stable_memory_increase: 7 - scopes: {} - btreemap_v1_pop_first_blob8_u64: - total: - instructions: 440442786 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_first_blob_1024_128: - total: - instructions: 9209904825 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_first_blob_128_128: - total: - instructions: 1817203783 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_first_blob_16_128: - total: - instructions: 588226778 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_first_blob_256_128: - total: - instructions: 2895660576 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_first_blob_32_1024: - total: - instructions: 955590937 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_first_blob_32_128: - total: - instructions: 694949290 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_first_blob_32_16: - total: - instructions: 642191114 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_first_blob_32_256: - total: - instructions: 731539216 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_first_blob_32_32: - total: - instructions: 651380687 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_first_blob_32_4: - total: - instructions: 623771279 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_first_blob_32_512: - total: - instructions: 797530494 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_first_blob_32_64: - total: - instructions: 661830735 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_first_blob_32_8: - total: - instructions: 637746040 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_first_blob_4_128: - total: - instructions: 278931792 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_first_blob_512_128: - total: - instructions: 4985295219 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_first_blob_64_128: - total: - instructions: 1148964543 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_first_blob_8_128: - total: - instructions: 464938767 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_first_u64_blob8: - total: - instructions: 552760738 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_first_u64_u64: - total: - instructions: 555550289 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_last_blob8_u64: - total: - instructions: 425558322 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_last_blob_1024_128: - total: - instructions: 9026857390 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_last_blob_128_128: - total: - instructions: 1771818496 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_last_blob_16_128: - total: - instructions: 578504524 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_last_blob_256_128: - total: - instructions: 2829333178 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_last_blob_32_1024: - total: - instructions: 935766058 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_last_blob_32_128: - total: - instructions: 672669373 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_last_blob_32_16: - total: - instructions: 622149789 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_last_blob_32_256: - total: - instructions: 710485425 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_last_blob_32_32: - total: - instructions: 632078429 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_last_blob_32_4: - total: - instructions: 609993537 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_last_blob_32_512: - total: - instructions: 779152304 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_last_blob_32_64: - total: - instructions: 642285310 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_last_blob_32_8: - total: - instructions: 616068670 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_last_blob_4_128: - total: - instructions: 271362314 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_last_blob_512_128: - total: - instructions: 4875145521 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_last_blob_64_128: - total: - instructions: 1118455938 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_last_blob_8_128: - total: - instructions: 461614248 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_last_u64_blob8: - total: - instructions: 540607851 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_pop_last_u64_u64: - total: - instructions: 543112821 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_remove_blob8_u64: - total: - instructions: 439863392 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_remove_blob_1024_128: - total: - instructions: 6329350311 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_remove_blob_128_128: - total: - instructions: 1320296970 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_remove_blob_16_128: - total: - instructions: 539004547 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_remove_blob_256_128: - total: - instructions: 2044963965 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_remove_blob_32_1024: - total: - instructions: 825632231 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_remove_blob_32_128: - total: - instructions: 588789993 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_remove_blob_32_16: - total: - instructions: 545908410 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_remove_blob_32_256: - total: - instructions: 625265227 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_remove_blob_32_32: - total: - instructions: 553650900 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_remove_blob_32_4: - total: - instructions: 537395900 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_remove_blob_32_512: - total: - instructions: 696535326 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_remove_blob_32_64: - total: - instructions: 574620363 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_remove_blob_32_8: - total: - instructions: 538139629 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_remove_blob_4_128: - total: - instructions: 342732420 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_remove_blob_512_128: - total: - instructions: 3454094220 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_remove_blob_64_128: - total: - instructions: 875777361 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_remove_blob_8_128: - total: - instructions: 470018886 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_remove_u64_blob8: - total: - instructions: 485913516 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} - btreemap_v1_remove_u64_u64: - total: - instructions: 499266505 - heap_increase: 0 - stable_memory_increase: 0 - scopes: {} btreemap_v2_contains_10mib_values: total: instructions: 142213004 @@ -1201,13 +481,13 @@ benches: scopes: {} btreemap_v2_insert_10mib_values: total: - instructions: 5236275168 + instructions: 5235944819 heap_increase: 322 stable_memory_increase: 3613 scopes: {} btreemap_v2_insert_blob8_u64: total: - instructions: 440861921 + instructions: 440868627 heap_increase: 0 stable_memory_increase: 4 scopes: {} @@ -1225,7 +505,7 @@ benches: scopes: {} btreemap_v2_insert_blob_16_128: total: - instructions: 494767992 + instructions: 494767994 heap_increase: 0 stable_memory_increase: 24 scopes: {} @@ -1249,13 +529,13 @@ benches: scopes: {} btreemap_v2_insert_blob_32_16: total: - instructions: 508434265 + instructions: 508434275 heap_increase: 0 stable_memory_increase: 11 scopes: {} btreemap_v2_insert_blob_32_256: total: - instructions: 560318876 + instructions: 560318880 heap_increase: 0 stable_memory_increase: 49 scopes: {} @@ -1267,13 +547,13 @@ benches: scopes: {} btreemap_v2_insert_blob_32_4: total: - instructions: 496606631 + instructions: 496606799 heap_increase: 0 stable_memory_increase: 8 scopes: {} btreemap_v2_insert_blob_32_512: total: - instructions: 597566604 + instructions: 597566608 heap_increase: 0 stable_memory_increase: 91 scopes: {} @@ -1291,7 +571,7 @@ benches: scopes: {} btreemap_v2_insert_blob_4_128: total: - instructions: 410411924 + instructions: 410411927 heap_increase: 0 stable_memory_increase: 13 scopes: {} @@ -1309,19 +589,19 @@ benches: scopes: {} btreemap_v2_insert_blob_8_128: total: - instructions: 462943497 + instructions: 462943499 heap_increase: 0 stable_memory_increase: 20 scopes: {} btreemap_v2_insert_u64_blob8: total: - instructions: 422654181 + instructions: 422655288 heap_increase: 0 stable_memory_increase: 5 scopes: {} btreemap_v2_insert_u64_u64: total: - instructions: 431497067 + instructions: 431505229 heap_increase: 0 stable_memory_increase: 6 scopes: {} @@ -1339,37 +619,37 @@ benches: scopes: {} btreemap_v2_insert_vec_1024_128: total: - instructions: 3318166891 + instructions: 3319375377 heap_increase: 0 stable_memory_increase: 193 scopes: {} btreemap_v2_insert_vec_128_128: total: - instructions: 1095306451 + instructions: 1095946163 heap_increase: 0 stable_memory_increase: 51 scopes: {} btreemap_v2_insert_vec_16_128: total: - instructions: 703253294 + instructions: 703380587 heap_increase: 0 stable_memory_increase: 31 scopes: {} btreemap_v2_insert_vec_256_128: total: - instructions: 1506010620 + instructions: 1506981804 heap_increase: 0 stable_memory_increase: 71 scopes: {} btreemap_v2_insert_vec_32_1024: total: - instructions: 1221769507 + instructions: 1222339084 heap_increase: 0 stable_memory_increase: 171 scopes: {} btreemap_v2_insert_vec_32_128: total: - instructions: 761626630 + instructions: 761818423 heap_increase: 0 stable_memory_increase: 33 scopes: {} @@ -1381,7 +661,7 @@ benches: scopes: {} btreemap_v2_insert_vec_32_256: total: - instructions: 890332939 + instructions: 890722862 heap_increase: 0 stable_memory_increase: 54 scopes: {} @@ -1399,13 +679,13 @@ benches: scopes: {} btreemap_v2_insert_vec_32_512: total: - instructions: 1008642945 + instructions: 1009138885 heap_increase: 0 stable_memory_increase: 91 scopes: {} btreemap_v2_insert_vec_32_64: total: - instructions: 692118095 + instructions: 692141273 heap_increase: 0 stable_memory_increase: 24 scopes: {} @@ -1417,25 +697,25 @@ benches: scopes: {} btreemap_v2_insert_vec_4_128: total: - instructions: 608604433 + instructions: 608680659 heap_increase: 0 stable_memory_increase: 16 scopes: {} btreemap_v2_insert_vec_512_128: total: - instructions: 2126953494 + instructions: 2128089786 heap_increase: 0 stable_memory_increase: 112 scopes: {} btreemap_v2_insert_vec_64_128: total: - instructions: 880172928 + instructions: 880497251 heap_increase: 0 stable_memory_increase: 41 scopes: {} btreemap_v2_insert_vec_8_128: total: - instructions: 666246354 + instructions: 666361818 heap_increase: 0 stable_memory_increase: 23 scopes: {} @@ -1453,19 +733,19 @@ benches: scopes: {} btreemap_v2_mem_manager_contains_u64_u64: total: - instructions: 316773716 + instructions: 316748263 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_contains_u64_vec512: total: - instructions: 395734654 + instructions: 395074621 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_contains_vec512_u64: total: - instructions: 1754766489 + instructions: 1752116437 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1483,25 +763,25 @@ benches: scopes: {} btreemap_v2_mem_manager_get_u64_u64: total: - instructions: 329806410 + instructions: 329780567 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_u64_vec512: total: - instructions: 422661515 + instructions: 421942583 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_vec512_u64: total: - instructions: 1792390521 + instructions: 1789680475 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_blob512_u64: total: - instructions: 2959846456 + instructions: 2959846184 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1513,25 +793,25 @@ benches: scopes: {} btreemap_v2_mem_manager_insert_u64_u64: total: - instructions: 560862124 + instructions: 560836562 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_u64_vec512: total: - instructions: 901842874 + instructions: 900634331 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_vec512_u64: total: - instructions: 2241199345 + instructions: 2238024968 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_blob512_u64: total: - instructions: 3847539272 + instructions: 3847539102 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1543,25 +823,25 @@ benches: scopes: {} btreemap_v2_mem_manager_remove_u64_u64: total: - instructions: 807405593 + instructions: 807344380 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_u64_vec512: total: - instructions: 1287069190 + instructions: 1285424872 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_vec512_u64: total: - instructions: 3316383884 + instructions: 3312475662 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob8_u64: total: - instructions: 608291661 + instructions: 608312410 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1579,7 +859,7 @@ benches: scopes: {} btreemap_v2_pop_first_blob_16_128: total: - instructions: 757418966 + instructions: 757418973 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1603,13 +883,13 @@ benches: scopes: {} btreemap_v2_pop_first_blob_32_16: total: - instructions: 819915570 + instructions: 819915580 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_256: total: - instructions: 907503803 + instructions: 907503807 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1621,13 +901,13 @@ benches: scopes: {} btreemap_v2_pop_first_blob_32_4: total: - instructions: 802089971 + instructions: 802090340 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_512: total: - instructions: 973265656 + instructions: 973265658 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1639,7 +919,7 @@ benches: scopes: {} btreemap_v2_pop_first_blob_32_8: total: - instructions: 818463740 + instructions: 818463796 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1651,7 +931,7 @@ benches: scopes: {} btreemap_v2_pop_first_blob_512_128: total: - instructions: 5172264944 + instructions: 5172264952 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1663,19 +943,19 @@ benches: scopes: {} btreemap_v2_pop_first_blob_8_128: total: - instructions: 611407092 + instructions: 611407100 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_u64_blob8: total: - instructions: 705248265 + instructions: 705251730 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_u64_u64: total: - instructions: 717329877 + instructions: 717356696 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1693,37 +973,37 @@ benches: scopes: {} btreemap_v2_pop_first_vec_1024_128: total: - instructions: 5762265936 + instructions: 5764081817 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_128_128: total: - instructions: 1815546654 + instructions: 1816421653 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_16_128: total: - instructions: 1024443186 + instructions: 1024586335 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_256_128: total: - instructions: 2528307535 + instructions: 2529716684 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_1024: total: - instructions: 1811350791 + instructions: 1812179448 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_128: total: - instructions: 1204814177 + instructions: 1205040545 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1735,7 +1015,7 @@ benches: scopes: {} btreemap_v2_pop_first_vec_32_256: total: - instructions: 1326543051 + instructions: 1327068201 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1753,13 +1033,13 @@ benches: scopes: {} btreemap_v2_pop_first_vec_32_512: total: - instructions: 1489882556 + instructions: 1490585519 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_64: total: - instructions: 1089756943 + instructions: 1089790483 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1771,31 +1051,31 @@ benches: scopes: {} btreemap_v2_pop_first_vec_4_128: total: - instructions: 537424590 + instructions: 537481485 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_512_128: total: - instructions: 3599302571 + instructions: 3600978903 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_64_128: total: - instructions: 1401892097 + instructions: 1402296775 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_8_128: total: - instructions: 845504240 + instructions: 845611404 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob8_u64: total: - instructions: 592362547 + instructions: 592384197 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1813,7 +1093,7 @@ benches: scopes: {} btreemap_v2_pop_last_blob_16_128: total: - instructions: 738623015 + instructions: 738623017 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1825,7 +1105,7 @@ benches: scopes: {} btreemap_v2_pop_last_blob_32_1024: total: - instructions: 1112565103 + instructions: 1112565105 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1837,13 +1117,13 @@ benches: scopes: {} btreemap_v2_pop_last_blob_32_16: total: - instructions: 798819036 + instructions: 798819040 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_256: total: - instructions: 886655814 + instructions: 886655818 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1855,7 +1135,7 @@ benches: scopes: {} btreemap_v2_pop_last_blob_32_4: total: - instructions: 787773511 + instructions: 787773960 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1873,7 +1153,7 @@ benches: scopes: {} btreemap_v2_pop_last_blob_32_8: total: - instructions: 797866752 + instructions: 797866799 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1885,7 +1165,7 @@ benches: scopes: {} btreemap_v2_pop_last_blob_512_128: total: - instructions: 5053410203 + instructions: 5053410207 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1897,19 +1177,19 @@ benches: scopes: {} btreemap_v2_pop_last_blob_8_128: total: - instructions: 611183029 + instructions: 611183036 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_u64_blob8: total: - instructions: 692886714 + instructions: 692890659 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_u64_u64: total: - instructions: 704577983 + instructions: 704605693 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1927,37 +1207,37 @@ benches: scopes: {} btreemap_v2_pop_last_vec_1024_128: total: - instructions: 6009852618 + instructions: 6011671477 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_128_128: total: - instructions: 1829432194 + instructions: 1830309719 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_16_128: total: - instructions: 1012645478 + instructions: 1012789371 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_256_128: total: - instructions: 2581611468 + instructions: 2583020373 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_1024: total: - instructions: 1806174004 + instructions: 1807002225 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_128: total: - instructions: 1204020271 + instructions: 1204248068 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1969,7 +1249,7 @@ benches: scopes: {} btreemap_v2_pop_last_vec_32_256: total: - instructions: 1324004314 + instructions: 1324529488 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -1987,13 +1267,13 @@ benches: scopes: {} btreemap_v2_pop_last_vec_32_512: total: - instructions: 1490189536 + instructions: 1490891594 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_64: total: - instructions: 1084539473 + instructions: 1084573805 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -2005,25 +1285,25 @@ benches: scopes: {} btreemap_v2_pop_last_vec_4_128: total: - instructions: 528568472 + instructions: 528623870 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_512_128: total: - instructions: 3722254862 + instructions: 3723931830 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_64_128: total: - instructions: 1415401855 + instructions: 1415805191 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_8_128: total: - instructions: 853141400 + instructions: 853248522 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -2083,13 +1363,13 @@ benches: scopes: {} btreemap_v2_remove_10mib_values: total: - instructions: 5561337528 + instructions: 5561183230 heap_increase: 0 stable_memory_increase: 657 scopes: {} btreemap_v2_remove_blob8_u64: total: - instructions: 587148004 + instructions: 587170055 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -2119,13 +1399,13 @@ benches: scopes: {} btreemap_v2_remove_blob_32_1024: total: - instructions: 965884145 + instructions: 965884147 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_128: total: - instructions: 731104519 + instructions: 731104521 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -2137,7 +1417,7 @@ benches: scopes: {} btreemap_v2_remove_blob_32_256: total: - instructions: 765993244 + instructions: 765993262 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -2149,13 +1429,13 @@ benches: scopes: {} btreemap_v2_remove_blob_32_4: total: - instructions: 679309614 + instructions: 679309894 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_512: total: - instructions: 837922200 + instructions: 837922202 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -2167,13 +1447,13 @@ benches: scopes: {} btreemap_v2_remove_blob_32_8: total: - instructions: 679954161 + instructions: 679954212 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_4_128: total: - instructions: 455500782 + instructions: 455500790 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -2197,13 +1477,13 @@ benches: scopes: {} btreemap_v2_remove_u64_blob8: total: - instructions: 597535434 + instructions: 597538858 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_u64_u64: total: - instructions: 619080526 + instructions: 619109964 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -2221,37 +1501,37 @@ benches: scopes: {} btreemap_v2_remove_vec_1024_128: total: - instructions: 5020456905 + instructions: 5022631520 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_128_128: total: - instructions: 1451042556 + instructions: 1452066520 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_16_128: total: - instructions: 907590325 + instructions: 907746224 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_256_128: total: - instructions: 2313326693 + instructions: 2314986697 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_1024: total: - instructions: 1673021222 + instructions: 1674012367 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_128: total: - instructions: 1010534168 + instructions: 1010787616 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -2263,7 +1543,7 @@ benches: scopes: {} btreemap_v2_remove_vec_32_256: total: - instructions: 1228590016 + instructions: 1229226325 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -2281,13 +1561,13 @@ benches: scopes: {} btreemap_v2_remove_vec_32_512: total: - instructions: 1392150674 + instructions: 1392996478 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_64: total: - instructions: 923615504 + instructions: 923651396 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -2299,25 +1579,25 @@ benches: scopes: {} btreemap_v2_remove_vec_4_128: total: - instructions: 649594780 + instructions: 649657252 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_512_128: total: - instructions: 3264643019 + instructions: 3266656938 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_64_128: total: - instructions: 1178301615 + instructions: 1178765367 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_8_128: total: - instructions: 819927738 + instructions: 820045093 heap_increase: 0 stable_memory_increase: 0 scopes: {} From f794dfc4f8da92f1364815358d566a2b4709991b Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Fri, 16 May 2025 11:43:45 +0200 Subject: [PATCH 55/68] csv --- canbench_results.csv | 570 +++++++++++++++++++++---------------------- 1 file changed, 285 insertions(+), 285 deletions(-) diff --git a/canbench_results.csv b/canbench_results.csv index 012839f9..6fbbf1c2 100644 --- a/canbench_results.csv +++ b/canbench_results.csv @@ -1,289 +1,289 @@ status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_increase Δ,heap_increase Δ%,stable_memory_increase,stable_memory_increase Δ,stable_memory_increase Δ% -,btreemap_v2_contains_10mib_values,142213004,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob8_u64,277713087,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_1024_128,4897884819,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_128_128,925983020,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_16_128,304185180,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_256_128,1482592583,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_1024,334889492,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_128,332336378,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_16,336647532,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_256,336952134,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_32,337767804,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_4,333734209,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_512,332809414,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_64,335145674,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_8,334699459,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_4_128,244876846,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_512_128,2624677444,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_64_128,584178824,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_8_128,268359561,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_u64_blob8,234897323,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_u64_u64,236421608,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_u64_vec8,234897338,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec8_u64,366491431,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_1024_128,2875641971,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_128_128,698056573,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_16_128,430496510,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_256_128,1220085542,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_1024,573798539,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_128,488603839,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_16,408307710,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_256,521878485,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_32,408806200,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_4,407179812,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_512,536998195,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_64,463602926,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_8,407102811,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_4_128,397153848,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_512_128,1812299060,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_64_128,594729377,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_8_128,388847731,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_10mib_values,1227472657,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob8_u64,297139911,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_1024_128,4953924210,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_128_128,947186495,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_16_128,317354417,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_256_128,1507431266,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_1024,353756221,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_128,345894163,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_16,346953462,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_256,351580221,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_32,348889561,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_4,343473664,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_512,348929751,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_64,347119635,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_8,345315038,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_4_128,257370621,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_512_128,2659912132,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_64_128,601774814,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_8_128,281640219,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_u64_blob8,245362209,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_u64_u64,249268645,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_u64_vec8,246137433,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec8_u64,376858286,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_1024_128,2921959775,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_128_128,710827388,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_16_128,440398211,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_256_128,1233367092,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_1024,606431114,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_128,498908637,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_16,416949497,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_256,539821398,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_32,417020079,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_4,415119023,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_512,558783250,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_64,472181771,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_8,415079885,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_4_128,407056995,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_512_128,1825704224,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_64_128,606201847,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_8_128,398653757,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_insert_10mib_values,5235944819,-330349,-0.01%,322,0,0.00%,3613,0,0.00% -,btreemap_v2_insert_blob8_u64,440868627,6706,0.00%,0,0,0.00%,4,0,0.00% -,btreemap_v2_insert_blob_1024_128,5104008235,0,0.00%,0,0,0.00%,196,0,0.00% -,btreemap_v2_insert_blob_128_128,1133684047,0,0.00%,0,0,0.00%,46,0,0.00% -,btreemap_v2_insert_blob_16_128,494767994,2,0.00%,0,0,0.00%,24,0,0.00% -,btreemap_v2_insert_blob_256_128,1683872591,0,0.00%,0,0,0.00%,67,0,0.00% -,btreemap_v2_insert_blob_32_1024,687122501,0,0.00%,0,0,0.00%,173,0,0.00% -,btreemap_v2_insert_blob_32_128,529123151,0,0.00%,0,0,0.00%,28,0,0.00% -,btreemap_v2_insert_blob_32_16,508434275,10,0.00%,0,0,0.00%,11,0,0.00% -,btreemap_v2_insert_blob_32_256,560318880,4,0.00%,0,0,0.00%,49,0,0.00% -,btreemap_v2_insert_blob_32_32,514031722,0,0.00%,0,0,0.00%,13,0,0.00% -,btreemap_v2_insert_blob_32_4,496606799,168,0.00%,0,0,0.00%,8,0,0.00% -,btreemap_v2_insert_blob_32_512,597566608,4,0.00%,0,0,0.00%,91,0,0.00% -,btreemap_v2_insert_blob_32_64,519519045,0,0.00%,0,0,0.00%,18,0,0.00% -,btreemap_v2_insert_blob_32_8,503751175,0,0.00%,0,0,0.00%,9,0,0.00% -,btreemap_v2_insert_blob_4_128,410411927,3,0.00%,0,0,0.00%,13,0,0.00% -,btreemap_v2_insert_blob_512_128,2855055481,0,0.00%,0,0,0.00%,111,0,0.00% -,btreemap_v2_insert_blob_64_128,777536947,0,0.00%,0,0,0.00%,34,0,0.00% -,btreemap_v2_insert_blob_8_128,462943499,2,0.00%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_u64_blob8,422655288,1107,0.00%,0,0,0.00%,5,0,0.00% -,btreemap_v2_insert_u64_u64,431505229,8162,0.00%,0,0,0.00%,6,0,0.00% -,btreemap_v2_insert_u64_vec8,429929989,0,0.00%,0,0,0.00%,21,0,0.00% -,btreemap_v2_insert_vec8_u64,581931268,0,0.00%,0,0,0.00%,16,0,0.00% -,btreemap_v2_insert_vec_1024_128,3319375377,1208486,+0.04%,0,0,0.00%,193,0,0.00% -,btreemap_v2_insert_vec_128_128,1095946163,639712,+0.06%,0,0,0.00%,51,0,0.00% -,btreemap_v2_insert_vec_16_128,703380587,127293,+0.02%,0,0,0.00%,31,0,0.00% -,btreemap_v2_insert_vec_256_128,1506981804,971184,+0.06%,0,0,0.00%,71,0,0.00% -,btreemap_v2_insert_vec_32_1024,1222339084,569577,+0.05%,0,0,0.00%,171,0,0.00% -,btreemap_v2_insert_vec_32_128,761818423,191793,+0.03%,0,0,0.00%,33,0,0.00% -,btreemap_v2_insert_vec_32_16,663288909,0,0.00%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_vec_32_256,890722862,389923,+0.04%,0,0,0.00%,54,0,0.00% -,btreemap_v2_insert_vec_32_32,666181941,0,0.00%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_vec_32_4,660361307,0,0.00%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_vec_32_512,1009138885,495940,+0.05%,0,0,0.00%,91,0,0.00% -,btreemap_v2_insert_vec_32_64,692141273,23178,0.00%,0,0,0.00%,24,0,0.00% -,btreemap_v2_insert_vec_32_8,660131454,0,0.00%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_vec_4_128,608680659,76226,+0.01%,0,0,0.00%,16,0,0.00% -,btreemap_v2_insert_vec_512_128,2128089786,1136292,+0.05%,0,0,0.00%,112,0,0.00% -,btreemap_v2_insert_vec_64_128,880497251,324323,+0.04%,0,0,0.00%,41,0,0.00% -,btreemap_v2_insert_vec_8_128,666361818,115464,+0.02%,0,0,0.00%,23,0,0.00% -,btreemap_v2_mem_manager_contains_blob512_u64,2717630382,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_contains_u64_blob512,311110875,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_contains_u64_u64,316748263,-25453,-0.01%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_contains_u64_vec512,395074621,-660033,-0.17%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_contains_vec512_u64,1752116437,-2650052,-0.15%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_get_blob512_u64,2762707145,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_get_u64_blob512,327868758,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_get_u64_u64,329780567,-25843,-0.01%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_get_u64_vec512,421942583,-718932,-0.17%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_get_vec512_u64,1789680475,-2710046,-0.15%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_blob512_u64,2959846184,-272,-0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_u64_blob512,647064908,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_u64_u64,560836562,-25562,-0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_u64_vec512,900634331,-1208543,-0.13%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_vec512_u64,2238024968,-3174377,-0.14%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_blob512_u64,3847539102,-170,-0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_u64_blob512,947364196,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_u64_u64,807344380,-61213,-0.01%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_u64_vec512,1285424872,-1644318,-0.13%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_vec512_u64,3312475662,-3908222,-0.12%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob8_u64,608312410,20749,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_1024_128,9398188467,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_128_128,2007415368,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_16_128,757418973,7,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_256_128,3093785202,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_1024,1132453514,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_128,876371666,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_16,819915580,10,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_256,907503807,4,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_32,831628016,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_4,802090340,369,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_512,973265658,2,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_64,838693246,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_8,818463796,56,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_4_128,371985311,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_512_128,5172264952,8,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_64_128,1328879808,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_8_128,611407100,8,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_u64_blob8,705251730,3465,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_u64_u64,717356696,26819,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_u64_vec8,709593211,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec8_u64,782287090,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_1024_128,5764081817,1815881,+0.03%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_128_128,1816421653,874999,+0.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_16_128,1024586335,143149,+0.01%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_256_128,2529716684,1409149,+0.06%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_1024,1812179448,828657,+0.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_128,1205040545,226368,+0.02%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_16,1039338017,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_256,1327068201,525150,+0.04%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_32,1055530159,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_4,1038272566,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_512,1490585519,702963,+0.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_64,1089790483,33540,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_8,1050176827,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_4_128,537481485,56895,+0.01%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_512_128,3600978903,1676332,+0.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_64_128,1402296775,404678,+0.03%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_8_128,845611404,107164,+0.01%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob8_u64,592384197,21650,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_1024_128,9219664993,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_128_128,1958516704,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_16_128,738623017,2,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_256_128,3020531374,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_1024,1112565105,2,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_128,854347996,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_16,798819040,4,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_256,886655818,4,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_32,810795267,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_4,787773960,449,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_512,955218753,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_64,820640883,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_8,797866799,47,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_4_128,363658412,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_512_128,5053410207,4,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_64_128,1307018060,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_8_128,611183036,7,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_u64_blob8,692890659,3945,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_u64_u64,704605693,27710,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_u64_vec8,695997588,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec8_u64,763627664,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_1024_128,6011671477,1818859,+0.03%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_128_128,1830309719,877525,+0.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_16_128,1012789371,143893,+0.01%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_256_128,2583020373,1408905,+0.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_1024,1807002225,828221,+0.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_128,1204248068,227797,+0.02%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_16,1028212700,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_256,1324529488,525174,+0.04%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_32,1043904024,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_4,1036623333,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_512,1490891594,702058,+0.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_64,1084573805,34332,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_8,1038381761,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_4_128,528623870,55398,+0.01%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_512_128,3723931830,1676968,+0.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_64_128,1415805191,403336,+0.03%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_8_128,853248522,107122,+0.01%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_count_1k_0b,16871,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_count_1k_10kib,2440306,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_count_20_10mib,20572482,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_key_sum_1k_0b,17405,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_key_sum_1k_10kib,57254917,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_key_sum_20_10mib,1105826146,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_value_sum_1k_0b,17419,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_value_sum_1k_10kib,57266913,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_value_sum_20_10mib,1105826382,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_10mib_values,5561183230,-154298,-0.00%,0,0,0.00%,657,0,0.00% -,btreemap_v2_remove_blob8_u64,587170055,22051,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_1024_128,6474121980,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_128_128,1466116527,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_16_128,680002778,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_256_128,2195216146,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_1024,965884147,2,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_128,731104521,2,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_16,687174807,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_256,765993262,18,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_32,695978850,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_4,679309894,280,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_512,837922202,2,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_64,720007632,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_8,679954212,51,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_4_128,455500790,8,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_512_128,3600501128,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_64_128,1020115077,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_8_128,607878082,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_u64_blob8,597538858,3424,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_u64_u64,619109964,29438,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_u64_vec8,603458045,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec8_u64,750426147,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_1024_128,5022631520,2174615,+0.04%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_128_128,1452066520,1023964,+0.07%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_16_128,907746224,155899,+0.02%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_256_128,2314986697,1660004,+0.07%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_1024,1674012367,991145,+0.06%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_128,1010787616,253448,+0.03%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_16,834640728,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_256,1229226325,636309,+0.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_32,841144006,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_4,839617721,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_512,1392996478,845804,+0.06%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_64,923651396,35892,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_8,833306650,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_4_128,649657252,62472,0.01%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_512_128,3266656938,2013919,+0.06%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_64_128,1178765367,463752,+0.04%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_8_128,820045093,117355,+0.01%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_1k_0b,1493458,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_1k_10kib,57069957,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_20_10mib,1103719699,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_rev_1k_0b,1495597,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_rev_1k_10kib,57047594,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_rev_20_10mib,1103719281,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_1k_0b,946083,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_1k_10kib,2359607,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_20_10mib,18465439,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_rev_1k_0b,963320,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_rev_1k_10kib,2355505,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_rev_20_10mib,18465774,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_1k_0b,1490856,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_1k_10kib,57067355,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_20_10mib,1103719649,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_rev_1k_0b,1492995,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_rev_1k_10kib,57044992,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_rev_20_10mib,1103719231,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_10mib_values,142229058,16054,+0.01%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob8_u64,292071256,14358169,+5.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_1024_128,3004678141,-1893206678,-38.65%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_128_128,665016023,-260966997,-28.18%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_16_128,299266114,-4919066,-1.62%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_256_128,985524245,-497068338,-33.53%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_1024,317750197,-17139295,-5.12%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_128,317486525,-14849853,-4.47%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_16,316913507,-19734025,-5.86%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_256,319375798,-17576336,-5.22%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_32,321175428,-16592376,-4.91%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_4,317302163,-16432046,-4.92%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_512,317454763,-15354651,-4.61%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_64,320828457,-14317217,-4.27%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_8,318450047,-16249412,-4.85%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_4_128,264127393,19250547,+7.86%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_512_128,1657176786,-967500658,-36.86%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_64_128,400794429,-183384395,-31.39%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_8_128,280164328,11804767,+4.40%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_u64_blob8,249345668,14448345,+6.15%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_u64_u64,255212854,18791246,+7.95%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_u64_vec8,249345668,14448330,+6.15%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec8_u64,331414697,-35076734,-9.57%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_1024_128,1843552548,-1032089423,-35.89%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_128_128,559068813,-138987760,-19.91%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_16_128,379282562,-51213948,-11.90%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_256_128,913001425,-307084117,-25.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_1024,512588096,-61210443,-10.67%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_128,433820781,-54783058,-11.21%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_16,363297614,-45010096,-11.02%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_256,441973791,-79904694,-15.31%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_32,363312712,-45493488,-11.13%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_4,362491802,-44688010,-10.98%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_512,477204790,-59793405,-11.13%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_64,403341248,-60261678,-13.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_8,362531723,-44571088,-10.95%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_4_128,352494755,-44659093,-11.24%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_512_128,1272734638,-539564422,-29.77%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_64_128,508397924,-86331453,-14.52%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_8_128,350968224,-37879507,-9.74%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_10mib_values,1227489035,16378,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob8_u64,304816032,7676121,+2.58%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_1024_128,3144320444,-1809603766,-36.53%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_128_128,698826651,-248359844,-26.22%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_16_128,313298866,-4055551,-1.28%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_256_128,1032439290,-474991976,-31.51%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_1024,338180223,-15575998,-4.40%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_128,332624198,-13269965,-3.84%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_16,328919681,-18033781,-5.20%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_256,335563422,-16016799,-4.56%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_32,333781460,-15108101,-4.33%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_4,328246778,-15226886,-4.43%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_512,335192871,-13736880,-3.94%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_64,334932529,-12187106,-3.51%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_8,329900204,-15414834,-4.46%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_4_128,276743152,19372531,+7.53%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_512_128,1734963607,-924948525,-34.77%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_64_128,425486333,-176288481,-29.29%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_8_128,293940212,12299993,+4.37%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_u64_blob8,260251406,14889197,+6.07%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_u64_u64,268110583,18841938,+7.56%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_u64_vec8,261065188,14927755,+6.06%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec8_u64,343885017,-32973269,-8.75%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_1024_128,1892468068,-1029491707,-35.23%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_128_128,571871925,-138955463,-19.55%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_16_128,390610021,-49788190,-11.31%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_256_128,926323429,-307043663,-24.89%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_1024,555478534,-50952580,-8.40%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_128,444489523,-54419114,-10.91%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_16,371411562,-45537935,-10.92%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_256,460059095,-79762303,-14.78%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_32,371559358,-45460721,-10.90%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_4,370813831,-44305192,-10.67%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_512,499706941,-59076309,-10.57%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_64,412299789,-59881982,-12.68%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_8,370858341,-44221544,-10.65%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_4_128,363440040,-43616955,-10.72%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_512_128,1285923842,-539780382,-29.57%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_64_128,519684483,-86517364,-14.27%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_8_128,361789415,-36864342,-9.25%,0,0,0.00%,0,0,0.00% +,btreemap_v2_insert_10mib_values,5236020394,75575,0.00%,322,0,0.00%,3613,0,0.00% +,btreemap_v2_insert_blob8_u64,501716659,60848032,+13.80%,0,0,0.00%,4,0,0.00% +,btreemap_v2_insert_blob_1024_128,4298409341,-805598894,-15.78%,0,0,0.00%,196,0,0.00% +,btreemap_v2_insert_blob_128_128,1062334322,-71349725,-6.29%,0,0,0.00%,46,0,0.00% +,btreemap_v2_insert_blob_16_128,550033663,55265669,+11.17%,0,0,0.00%,24,0,0.00% +,btreemap_v2_insert_blob_256_128,1517044762,-166827829,-9.91%,0,0,0.00%,67,0,0.00% +,btreemap_v2_insert_blob_32_1024,732784071,45661570,+6.65%,0,0,0.00%,173,0,0.00% +,btreemap_v2_insert_blob_32_128,577281316,48158165,+9.10%,0,0,0.00%,28,0,0.00% +,btreemap_v2_insert_blob_32_16,555235014,46800739,+9.20%,0,0,0.00%,11,0,0.00% +,btreemap_v2_insert_blob_32_256,603441750,43122870,+7.70%,0,0,0.00%,49,0,0.00% +,btreemap_v2_insert_blob_32_32,560817016,46785294,+9.10%,0,0,0.00%,13,0,0.00% +,btreemap_v2_insert_blob_32_4,544048239,47441440,+9.55%,0,0,0.00%,8,0,0.00% +,btreemap_v2_insert_blob_32_512,645074828,47508220,+7.95%,0,0,0.00%,91,0,0.00% +,btreemap_v2_insert_blob_32_64,567941552,48422507,+9.32%,0,0,0.00%,18,0,0.00% +,btreemap_v2_insert_blob_32_8,549794717,46043542,+9.14%,0,0,0.00%,9,0,0.00% +,btreemap_v2_insert_blob_4_128,477592446,67180519,+16.37%,0,0,0.00%,13,0,0.00% +,btreemap_v2_insert_blob_512_128,2459054925,-396000556,-13.87%,0,0,0.00%,111,0,0.00% +,btreemap_v2_insert_blob_64_128,691018270,-86518677,-11.13%,0,0,0.00%,34,0,0.00% +,btreemap_v2_insert_blob_8_128,524164752,61221253,+13.22%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_u64_blob8,491247984,68592696,+16.23%,0,0,0.00%,5,0,0.00% +,btreemap_v2_insert_u64_u64,500866926,69361697,+16.07%,0,0,0.00%,6,0,0.00% +,btreemap_v2_insert_u64_vec8,501307103,71377114,+16.60%,0,0,0.00%,21,0,0.00% +,btreemap_v2_insert_vec8_u64,614982299,33051031,+5.68%,0,0,0.00%,16,0,0.00% +,btreemap_v2_insert_vec_1024_128,2789610913,-529764464,-15.96%,0,0,0.00%,193,0,0.00% +,btreemap_v2_insert_vec_128_128,1042177787,-53768376,-4.91%,0,0,0.00%,51,0,0.00% +,btreemap_v2_insert_vec_16_128,738414762,35034175,+4.98%,0,0,0.00%,31,0,0.00% +,btreemap_v2_insert_vec_256_128,1423894681,-83087123,-5.51%,0,0,0.00%,71,0,0.00% +,btreemap_v2_insert_vec_32_1024,1243910406,21571322,+1.76%,0,0,0.00%,171,0,0.00% +,btreemap_v2_insert_vec_32_128,782955660,21137237,+2.77%,0,0,0.00%,33,0,0.00% +,btreemap_v2_insert_vec_32_16,690772545,27483636,+4.14%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_vec_32_256,906365509,15642647,+1.76%,0,0,0.00%,54,0,0.00% +,btreemap_v2_insert_vec_32_32,684749908,18567967,+2.79%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_vec_32_4,684856776,24495469,+3.71%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_vec_32_512,1026119993,16981108,+1.68%,0,0,0.00%,91,0,0.00% +,btreemap_v2_insert_vec_32_64,716558458,24417185,+3.53%,0,0,0.00%,24,0,0.00% +,btreemap_v2_insert_vec_32_8,684037572,23906118,+3.62%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_vec_4_128,648407960,39727301,+6.53%,0,0,0.00%,16,0,0.00% +,btreemap_v2_insert_vec_512_128,1901572280,-226517506,-10.64%,0,0,0.00%,112,0,0.00% +,btreemap_v2_insert_vec_64_128,873371621,-7125630,-0.81%,0,0,0.00%,41,0,0.00% +,btreemap_v2_insert_vec_8_128,707096235,40734417,+6.11%,0,0,0.00%,23,0,0.00% +,btreemap_v2_mem_manager_contains_blob512_u64,1775949161,-941681221,-34.65%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_contains_u64_blob512,311272695,161820,+0.05%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_contains_u64_u64,317156841,408578,+0.13%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_contains_u64_vec512,400392398,5317777,+1.35%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_contains_vec512_u64,1258425858,-493690579,-28.18%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_get_blob512_u64,1863808659,-898898486,-32.54%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_get_u64_blob512,329294891,1426133,+0.43%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_get_u64_u64,331652326,1871759,+0.57%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_get_u64_vec512,427935018,5992435,+1.42%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_get_vec512_u64,1303577687,-486102788,-27.16%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_blob512_u64,2597565947,-362280237,-12.24%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_u64_blob512,707049704,59984796,+9.27%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_u64_u64,621126909,60290347,+10.75%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_u64_vec512,960296871,59662540,+6.62%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_vec512_u64,2031591198,-206433770,-9.22%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_blob512_u64,3736567051,-110972051,-2.88%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_u64_blob512,1034958115,87593919,+9.25%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_u64_u64,892052152,84707772,+10.49%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_u64_vec512,1375819243,90394371,+7.03%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_vec512_u64,3198591960,-113883702,-3.44%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob8_u64,629253248,20940838,+3.44%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_1024_128,6147001197,-3251187270,-34.59%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_128_128,1531908056,-475507312,-23.69%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_16_128,765283250,7864277,+1.04%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_256_128,2185233950,-908551252,-29.37%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_1024,1116736838,-15716676,-1.39%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_128,860692670,-15678996,-1.79%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_16,802464245,-17451335,-2.13%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_256,892952288,-14551519,-1.60%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_32,811824098,-19803918,-2.38%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_4,786045356,-16044984,-2.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_512,960837938,-12427720,-1.28%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_64,823444657,-15248589,-1.82%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_8,802974323,-15489473,-1.89%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_4_128,399711532,27726221,+7.45%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_512_128,3509572847,-1662692105,-32.15%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_64_128,1025420211,-303459597,-22.84%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_8_128,634095102,22688002,+3.71%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_u64_blob8,753793039,48541309,+6.88%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_u64_u64,768155629,50798933,+7.08%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_u64_vec8,757240426,47647215,+6.71%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec8_u64,732991720,-49295370,-6.30%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_1024_128,4085915603,-1678166214,-29.11%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_128_128,1538597561,-277824092,-15.30%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_16_128,969028764,-55557571,-5.42%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_256_128,2055957144,-473759540,-18.73%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_1024,1717441040,-94738408,-5.23%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_128,1114978395,-90062150,-7.47%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_16,961475566,-77862451,-7.49%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_256,1243299725,-83768476,-6.31%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_32,955175429,-100354730,-9.51%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_4,948465621,-89806945,-8.65%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_512,1398936327,-91649192,-6.15%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_64,1002725828,-87064655,-7.99%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_8,959526555,-90650272,-8.63%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_4_128,519693694,-17787791,-3.31%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_512_128,2758195778,-842783125,-23.40%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_64_128,1262234043,-140062732,-9.99%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_8_128,808949551,-36661853,-4.34%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob8_u64,605594719,13210522,+2.23%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_1024_128,5830793696,-3388871297,-36.76%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_128_128,1465499866,-493016838,-25.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_16_128,738880823,257806,+0.03%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_256_128,2079294367,-941237007,-31.16%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_1024,1085669333,-26895772,-2.42%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_128,830643675,-23704321,-2.77%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_16,769688933,-29130107,-3.65%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_256,861919416,-24736402,-2.79%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_32,780760100,-30035167,-3.70%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_4,760677261,-27096699,-3.44%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_512,933506500,-21712253,-2.27%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_64,795410677,-25230206,-3.07%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_8,771816802,-26049997,-3.26%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_4_128,386661070,23002658,+6.33%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_512_128,3345362741,-1708047466,-33.80%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_64_128,990351700,-316666360,-24.23%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_8_128,624461847,13278811,+2.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_u64_blob8,729066416,36175757,+5.22%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_u64_u64,743800192,39194499,+5.56%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_u64_vec8,731910124,35912536,+5.16%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec8_u64,708957905,-54669759,-7.16%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_1024_128,4313316700,-1698354777,-28.25%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_128_128,1552648335,-277661384,-15.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_16_128,947358933,-65430438,-6.46%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_256_128,2129557691,-453462682,-17.56%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_1024,1698443491,-108558734,-6.01%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_128,1096848946,-107399122,-8.92%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_16,941209083,-87003617,-8.46%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_256,1226663580,-97865908,-7.39%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_32,936303418,-107600606,-10.31%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_4,934258686,-102364647,-9.87%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_512,1389566809,-101324785,-6.80%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_64,983167413,-101406392,-9.35%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_8,937711654,-100670107,-9.69%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_4_128,504246189,-24377681,-4.61%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_512_128,2873424953,-850506877,-22.84%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_64_128,1255974553,-159830638,-11.29%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_8_128,801484501,-51764021,-6.07%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_count_1k_0b,20115,3244,+19.23%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_count_1k_10kib,2986687,546381,+22.39%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_count_20_10mib,20584404,11922,+0.06%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_key_sum_1k_0b,20531,3126,+17.96%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_key_sum_1k_10kib,57677193,422276,+0.74%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_key_sum_20_10mib,1105836590,10444,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_value_sum_1k_0b,20545,3126,+17.95%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_value_sum_1k_10kib,57689189,422276,+0.74%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_value_sum_20_10mib,1105836826,10444,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_10mib_values,5561272860,89630,0.00%,0,0,0.00%,657,0,0.00% +,btreemap_v2_remove_blob8_u64,667900563,80730508,+13.75%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_1024_128,6063706104,-410415876,-6.34%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_128_128,1457463878,-8652649,-0.59%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_16_128,757672413,77669635,+11.42%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_256_128,2098091924,-97124222,-4.42%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_1024,1036297823,70413676,+7.29%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_128,801420541,70316020,+9.62%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_16,755774413,68599606,+9.98%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_256,837217335,71224073,+9.30%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_32,765911420,69932570,+10.05%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_4,750822623,71512729,+10.53%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_512,911302025,73379823,+8.76%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_64,793243985,73236353,+10.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_8,749626337,69672125,+10.25%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_4_128,522538214,67037424,+14.72%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_512_128,3448674395,-151826733,-4.22%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_64_128,947748278,-72366799,-7.09%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_8_128,685714058,77835976,+12.80%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_u64_blob8,689441571,91902713,+15.38%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_u64_u64,712995636,93885672,+15.16%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_u64_vec8,695853424,92395379,+15.31%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec8_u64,804496668,54070521,+7.21%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_1024_128,4560037620,-462593900,-9.21%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_128_128,1473629560,21563040,+1.48%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_16_128,971674171,63927947,+7.04%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_256_128,2293167894,-21818803,-0.94%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_1024,1732355221,58342854,+3.49%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_128,1069927739,59140123,+5.85%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_16,890477096,55836368,+6.69%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_256,1280544115,51317790,+4.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_32,897812266,56668260,+6.74%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_4,896826883,57209162,+6.81%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_512,1443936645,50940167,+3.66%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_64,979473079,55821683,+6.04%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_8,890819873,57513223,+6.90%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_4_128,687282319,37625067,+5.79%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_512_128,3130403453,-136253485,-4.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_64_128,1192475703,13710336,+1.16%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_8_128,877067292,57022199,+6.95%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_1k_0b,1981104,487646,+32.65%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_1k_10kib,57549224,479267,+0.84%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_20_10mib,1103729363,9664,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_rev_1k_0b,1981815,486218,+32.51%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_rev_1k_10kib,57530291,482697,+0.85%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_rev_20_10mib,1103728938,9657,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_1k_0b,1551166,605083,+63.96%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_1k_10kib,2958502,598895,+25.38%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_20_10mib,18477478,12039,+0.07%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_rev_1k_0b,1552873,589553,+61.20%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_rev_1k_10kib,2941017,585512,+24.86%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_rev_20_10mib,18477506,11732,+0.06%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_1k_0b,1941502,450646,+30.23%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_1k_10kib,57509622,442267,+0.77%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_20_10mib,1103728573,8924,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_rev_1k_0b,1942213,449218,+30.09%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_rev_1k_10kib,57490689,445697,+0.78%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_rev_20_10mib,1103728148,8917,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% From 5eb55f67afee63839ff47d87e6f736fbc181a113 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Fri, 16 May 2025 12:24:53 +0200 Subject: [PATCH 56/68] cargo branch maksym/fmt --- scripts/ci_run_benchmark.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ci_run_benchmark.sh b/scripts/ci_run_benchmark.sh index 28eeeee3..143b04e3 100644 --- a/scripts/ci_run_benchmark.sh +++ b/scripts/ci_run_benchmark.sh @@ -25,7 +25,7 @@ CANBENCH_RESULTS_CSV_FILE="/tmp/canbench_results_${CANBENCH_JOB_NAME}.csv" # Install canbench. #cargo install --version 0.1.13 canbench -cargo install --git https://github.com/dfinity/canbench --branch main canbench +cargo install --git https://github.com/dfinity/canbench --branch maksym/fmt canbench # Verify that the canbench results file exists. if [ ! -f "$CANBENCH_RESULTS_FILE" ]; then From 01a053ef33e1146fad92d3cadebf4c0ee2bc0664 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Fri, 16 May 2025 13:08:28 +0200 Subject: [PATCH 57/68] cargo branch main --- canbench_results.csv | 240 ++++++++++++++++++------------------ scripts/ci_run_benchmark.sh | 2 +- 2 files changed, 121 insertions(+), 121 deletions(-) diff --git a/canbench_results.csv b/canbench_results.csv index 6fbbf1c2..a52a553f 100644 --- a/canbench_results.csv +++ b/canbench_results.csv @@ -1,6 +1,6 @@ status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_increase Δ,heap_increase Δ%,stable_memory_increase,stable_memory_increase Δ,stable_memory_increase Δ% -,btreemap_v2_contains_10mib_values,142229058,16054,+0.01%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob8_u64,292071256,14358169,+5.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_10mib_values,142229058,16054,0.01%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob8_u64,292071256,14358169,5.17%,0,0,0.00%,0,0,0.00% ,btreemap_v2_contains_blob_1024_128,3004678141,-1893206678,-38.65%,0,0,0.00%,0,0,0.00% ,btreemap_v2_contains_blob_128_128,665016023,-260966997,-28.18%,0,0,0.00%,0,0,0.00% ,btreemap_v2_contains_blob_16_128,299266114,-4919066,-1.62%,0,0,0.00%,0,0,0.00% @@ -14,13 +14,13 @@ status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_inc ,btreemap_v2_contains_blob_32_512,317454763,-15354651,-4.61%,0,0,0.00%,0,0,0.00% ,btreemap_v2_contains_blob_32_64,320828457,-14317217,-4.27%,0,0,0.00%,0,0,0.00% ,btreemap_v2_contains_blob_32_8,318450047,-16249412,-4.85%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_4_128,264127393,19250547,+7.86%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_4_128,264127393,19250547,7.86%,0,0,0.00%,0,0,0.00% ,btreemap_v2_contains_blob_512_128,1657176786,-967500658,-36.86%,0,0,0.00%,0,0,0.00% ,btreemap_v2_contains_blob_64_128,400794429,-183384395,-31.39%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_8_128,280164328,11804767,+4.40%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_u64_blob8,249345668,14448345,+6.15%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_u64_u64,255212854,18791246,+7.95%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_u64_vec8,249345668,14448330,+6.15%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_8_128,280164328,11804767,4.40%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_u64_blob8,249345668,14448345,6.15%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_u64_u64,255212854,18791246,7.95%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_u64_vec8,249345668,14448330,6.15%,0,0,0.00%,0,0,0.00% ,btreemap_v2_contains_vec8_u64,331414697,-35076734,-9.57%,0,0,0.00%,0,0,0.00% ,btreemap_v2_contains_vec_1024_128,1843552548,-1032089423,-35.89%,0,0,0.00%,0,0,0.00% ,btreemap_v2_contains_vec_128_128,559068813,-138987760,-19.91%,0,0,0.00%,0,0,0.00% @@ -40,7 +40,7 @@ status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_inc ,btreemap_v2_contains_vec_64_128,508397924,-86331453,-14.52%,0,0,0.00%,0,0,0.00% ,btreemap_v2_contains_vec_8_128,350968224,-37879507,-9.74%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_10mib_values,1227489035,16378,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob8_u64,304816032,7676121,+2.58%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob8_u64,304816032,7676121,2.58%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_blob_1024_128,3144320444,-1809603766,-36.53%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_blob_128_128,698826651,-248359844,-26.22%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_blob_16_128,313298866,-4055551,-1.28%,0,0,0.00%,0,0,0.00% @@ -54,13 +54,13 @@ status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_inc ,btreemap_v2_get_blob_32_512,335192871,-13736880,-3.94%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_blob_32_64,334932529,-12187106,-3.51%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_blob_32_8,329900204,-15414834,-4.46%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_4_128,276743152,19372531,+7.53%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_4_128,276743152,19372531,7.53%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_blob_512_128,1734963607,-924948525,-34.77%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_blob_64_128,425486333,-176288481,-29.29%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_8_128,293940212,12299993,+4.37%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_u64_blob8,260251406,14889197,+6.07%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_u64_u64,268110583,18841938,+7.56%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_u64_vec8,261065188,14927755,+6.06%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_8_128,293940212,12299993,4.37%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_u64_blob8,260251406,14889197,6.07%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_u64_u64,268110583,18841938,7.56%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_u64_vec8,261065188,14927755,6.06%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_vec8_u64,343885017,-32973269,-8.75%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_vec_1024_128,1892468068,-1029491707,-35.23%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_vec_128_128,571871925,-138955463,-19.55%,0,0,0.00%,0,0,0.00% @@ -80,69 +80,69 @@ status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_inc ,btreemap_v2_get_vec_64_128,519684483,-86517364,-14.27%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_vec_8_128,361789415,-36864342,-9.25%,0,0,0.00%,0,0,0.00% ,btreemap_v2_insert_10mib_values,5236020394,75575,0.00%,322,0,0.00%,3613,0,0.00% -,btreemap_v2_insert_blob8_u64,501716659,60848032,+13.80%,0,0,0.00%,4,0,0.00% +,btreemap_v2_insert_blob8_u64,501716659,60848032,13.80%,0,0,0.00%,4,0,0.00% ,btreemap_v2_insert_blob_1024_128,4298409341,-805598894,-15.78%,0,0,0.00%,196,0,0.00% ,btreemap_v2_insert_blob_128_128,1062334322,-71349725,-6.29%,0,0,0.00%,46,0,0.00% -,btreemap_v2_insert_blob_16_128,550033663,55265669,+11.17%,0,0,0.00%,24,0,0.00% +,btreemap_v2_insert_blob_16_128,550033663,55265669,11.17%,0,0,0.00%,24,0,0.00% ,btreemap_v2_insert_blob_256_128,1517044762,-166827829,-9.91%,0,0,0.00%,67,0,0.00% -,btreemap_v2_insert_blob_32_1024,732784071,45661570,+6.65%,0,0,0.00%,173,0,0.00% -,btreemap_v2_insert_blob_32_128,577281316,48158165,+9.10%,0,0,0.00%,28,0,0.00% -,btreemap_v2_insert_blob_32_16,555235014,46800739,+9.20%,0,0,0.00%,11,0,0.00% -,btreemap_v2_insert_blob_32_256,603441750,43122870,+7.70%,0,0,0.00%,49,0,0.00% -,btreemap_v2_insert_blob_32_32,560817016,46785294,+9.10%,0,0,0.00%,13,0,0.00% -,btreemap_v2_insert_blob_32_4,544048239,47441440,+9.55%,0,0,0.00%,8,0,0.00% -,btreemap_v2_insert_blob_32_512,645074828,47508220,+7.95%,0,0,0.00%,91,0,0.00% -,btreemap_v2_insert_blob_32_64,567941552,48422507,+9.32%,0,0,0.00%,18,0,0.00% -,btreemap_v2_insert_blob_32_8,549794717,46043542,+9.14%,0,0,0.00%,9,0,0.00% -,btreemap_v2_insert_blob_4_128,477592446,67180519,+16.37%,0,0,0.00%,13,0,0.00% +,btreemap_v2_insert_blob_32_1024,732784071,45661570,6.65%,0,0,0.00%,173,0,0.00% +,btreemap_v2_insert_blob_32_128,577281316,48158165,9.10%,0,0,0.00%,28,0,0.00% +,btreemap_v2_insert_blob_32_16,555235014,46800739,9.20%,0,0,0.00%,11,0,0.00% +,btreemap_v2_insert_blob_32_256,603441750,43122870,7.70%,0,0,0.00%,49,0,0.00% +,btreemap_v2_insert_blob_32_32,560817016,46785294,9.10%,0,0,0.00%,13,0,0.00% +,btreemap_v2_insert_blob_32_4,544048239,47441440,9.55%,0,0,0.00%,8,0,0.00% +,btreemap_v2_insert_blob_32_512,645074828,47508220,7.95%,0,0,0.00%,91,0,0.00% +,btreemap_v2_insert_blob_32_64,567941552,48422507,9.32%,0,0,0.00%,18,0,0.00% +,btreemap_v2_insert_blob_32_8,549794717,46043542,9.14%,0,0,0.00%,9,0,0.00% +,btreemap_v2_insert_blob_4_128,477592446,67180519,16.37%,0,0,0.00%,13,0,0.00% ,btreemap_v2_insert_blob_512_128,2459054925,-396000556,-13.87%,0,0,0.00%,111,0,0.00% ,btreemap_v2_insert_blob_64_128,691018270,-86518677,-11.13%,0,0,0.00%,34,0,0.00% -,btreemap_v2_insert_blob_8_128,524164752,61221253,+13.22%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_u64_blob8,491247984,68592696,+16.23%,0,0,0.00%,5,0,0.00% -,btreemap_v2_insert_u64_u64,500866926,69361697,+16.07%,0,0,0.00%,6,0,0.00% -,btreemap_v2_insert_u64_vec8,501307103,71377114,+16.60%,0,0,0.00%,21,0,0.00% -,btreemap_v2_insert_vec8_u64,614982299,33051031,+5.68%,0,0,0.00%,16,0,0.00% +,btreemap_v2_insert_blob_8_128,524164752,61221253,13.22%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_u64_blob8,491247984,68592696,16.23%,0,0,0.00%,5,0,0.00% +,btreemap_v2_insert_u64_u64,500866926,69361697,16.07%,0,0,0.00%,6,0,0.00% +,btreemap_v2_insert_u64_vec8,501307103,71377114,16.60%,0,0,0.00%,21,0,0.00% +,btreemap_v2_insert_vec8_u64,614982299,33051031,5.68%,0,0,0.00%,16,0,0.00% ,btreemap_v2_insert_vec_1024_128,2789610913,-529764464,-15.96%,0,0,0.00%,193,0,0.00% ,btreemap_v2_insert_vec_128_128,1042177787,-53768376,-4.91%,0,0,0.00%,51,0,0.00% -,btreemap_v2_insert_vec_16_128,738414762,35034175,+4.98%,0,0,0.00%,31,0,0.00% +,btreemap_v2_insert_vec_16_128,738414762,35034175,4.98%,0,0,0.00%,31,0,0.00% ,btreemap_v2_insert_vec_256_128,1423894681,-83087123,-5.51%,0,0,0.00%,71,0,0.00% -,btreemap_v2_insert_vec_32_1024,1243910406,21571322,+1.76%,0,0,0.00%,171,0,0.00% -,btreemap_v2_insert_vec_32_128,782955660,21137237,+2.77%,0,0,0.00%,33,0,0.00% -,btreemap_v2_insert_vec_32_16,690772545,27483636,+4.14%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_vec_32_256,906365509,15642647,+1.76%,0,0,0.00%,54,0,0.00% -,btreemap_v2_insert_vec_32_32,684749908,18567967,+2.79%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_vec_32_4,684856776,24495469,+3.71%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_vec_32_512,1026119993,16981108,+1.68%,0,0,0.00%,91,0,0.00% -,btreemap_v2_insert_vec_32_64,716558458,24417185,+3.53%,0,0,0.00%,24,0,0.00% -,btreemap_v2_insert_vec_32_8,684037572,23906118,+3.62%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_vec_4_128,648407960,39727301,+6.53%,0,0,0.00%,16,0,0.00% +,btreemap_v2_insert_vec_32_1024,1243910406,21571322,1.76%,0,0,0.00%,171,0,0.00% +,btreemap_v2_insert_vec_32_128,782955660,21137237,2.77%,0,0,0.00%,33,0,0.00% +,btreemap_v2_insert_vec_32_16,690772545,27483636,4.14%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_vec_32_256,906365509,15642647,1.76%,0,0,0.00%,54,0,0.00% +,btreemap_v2_insert_vec_32_32,684749908,18567967,2.79%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_vec_32_4,684856776,24495469,3.71%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_vec_32_512,1026119993,16981108,1.68%,0,0,0.00%,91,0,0.00% +,btreemap_v2_insert_vec_32_64,716558458,24417185,3.53%,0,0,0.00%,24,0,0.00% +,btreemap_v2_insert_vec_32_8,684037572,23906118,3.62%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_vec_4_128,648407960,39727301,6.53%,0,0,0.00%,16,0,0.00% ,btreemap_v2_insert_vec_512_128,1901572280,-226517506,-10.64%,0,0,0.00%,112,0,0.00% ,btreemap_v2_insert_vec_64_128,873371621,-7125630,-0.81%,0,0,0.00%,41,0,0.00% -,btreemap_v2_insert_vec_8_128,707096235,40734417,+6.11%,0,0,0.00%,23,0,0.00% +,btreemap_v2_insert_vec_8_128,707096235,40734417,6.11%,0,0,0.00%,23,0,0.00% ,btreemap_v2_mem_manager_contains_blob512_u64,1775949161,-941681221,-34.65%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_contains_u64_blob512,311272695,161820,+0.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_contains_u64_u64,317156841,408578,+0.13%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_contains_u64_vec512,400392398,5317777,+1.35%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_contains_u64_blob512,311272695,161820,0.05%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_contains_u64_u64,317156841,408578,0.13%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_contains_u64_vec512,400392398,5317777,1.35%,0,0,0.00%,0,0,0.00% ,btreemap_v2_mem_manager_contains_vec512_u64,1258425858,-493690579,-28.18%,0,0,0.00%,0,0,0.00% ,btreemap_v2_mem_manager_get_blob512_u64,1863808659,-898898486,-32.54%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_get_u64_blob512,329294891,1426133,+0.43%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_get_u64_u64,331652326,1871759,+0.57%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_get_u64_vec512,427935018,5992435,+1.42%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_get_u64_blob512,329294891,1426133,0.43%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_get_u64_u64,331652326,1871759,0.57%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_get_u64_vec512,427935018,5992435,1.42%,0,0,0.00%,0,0,0.00% ,btreemap_v2_mem_manager_get_vec512_u64,1303577687,-486102788,-27.16%,0,0,0.00%,0,0,0.00% ,btreemap_v2_mem_manager_insert_blob512_u64,2597565947,-362280237,-12.24%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_u64_blob512,707049704,59984796,+9.27%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_u64_u64,621126909,60290347,+10.75%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_u64_vec512,960296871,59662540,+6.62%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_u64_blob512,707049704,59984796,9.27%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_u64_u64,621126909,60290347,10.75%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_u64_vec512,960296871,59662540,6.62%,0,0,0.00%,0,0,0.00% ,btreemap_v2_mem_manager_insert_vec512_u64,2031591198,-206433770,-9.22%,0,0,0.00%,0,0,0.00% ,btreemap_v2_mem_manager_remove_blob512_u64,3736567051,-110972051,-2.88%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_u64_blob512,1034958115,87593919,+9.25%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_u64_u64,892052152,84707772,+10.49%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_u64_vec512,1375819243,90394371,+7.03%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_u64_blob512,1034958115,87593919,9.25%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_u64_u64,892052152,84707772,10.49%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_u64_vec512,1375819243,90394371,7.03%,0,0,0.00%,0,0,0.00% ,btreemap_v2_mem_manager_remove_vec512_u64,3198591960,-113883702,-3.44%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob8_u64,629253248,20940838,+3.44%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob8_u64,629253248,20940838,3.44%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_1024_128,6147001197,-3251187270,-34.59%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_128_128,1531908056,-475507312,-23.69%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_16_128,765283250,7864277,+1.04%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_16_128,765283250,7864277,1.04%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_256_128,2185233950,-908551252,-29.37%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_32_1024,1116736838,-15716676,-1.39%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_32_128,860692670,-15678996,-1.79%,0,0,0.00%,0,0,0.00% @@ -153,13 +153,13 @@ status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_inc ,btreemap_v2_pop_first_blob_32_512,960837938,-12427720,-1.28%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_32_64,823444657,-15248589,-1.82%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_32_8,802974323,-15489473,-1.89%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_4_128,399711532,27726221,+7.45%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_4_128,399711532,27726221,7.45%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_512_128,3509572847,-1662692105,-32.15%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_64_128,1025420211,-303459597,-22.84%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_8_128,634095102,22688002,+3.71%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_u64_blob8,753793039,48541309,+6.88%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_u64_u64,768155629,50798933,+7.08%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_u64_vec8,757240426,47647215,+6.71%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_8_128,634095102,22688002,3.71%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_u64_blob8,753793039,48541309,6.88%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_u64_u64,768155629,50798933,7.08%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_u64_vec8,757240426,47647215,6.71%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_vec8_u64,732991720,-49295370,-6.30%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_vec_1024_128,4085915603,-1678166214,-29.11%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_vec_128_128,1538597561,-277824092,-15.30%,0,0,0.00%,0,0,0.00% @@ -178,10 +178,10 @@ status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_inc ,btreemap_v2_pop_first_vec_512_128,2758195778,-842783125,-23.40%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_vec_64_128,1262234043,-140062732,-9.99%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_vec_8_128,808949551,-36661853,-4.34%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob8_u64,605594719,13210522,+2.23%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob8_u64,605594719,13210522,2.23%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_1024_128,5830793696,-3388871297,-36.76%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_128_128,1465499866,-493016838,-25.17%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_16_128,738880823,257806,+0.03%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_16_128,738880823,257806,0.03%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_256_128,2079294367,-941237007,-31.16%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_32_1024,1085669333,-26895772,-2.42%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_32_128,830643675,-23704321,-2.77%,0,0,0.00%,0,0,0.00% @@ -192,13 +192,13 @@ status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_inc ,btreemap_v2_pop_last_blob_32_512,933506500,-21712253,-2.27%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_32_64,795410677,-25230206,-3.07%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_32_8,771816802,-26049997,-3.26%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_4_128,386661070,23002658,+6.33%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_4_128,386661070,23002658,6.33%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_512_128,3345362741,-1708047466,-33.80%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_64_128,990351700,-316666360,-24.23%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_8_128,624461847,13278811,+2.17%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_u64_blob8,729066416,36175757,+5.22%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_u64_u64,743800192,39194499,+5.56%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_u64_vec8,731910124,35912536,+5.16%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_8_128,624461847,13278811,2.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_u64_blob8,729066416,36175757,5.22%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_u64_u64,743800192,39194499,5.56%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_u64_vec8,731910124,35912536,5.16%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_vec8_u64,708957905,-54669759,-7.16%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_vec_1024_128,4313316700,-1698354777,-28.25%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_vec_128_128,1552648335,-277661384,-15.17%,0,0,0.00%,0,0,0.00% @@ -217,72 +217,72 @@ status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_inc ,btreemap_v2_pop_last_vec_512_128,2873424953,-850506877,-22.84%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_vec_64_128,1255974553,-159830638,-11.29%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_vec_8_128,801484501,-51764021,-6.07%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_count_1k_0b,20115,3244,+19.23%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_count_1k_10kib,2986687,546381,+22.39%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_count_20_10mib,20584404,11922,+0.06%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_key_sum_1k_0b,20531,3126,+17.96%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_key_sum_1k_10kib,57677193,422276,+0.74%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_count_1k_0b,20115,3244,19.23%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_count_1k_10kib,2986687,546381,22.39%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_count_20_10mib,20584404,11922,0.06%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_key_sum_1k_0b,20531,3126,17.96%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_key_sum_1k_10kib,57677193,422276,0.74%,0,0,0.00%,0,0,0.00% ,btreemap_v2_range_key_sum_20_10mib,1105836590,10444,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_value_sum_1k_0b,20545,3126,+17.95%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_value_sum_1k_10kib,57689189,422276,+0.74%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_value_sum_1k_0b,20545,3126,17.95%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_value_sum_1k_10kib,57689189,422276,0.74%,0,0,0.00%,0,0,0.00% ,btreemap_v2_range_value_sum_20_10mib,1105836826,10444,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_10mib_values,5561272860,89630,0.00%,0,0,0.00%,657,0,0.00% -,btreemap_v2_remove_blob8_u64,667900563,80730508,+13.75%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob8_u64,667900563,80730508,13.75%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_blob_1024_128,6063706104,-410415876,-6.34%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_blob_128_128,1457463878,-8652649,-0.59%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_16_128,757672413,77669635,+11.42%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_16_128,757672413,77669635,11.42%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_blob_256_128,2098091924,-97124222,-4.42%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_1024,1036297823,70413676,+7.29%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_128,801420541,70316020,+9.62%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_16,755774413,68599606,+9.98%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_256,837217335,71224073,+9.30%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_32,765911420,69932570,+10.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_4,750822623,71512729,+10.53%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_512,911302025,73379823,+8.76%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_64,793243985,73236353,+10.17%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_8,749626337,69672125,+10.25%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_4_128,522538214,67037424,+14.72%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_1024,1036297823,70413676,7.29%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_128,801420541,70316020,9.62%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_16,755774413,68599606,9.98%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_256,837217335,71224073,9.30%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_32,765911420,69932570,10.05%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_4,750822623,71512729,10.53%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_512,911302025,73379823,8.76%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_64,793243985,73236353,10.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_8,749626337,69672125,10.25%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_4_128,522538214,67037424,14.72%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_blob_512_128,3448674395,-151826733,-4.22%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_blob_64_128,947748278,-72366799,-7.09%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_8_128,685714058,77835976,+12.80%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_u64_blob8,689441571,91902713,+15.38%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_u64_u64,712995636,93885672,+15.16%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_u64_vec8,695853424,92395379,+15.31%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec8_u64,804496668,54070521,+7.21%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_8_128,685714058,77835976,12.80%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_u64_blob8,689441571,91902713,15.38%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_u64_u64,712995636,93885672,15.16%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_u64_vec8,695853424,92395379,15.31%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec8_u64,804496668,54070521,7.21%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_vec_1024_128,4560037620,-462593900,-9.21%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_128_128,1473629560,21563040,+1.48%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_16_128,971674171,63927947,+7.04%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_128_128,1473629560,21563040,1.48%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_16_128,971674171,63927947,7.04%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_vec_256_128,2293167894,-21818803,-0.94%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_1024,1732355221,58342854,+3.49%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_128,1069927739,59140123,+5.85%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_16,890477096,55836368,+6.69%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_256,1280544115,51317790,+4.17%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_32,897812266,56668260,+6.74%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_4,896826883,57209162,+6.81%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_512,1443936645,50940167,+3.66%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_64,979473079,55821683,+6.04%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_8,890819873,57513223,+6.90%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_4_128,687282319,37625067,+5.79%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_1024,1732355221,58342854,3.49%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_128,1069927739,59140123,5.85%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_16,890477096,55836368,6.69%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_256,1280544115,51317790,4.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_32,897812266,56668260,6.74%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_4,896826883,57209162,6.81%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_512,1443936645,50940167,3.66%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_64,979473079,55821683,6.04%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_8,890819873,57513223,6.90%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_4_128,687282319,37625067,5.79%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_vec_512_128,3130403453,-136253485,-4.17%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_64_128,1192475703,13710336,+1.16%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_8_128,877067292,57022199,+6.95%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_1k_0b,1981104,487646,+32.65%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_1k_10kib,57549224,479267,+0.84%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_64_128,1192475703,13710336,1.16%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_8_128,877067292,57022199,6.95%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_1k_0b,1981104,487646,32.65%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_1k_10kib,57549224,479267,0.84%,0,0,0.00%,0,0,0.00% ,btreemap_v2_scan_iter_20_10mib,1103729363,9664,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_rev_1k_0b,1981815,486218,+32.51%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_rev_1k_10kib,57530291,482697,+0.85%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_rev_1k_0b,1981815,486218,32.51%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_rev_1k_10kib,57530291,482697,0.85%,0,0,0.00%,0,0,0.00% ,btreemap_v2_scan_iter_rev_20_10mib,1103728938,9657,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_1k_0b,1551166,605083,+63.96%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_1k_10kib,2958502,598895,+25.38%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_20_10mib,18477478,12039,+0.07%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_rev_1k_0b,1552873,589553,+61.20%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_rev_1k_10kib,2941017,585512,+24.86%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_rev_20_10mib,18477506,11732,+0.06%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_1k_0b,1941502,450646,+30.23%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_1k_10kib,57509622,442267,+0.77%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_1k_0b,1551166,605083,63.96%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_1k_10kib,2958502,598895,25.38%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_20_10mib,18477478,12039,0.07%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_rev_1k_0b,1552873,589553,61.20%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_rev_1k_10kib,2941017,585512,24.86%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_rev_20_10mib,18477506,11732,0.06%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_1k_0b,1941502,450646,30.23%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_1k_10kib,57509622,442267,0.77%,0,0,0.00%,0,0,0.00% ,btreemap_v2_scan_values_20_10mib,1103728573,8924,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_rev_1k_0b,1942213,449218,+30.09%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_rev_1k_10kib,57490689,445697,+0.78%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_rev_1k_0b,1942213,449218,30.09%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_rev_1k_10kib,57490689,445697,0.78%,0,0,0.00%,0,0,0.00% ,btreemap_v2_scan_values_rev_20_10mib,1103728148,8917,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% diff --git a/scripts/ci_run_benchmark.sh b/scripts/ci_run_benchmark.sh index 143b04e3..28eeeee3 100644 --- a/scripts/ci_run_benchmark.sh +++ b/scripts/ci_run_benchmark.sh @@ -25,7 +25,7 @@ CANBENCH_RESULTS_CSV_FILE="/tmp/canbench_results_${CANBENCH_JOB_NAME}.csv" # Install canbench. #cargo install --version 0.1.13 canbench -cargo install --git https://github.com/dfinity/canbench --branch maksym/fmt canbench +cargo install --git https://github.com/dfinity/canbench --branch main canbench # Verify that the canbench results file exists. if [ ! -f "$CANBENCH_RESULTS_FILE" ]; then From f728b8efc04fe752b38e70689731b6521450373e Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Mon, 19 May 2025 10:25:32 +0200 Subject: [PATCH 58/68] rm parse benchmarks py --- benchmarks/scripts/parse_benchmarks.py | 240 ------------------------- 1 file changed, 240 deletions(-) delete mode 100755 benchmarks/scripts/parse_benchmarks.py diff --git a/benchmarks/scripts/parse_benchmarks.py b/benchmarks/scripts/parse_benchmarks.py deleted file mode 100755 index a7f1ee04..00000000 --- a/benchmarks/scripts/parse_benchmarks.py +++ /dev/null @@ -1,240 +0,0 @@ -#!/usr/bin/env python3 -import re -import sys -import csv -import logging -from itertools import product - -CHANGE_RE = re.compile(r'^(improved|regressed)\s+by\s+([\d.]+)%\s*$', re.IGNORECASE) -def parse_change(text): - m = CHANGE_RE.match(text or '') - if not m: - return 0.0 - direction, fraction = m.group(1).lower(), float(m.group(2)) / 100.0 - return -fraction if direction == 'improved' else fraction - - -METRIC_RE = re.compile( - r'^\s*(?P[^:]+):\s*' - r'(?P[\d.]+)\s*(?P\w+)' - r'(?:\s*\((?P[^)]+)\))?' -) -def parse_metric(line): - m = METRIC_RE.match(line) - if m: - change = m.group('change') - #print(change) - return ( - m.group('name').strip(), - float(m.group('value')), - m.group('unit'), - parse_change(change) - ) - - -BENCHMARK_RE = re.compile(r'^\s*Benchmark:\s+(?P.+?)(\s*\(new\))?\s*$') -UNIT_MULTIPLIERS = {'K': 10**3, 'M': 10**6, 'B': 10**9} -METRICS = { - 'instructions': ('instructions', UNIT_MULTIPLIERS), - 'heap_increase': ('heap_increase', 1), - 'stable_memory_increase': ('stable_memory_increase', 1), -} -def parse_bench_blocks(lines): - benchmarks = [] - current = None - - for line in lines: - bm = BENCHMARK_RE.match(line) - if bm: - if current: - benchmarks.append(current) - current = {'name': bm.group('name').strip()} - continue - - if not current: - continue - - parsed = parse_metric(line) - if not parsed: - continue - - name, val, unit, change = parsed - info = METRICS.get(name) - if not info: - continue - - field, mult = info - factor = mult.get(unit, 1) if isinstance(mult, dict) else mult - value = int(val * factor) - - if value: - current[field] = {'value': value, 'change': change} - - if current: - benchmarks.append(current) - return benchmarks - -BENCH_PREFIX_RE = re.compile( - r'btreemap_v(?P\d+)' - r'(?P_mem_manager)*' - r'_(?P\w+)' -) -FUNCTIONS = [ - 'insert', 'remove', 'get', 'contains', 'scan', 'pop_first', 'pop_last' -] -_FUNCS_PATTERN = "|".join(map(re.escape, FUNCTIONS)) -BENCH_FUNC_RE = re.compile( - rf"(?P{_FUNCS_PATTERN})_(?P\w+)?" -) -BENCH_TYPE_KEY_VALUE_RE = re.compile( - r'(?Pblob|vec)' - r'_(?P\d+)' - r'_(?P\d+)' -) -BENCH_TYPES_A_B_RE = re.compile( - r'(?Pu\d+|blob\d+|vec\d+)' - r'_(?Pu\d+|blob\d+|vec\d+)' -) - - -def parse_bench_by_name(bench): - m = BENCH_PREFIX_RE.match(bench['name']) - if m: - data = { - 'name': bench['name'], - 'version': int(m.group('version')), - 'mem_manager': len(m.group('mem_manager') or '') > 0, - 'instructions': bench['instructions']['value'], - 'instructions_change': bench['instructions']['change'], - } - - m = BENCH_FUNC_RE.match(m.group('remaining')) - if m: - data['func'] = m.group('func') - - remaining = m.group('remaining') - m = BENCH_TYPE_KEY_VALUE_RE.match(remaining) - if m: - data.update({ - 'schema': 'type-key-value', - 'type': m.group('type'), - 'key_size': int(m.group('k_size')), - 'value_size': int(m.group('v_size')), - }) - return data - - m = BENCH_TYPES_A_B_RE.match(remaining) - if m: - data.update({ - 'schema': 'types-a-b', - 'type_a': m.group('type_a'), - 'type_b': m.group('type_b'), - }) - return data - - -def load_benchmarks(path, verbose=False, logger=None): - logger = logger or logging.getLogger(__name__) - out = [] - with open(path) as f: - for block in parse_bench_blocks(f): - parsed = parse_bench_by_name(block) - if parsed: - out.append(parsed) - if verbose: - logger.info(f"Parsed: {parsed}") - elif verbose: - logger.warning(f"Failed to parse: {block['name'].strip()!r}") - return out - - -def save_all_tables(tables, sizes, filename): - fmt_instr = lambda v: "" if v is None else '{:.3f}'.format(v / 1e9) - fmt_change = lambda v: "" if v is None else '{:.1f}%'.format(v * 100.0) - - with open(filename, 'w', newline='') as f: - writer = csv.writer(f, delimiter='\t') - for tbl in tables: - writer.writerow([tbl['name']]) - writer.writerow(['{} | {}'.format(tbl['rows'], tbl['columns'])] + sizes + [''] + sizes) - instr, change = tbl['instructions'], tbl['instructions_change'] - for r in sizes: - writer.writerow( - [r] - + [fmt_instr(instr[r][c]) for c in sizes] - + [''] - + [fmt_change(change[r][c]) for c in sizes] - ) - writer.writerow([]) - - -def main(): - if len(sys.argv) != 2: - print(f"Usage: {sys.argv[0]} ") - sys.exit(1) - - logging.basicConfig(level=logging.WARNING, format="%(levelname)s: %(message)s") - logger = logging.getLogger(__name__) - benchmarks = load_benchmarks(sys.argv[1], verbose=True, logger=logger) - - used = set() - all_tables = [] - for version, func in product( - [2, 1], - FUNCTIONS, - ): - - # Big tables blob/vec 4-1024 - for type_ in ['blob', 'vec']: - size_grid = [4, 8, 16, 32, 64, 128, 256, 512, 1024] - name = f'btreemap_v{version}_{func}_{type_}' - table = { - 'name': name, - 'columns': 'keys', - 'rows': 'values', - 'instructions': {r: {c: None for c in size_grid} for r in size_grid}, - 'instructions_change': {r: {c: None for c in size_grid} for r in size_grid} - } - for key_size in size_grid: - for value_size in size_grid: - filters = { - 'version': version, - 'mem_manager': False, - 'func': func, - 'schema': 'type-key-value', - 'type': type_, - 'key_size': key_size, - 'value_size': value_size, - } - selected = [ - b for b in benchmarks - if all(b.get(k) == v for k, v in filters.items()) - ] - if len(selected) == 0: - continue - if len(selected) > 1: - logger.error(f"Multiple matches for {filters}: {selected}") - continue - data = selected[0] if selected else None - table['instructions'][value_size][key_size] = data['instructions'] if data else None - table['instructions_change'][value_size][key_size] = data['instructions_change'] if data else None - used.add(data['name']) if data else None - - has_any = any( - cell is not None - for row in table['instructions'].values() - for cell in row.values() - ) - if has_any: - all_tables.append(table) - - for bench in benchmarks: - if bench['name'] not in used: - logger.warning(f"Unused benchmark: {bench['name']}") - - save_all_tables(all_tables, size_grid, './tmp/all_benchmarks.csv') - - -# This script allows to extract btreemap benchmarks into a CSV file. -if __name__ == '__main__': - main() From 408c3991c43e3b5a556f7e834d472093c0374831 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Mon, 19 May 2025 10:58:05 +0200 Subject: [PATCH 59/68] --csv --- canbench_results.csv | 240 +++++++++++++++++++++---------------------- 1 file changed, 120 insertions(+), 120 deletions(-) diff --git a/canbench_results.csv b/canbench_results.csv index 6fbbf1c2..a52a553f 100644 --- a/canbench_results.csv +++ b/canbench_results.csv @@ -1,6 +1,6 @@ status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_increase Δ,heap_increase Δ%,stable_memory_increase,stable_memory_increase Δ,stable_memory_increase Δ% -,btreemap_v2_contains_10mib_values,142229058,16054,+0.01%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob8_u64,292071256,14358169,+5.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_10mib_values,142229058,16054,0.01%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob8_u64,292071256,14358169,5.17%,0,0,0.00%,0,0,0.00% ,btreemap_v2_contains_blob_1024_128,3004678141,-1893206678,-38.65%,0,0,0.00%,0,0,0.00% ,btreemap_v2_contains_blob_128_128,665016023,-260966997,-28.18%,0,0,0.00%,0,0,0.00% ,btreemap_v2_contains_blob_16_128,299266114,-4919066,-1.62%,0,0,0.00%,0,0,0.00% @@ -14,13 +14,13 @@ status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_inc ,btreemap_v2_contains_blob_32_512,317454763,-15354651,-4.61%,0,0,0.00%,0,0,0.00% ,btreemap_v2_contains_blob_32_64,320828457,-14317217,-4.27%,0,0,0.00%,0,0,0.00% ,btreemap_v2_contains_blob_32_8,318450047,-16249412,-4.85%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_4_128,264127393,19250547,+7.86%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_4_128,264127393,19250547,7.86%,0,0,0.00%,0,0,0.00% ,btreemap_v2_contains_blob_512_128,1657176786,-967500658,-36.86%,0,0,0.00%,0,0,0.00% ,btreemap_v2_contains_blob_64_128,400794429,-183384395,-31.39%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_8_128,280164328,11804767,+4.40%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_u64_blob8,249345668,14448345,+6.15%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_u64_u64,255212854,18791246,+7.95%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_u64_vec8,249345668,14448330,+6.15%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_8_128,280164328,11804767,4.40%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_u64_blob8,249345668,14448345,6.15%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_u64_u64,255212854,18791246,7.95%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_u64_vec8,249345668,14448330,6.15%,0,0,0.00%,0,0,0.00% ,btreemap_v2_contains_vec8_u64,331414697,-35076734,-9.57%,0,0,0.00%,0,0,0.00% ,btreemap_v2_contains_vec_1024_128,1843552548,-1032089423,-35.89%,0,0,0.00%,0,0,0.00% ,btreemap_v2_contains_vec_128_128,559068813,-138987760,-19.91%,0,0,0.00%,0,0,0.00% @@ -40,7 +40,7 @@ status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_inc ,btreemap_v2_contains_vec_64_128,508397924,-86331453,-14.52%,0,0,0.00%,0,0,0.00% ,btreemap_v2_contains_vec_8_128,350968224,-37879507,-9.74%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_10mib_values,1227489035,16378,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob8_u64,304816032,7676121,+2.58%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob8_u64,304816032,7676121,2.58%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_blob_1024_128,3144320444,-1809603766,-36.53%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_blob_128_128,698826651,-248359844,-26.22%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_blob_16_128,313298866,-4055551,-1.28%,0,0,0.00%,0,0,0.00% @@ -54,13 +54,13 @@ status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_inc ,btreemap_v2_get_blob_32_512,335192871,-13736880,-3.94%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_blob_32_64,334932529,-12187106,-3.51%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_blob_32_8,329900204,-15414834,-4.46%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_4_128,276743152,19372531,+7.53%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_4_128,276743152,19372531,7.53%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_blob_512_128,1734963607,-924948525,-34.77%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_blob_64_128,425486333,-176288481,-29.29%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_8_128,293940212,12299993,+4.37%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_u64_blob8,260251406,14889197,+6.07%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_u64_u64,268110583,18841938,+7.56%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_u64_vec8,261065188,14927755,+6.06%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_8_128,293940212,12299993,4.37%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_u64_blob8,260251406,14889197,6.07%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_u64_u64,268110583,18841938,7.56%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_u64_vec8,261065188,14927755,6.06%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_vec8_u64,343885017,-32973269,-8.75%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_vec_1024_128,1892468068,-1029491707,-35.23%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_vec_128_128,571871925,-138955463,-19.55%,0,0,0.00%,0,0,0.00% @@ -80,69 +80,69 @@ status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_inc ,btreemap_v2_get_vec_64_128,519684483,-86517364,-14.27%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_vec_8_128,361789415,-36864342,-9.25%,0,0,0.00%,0,0,0.00% ,btreemap_v2_insert_10mib_values,5236020394,75575,0.00%,322,0,0.00%,3613,0,0.00% -,btreemap_v2_insert_blob8_u64,501716659,60848032,+13.80%,0,0,0.00%,4,0,0.00% +,btreemap_v2_insert_blob8_u64,501716659,60848032,13.80%,0,0,0.00%,4,0,0.00% ,btreemap_v2_insert_blob_1024_128,4298409341,-805598894,-15.78%,0,0,0.00%,196,0,0.00% ,btreemap_v2_insert_blob_128_128,1062334322,-71349725,-6.29%,0,0,0.00%,46,0,0.00% -,btreemap_v2_insert_blob_16_128,550033663,55265669,+11.17%,0,0,0.00%,24,0,0.00% +,btreemap_v2_insert_blob_16_128,550033663,55265669,11.17%,0,0,0.00%,24,0,0.00% ,btreemap_v2_insert_blob_256_128,1517044762,-166827829,-9.91%,0,0,0.00%,67,0,0.00% -,btreemap_v2_insert_blob_32_1024,732784071,45661570,+6.65%,0,0,0.00%,173,0,0.00% -,btreemap_v2_insert_blob_32_128,577281316,48158165,+9.10%,0,0,0.00%,28,0,0.00% -,btreemap_v2_insert_blob_32_16,555235014,46800739,+9.20%,0,0,0.00%,11,0,0.00% -,btreemap_v2_insert_blob_32_256,603441750,43122870,+7.70%,0,0,0.00%,49,0,0.00% -,btreemap_v2_insert_blob_32_32,560817016,46785294,+9.10%,0,0,0.00%,13,0,0.00% -,btreemap_v2_insert_blob_32_4,544048239,47441440,+9.55%,0,0,0.00%,8,0,0.00% -,btreemap_v2_insert_blob_32_512,645074828,47508220,+7.95%,0,0,0.00%,91,0,0.00% -,btreemap_v2_insert_blob_32_64,567941552,48422507,+9.32%,0,0,0.00%,18,0,0.00% -,btreemap_v2_insert_blob_32_8,549794717,46043542,+9.14%,0,0,0.00%,9,0,0.00% -,btreemap_v2_insert_blob_4_128,477592446,67180519,+16.37%,0,0,0.00%,13,0,0.00% +,btreemap_v2_insert_blob_32_1024,732784071,45661570,6.65%,0,0,0.00%,173,0,0.00% +,btreemap_v2_insert_blob_32_128,577281316,48158165,9.10%,0,0,0.00%,28,0,0.00% +,btreemap_v2_insert_blob_32_16,555235014,46800739,9.20%,0,0,0.00%,11,0,0.00% +,btreemap_v2_insert_blob_32_256,603441750,43122870,7.70%,0,0,0.00%,49,0,0.00% +,btreemap_v2_insert_blob_32_32,560817016,46785294,9.10%,0,0,0.00%,13,0,0.00% +,btreemap_v2_insert_blob_32_4,544048239,47441440,9.55%,0,0,0.00%,8,0,0.00% +,btreemap_v2_insert_blob_32_512,645074828,47508220,7.95%,0,0,0.00%,91,0,0.00% +,btreemap_v2_insert_blob_32_64,567941552,48422507,9.32%,0,0,0.00%,18,0,0.00% +,btreemap_v2_insert_blob_32_8,549794717,46043542,9.14%,0,0,0.00%,9,0,0.00% +,btreemap_v2_insert_blob_4_128,477592446,67180519,16.37%,0,0,0.00%,13,0,0.00% ,btreemap_v2_insert_blob_512_128,2459054925,-396000556,-13.87%,0,0,0.00%,111,0,0.00% ,btreemap_v2_insert_blob_64_128,691018270,-86518677,-11.13%,0,0,0.00%,34,0,0.00% -,btreemap_v2_insert_blob_8_128,524164752,61221253,+13.22%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_u64_blob8,491247984,68592696,+16.23%,0,0,0.00%,5,0,0.00% -,btreemap_v2_insert_u64_u64,500866926,69361697,+16.07%,0,0,0.00%,6,0,0.00% -,btreemap_v2_insert_u64_vec8,501307103,71377114,+16.60%,0,0,0.00%,21,0,0.00% -,btreemap_v2_insert_vec8_u64,614982299,33051031,+5.68%,0,0,0.00%,16,0,0.00% +,btreemap_v2_insert_blob_8_128,524164752,61221253,13.22%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_u64_blob8,491247984,68592696,16.23%,0,0,0.00%,5,0,0.00% +,btreemap_v2_insert_u64_u64,500866926,69361697,16.07%,0,0,0.00%,6,0,0.00% +,btreemap_v2_insert_u64_vec8,501307103,71377114,16.60%,0,0,0.00%,21,0,0.00% +,btreemap_v2_insert_vec8_u64,614982299,33051031,5.68%,0,0,0.00%,16,0,0.00% ,btreemap_v2_insert_vec_1024_128,2789610913,-529764464,-15.96%,0,0,0.00%,193,0,0.00% ,btreemap_v2_insert_vec_128_128,1042177787,-53768376,-4.91%,0,0,0.00%,51,0,0.00% -,btreemap_v2_insert_vec_16_128,738414762,35034175,+4.98%,0,0,0.00%,31,0,0.00% +,btreemap_v2_insert_vec_16_128,738414762,35034175,4.98%,0,0,0.00%,31,0,0.00% ,btreemap_v2_insert_vec_256_128,1423894681,-83087123,-5.51%,0,0,0.00%,71,0,0.00% -,btreemap_v2_insert_vec_32_1024,1243910406,21571322,+1.76%,0,0,0.00%,171,0,0.00% -,btreemap_v2_insert_vec_32_128,782955660,21137237,+2.77%,0,0,0.00%,33,0,0.00% -,btreemap_v2_insert_vec_32_16,690772545,27483636,+4.14%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_vec_32_256,906365509,15642647,+1.76%,0,0,0.00%,54,0,0.00% -,btreemap_v2_insert_vec_32_32,684749908,18567967,+2.79%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_vec_32_4,684856776,24495469,+3.71%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_vec_32_512,1026119993,16981108,+1.68%,0,0,0.00%,91,0,0.00% -,btreemap_v2_insert_vec_32_64,716558458,24417185,+3.53%,0,0,0.00%,24,0,0.00% -,btreemap_v2_insert_vec_32_8,684037572,23906118,+3.62%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_vec_4_128,648407960,39727301,+6.53%,0,0,0.00%,16,0,0.00% +,btreemap_v2_insert_vec_32_1024,1243910406,21571322,1.76%,0,0,0.00%,171,0,0.00% +,btreemap_v2_insert_vec_32_128,782955660,21137237,2.77%,0,0,0.00%,33,0,0.00% +,btreemap_v2_insert_vec_32_16,690772545,27483636,4.14%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_vec_32_256,906365509,15642647,1.76%,0,0,0.00%,54,0,0.00% +,btreemap_v2_insert_vec_32_32,684749908,18567967,2.79%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_vec_32_4,684856776,24495469,3.71%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_vec_32_512,1026119993,16981108,1.68%,0,0,0.00%,91,0,0.00% +,btreemap_v2_insert_vec_32_64,716558458,24417185,3.53%,0,0,0.00%,24,0,0.00% +,btreemap_v2_insert_vec_32_8,684037572,23906118,3.62%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_vec_4_128,648407960,39727301,6.53%,0,0,0.00%,16,0,0.00% ,btreemap_v2_insert_vec_512_128,1901572280,-226517506,-10.64%,0,0,0.00%,112,0,0.00% ,btreemap_v2_insert_vec_64_128,873371621,-7125630,-0.81%,0,0,0.00%,41,0,0.00% -,btreemap_v2_insert_vec_8_128,707096235,40734417,+6.11%,0,0,0.00%,23,0,0.00% +,btreemap_v2_insert_vec_8_128,707096235,40734417,6.11%,0,0,0.00%,23,0,0.00% ,btreemap_v2_mem_manager_contains_blob512_u64,1775949161,-941681221,-34.65%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_contains_u64_blob512,311272695,161820,+0.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_contains_u64_u64,317156841,408578,+0.13%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_contains_u64_vec512,400392398,5317777,+1.35%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_contains_u64_blob512,311272695,161820,0.05%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_contains_u64_u64,317156841,408578,0.13%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_contains_u64_vec512,400392398,5317777,1.35%,0,0,0.00%,0,0,0.00% ,btreemap_v2_mem_manager_contains_vec512_u64,1258425858,-493690579,-28.18%,0,0,0.00%,0,0,0.00% ,btreemap_v2_mem_manager_get_blob512_u64,1863808659,-898898486,-32.54%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_get_u64_blob512,329294891,1426133,+0.43%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_get_u64_u64,331652326,1871759,+0.57%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_get_u64_vec512,427935018,5992435,+1.42%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_get_u64_blob512,329294891,1426133,0.43%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_get_u64_u64,331652326,1871759,0.57%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_get_u64_vec512,427935018,5992435,1.42%,0,0,0.00%,0,0,0.00% ,btreemap_v2_mem_manager_get_vec512_u64,1303577687,-486102788,-27.16%,0,0,0.00%,0,0,0.00% ,btreemap_v2_mem_manager_insert_blob512_u64,2597565947,-362280237,-12.24%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_u64_blob512,707049704,59984796,+9.27%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_u64_u64,621126909,60290347,+10.75%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_u64_vec512,960296871,59662540,+6.62%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_u64_blob512,707049704,59984796,9.27%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_u64_u64,621126909,60290347,10.75%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_u64_vec512,960296871,59662540,6.62%,0,0,0.00%,0,0,0.00% ,btreemap_v2_mem_manager_insert_vec512_u64,2031591198,-206433770,-9.22%,0,0,0.00%,0,0,0.00% ,btreemap_v2_mem_manager_remove_blob512_u64,3736567051,-110972051,-2.88%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_u64_blob512,1034958115,87593919,+9.25%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_u64_u64,892052152,84707772,+10.49%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_u64_vec512,1375819243,90394371,+7.03%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_u64_blob512,1034958115,87593919,9.25%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_u64_u64,892052152,84707772,10.49%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_u64_vec512,1375819243,90394371,7.03%,0,0,0.00%,0,0,0.00% ,btreemap_v2_mem_manager_remove_vec512_u64,3198591960,-113883702,-3.44%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob8_u64,629253248,20940838,+3.44%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob8_u64,629253248,20940838,3.44%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_1024_128,6147001197,-3251187270,-34.59%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_128_128,1531908056,-475507312,-23.69%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_16_128,765283250,7864277,+1.04%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_16_128,765283250,7864277,1.04%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_256_128,2185233950,-908551252,-29.37%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_32_1024,1116736838,-15716676,-1.39%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_32_128,860692670,-15678996,-1.79%,0,0,0.00%,0,0,0.00% @@ -153,13 +153,13 @@ status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_inc ,btreemap_v2_pop_first_blob_32_512,960837938,-12427720,-1.28%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_32_64,823444657,-15248589,-1.82%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_32_8,802974323,-15489473,-1.89%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_4_128,399711532,27726221,+7.45%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_4_128,399711532,27726221,7.45%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_512_128,3509572847,-1662692105,-32.15%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_64_128,1025420211,-303459597,-22.84%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_8_128,634095102,22688002,+3.71%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_u64_blob8,753793039,48541309,+6.88%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_u64_u64,768155629,50798933,+7.08%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_u64_vec8,757240426,47647215,+6.71%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_8_128,634095102,22688002,3.71%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_u64_blob8,753793039,48541309,6.88%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_u64_u64,768155629,50798933,7.08%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_u64_vec8,757240426,47647215,6.71%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_vec8_u64,732991720,-49295370,-6.30%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_vec_1024_128,4085915603,-1678166214,-29.11%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_vec_128_128,1538597561,-277824092,-15.30%,0,0,0.00%,0,0,0.00% @@ -178,10 +178,10 @@ status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_inc ,btreemap_v2_pop_first_vec_512_128,2758195778,-842783125,-23.40%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_vec_64_128,1262234043,-140062732,-9.99%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_vec_8_128,808949551,-36661853,-4.34%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob8_u64,605594719,13210522,+2.23%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob8_u64,605594719,13210522,2.23%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_1024_128,5830793696,-3388871297,-36.76%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_128_128,1465499866,-493016838,-25.17%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_16_128,738880823,257806,+0.03%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_16_128,738880823,257806,0.03%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_256_128,2079294367,-941237007,-31.16%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_32_1024,1085669333,-26895772,-2.42%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_32_128,830643675,-23704321,-2.77%,0,0,0.00%,0,0,0.00% @@ -192,13 +192,13 @@ status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_inc ,btreemap_v2_pop_last_blob_32_512,933506500,-21712253,-2.27%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_32_64,795410677,-25230206,-3.07%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_32_8,771816802,-26049997,-3.26%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_4_128,386661070,23002658,+6.33%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_4_128,386661070,23002658,6.33%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_512_128,3345362741,-1708047466,-33.80%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_64_128,990351700,-316666360,-24.23%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_8_128,624461847,13278811,+2.17%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_u64_blob8,729066416,36175757,+5.22%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_u64_u64,743800192,39194499,+5.56%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_u64_vec8,731910124,35912536,+5.16%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_8_128,624461847,13278811,2.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_u64_blob8,729066416,36175757,5.22%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_u64_u64,743800192,39194499,5.56%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_u64_vec8,731910124,35912536,5.16%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_vec8_u64,708957905,-54669759,-7.16%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_vec_1024_128,4313316700,-1698354777,-28.25%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_vec_128_128,1552648335,-277661384,-15.17%,0,0,0.00%,0,0,0.00% @@ -217,72 +217,72 @@ status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_inc ,btreemap_v2_pop_last_vec_512_128,2873424953,-850506877,-22.84%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_vec_64_128,1255974553,-159830638,-11.29%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_vec_8_128,801484501,-51764021,-6.07%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_count_1k_0b,20115,3244,+19.23%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_count_1k_10kib,2986687,546381,+22.39%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_count_20_10mib,20584404,11922,+0.06%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_key_sum_1k_0b,20531,3126,+17.96%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_key_sum_1k_10kib,57677193,422276,+0.74%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_count_1k_0b,20115,3244,19.23%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_count_1k_10kib,2986687,546381,22.39%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_count_20_10mib,20584404,11922,0.06%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_key_sum_1k_0b,20531,3126,17.96%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_key_sum_1k_10kib,57677193,422276,0.74%,0,0,0.00%,0,0,0.00% ,btreemap_v2_range_key_sum_20_10mib,1105836590,10444,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_value_sum_1k_0b,20545,3126,+17.95%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_value_sum_1k_10kib,57689189,422276,+0.74%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_value_sum_1k_0b,20545,3126,17.95%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_value_sum_1k_10kib,57689189,422276,0.74%,0,0,0.00%,0,0,0.00% ,btreemap_v2_range_value_sum_20_10mib,1105836826,10444,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_10mib_values,5561272860,89630,0.00%,0,0,0.00%,657,0,0.00% -,btreemap_v2_remove_blob8_u64,667900563,80730508,+13.75%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob8_u64,667900563,80730508,13.75%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_blob_1024_128,6063706104,-410415876,-6.34%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_blob_128_128,1457463878,-8652649,-0.59%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_16_128,757672413,77669635,+11.42%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_16_128,757672413,77669635,11.42%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_blob_256_128,2098091924,-97124222,-4.42%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_1024,1036297823,70413676,+7.29%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_128,801420541,70316020,+9.62%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_16,755774413,68599606,+9.98%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_256,837217335,71224073,+9.30%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_32,765911420,69932570,+10.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_4,750822623,71512729,+10.53%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_512,911302025,73379823,+8.76%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_64,793243985,73236353,+10.17%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_8,749626337,69672125,+10.25%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_4_128,522538214,67037424,+14.72%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_1024,1036297823,70413676,7.29%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_128,801420541,70316020,9.62%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_16,755774413,68599606,9.98%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_256,837217335,71224073,9.30%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_32,765911420,69932570,10.05%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_4,750822623,71512729,10.53%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_512,911302025,73379823,8.76%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_64,793243985,73236353,10.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_8,749626337,69672125,10.25%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_4_128,522538214,67037424,14.72%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_blob_512_128,3448674395,-151826733,-4.22%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_blob_64_128,947748278,-72366799,-7.09%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_8_128,685714058,77835976,+12.80%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_u64_blob8,689441571,91902713,+15.38%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_u64_u64,712995636,93885672,+15.16%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_u64_vec8,695853424,92395379,+15.31%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec8_u64,804496668,54070521,+7.21%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_8_128,685714058,77835976,12.80%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_u64_blob8,689441571,91902713,15.38%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_u64_u64,712995636,93885672,15.16%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_u64_vec8,695853424,92395379,15.31%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec8_u64,804496668,54070521,7.21%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_vec_1024_128,4560037620,-462593900,-9.21%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_128_128,1473629560,21563040,+1.48%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_16_128,971674171,63927947,+7.04%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_128_128,1473629560,21563040,1.48%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_16_128,971674171,63927947,7.04%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_vec_256_128,2293167894,-21818803,-0.94%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_1024,1732355221,58342854,+3.49%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_128,1069927739,59140123,+5.85%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_16,890477096,55836368,+6.69%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_256,1280544115,51317790,+4.17%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_32,897812266,56668260,+6.74%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_4,896826883,57209162,+6.81%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_512,1443936645,50940167,+3.66%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_64,979473079,55821683,+6.04%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_8,890819873,57513223,+6.90%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_4_128,687282319,37625067,+5.79%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_1024,1732355221,58342854,3.49%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_128,1069927739,59140123,5.85%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_16,890477096,55836368,6.69%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_256,1280544115,51317790,4.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_32,897812266,56668260,6.74%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_4,896826883,57209162,6.81%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_512,1443936645,50940167,3.66%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_64,979473079,55821683,6.04%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_8,890819873,57513223,6.90%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_4_128,687282319,37625067,5.79%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_vec_512_128,3130403453,-136253485,-4.17%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_64_128,1192475703,13710336,+1.16%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_8_128,877067292,57022199,+6.95%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_1k_0b,1981104,487646,+32.65%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_1k_10kib,57549224,479267,+0.84%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_64_128,1192475703,13710336,1.16%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_8_128,877067292,57022199,6.95%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_1k_0b,1981104,487646,32.65%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_1k_10kib,57549224,479267,0.84%,0,0,0.00%,0,0,0.00% ,btreemap_v2_scan_iter_20_10mib,1103729363,9664,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_rev_1k_0b,1981815,486218,+32.51%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_rev_1k_10kib,57530291,482697,+0.85%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_rev_1k_0b,1981815,486218,32.51%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_rev_1k_10kib,57530291,482697,0.85%,0,0,0.00%,0,0,0.00% ,btreemap_v2_scan_iter_rev_20_10mib,1103728938,9657,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_1k_0b,1551166,605083,+63.96%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_1k_10kib,2958502,598895,+25.38%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_20_10mib,18477478,12039,+0.07%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_rev_1k_0b,1552873,589553,+61.20%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_rev_1k_10kib,2941017,585512,+24.86%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_rev_20_10mib,18477506,11732,+0.06%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_1k_0b,1941502,450646,+30.23%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_1k_10kib,57509622,442267,+0.77%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_1k_0b,1551166,605083,63.96%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_1k_10kib,2958502,598895,25.38%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_20_10mib,18477478,12039,0.07%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_rev_1k_0b,1552873,589553,61.20%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_rev_1k_10kib,2941017,585512,24.86%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_rev_20_10mib,18477506,11732,0.06%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_1k_0b,1941502,450646,30.23%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_1k_10kib,57509622,442267,0.77%,0,0,0.00%,0,0,0.00% ,btreemap_v2_scan_values_20_10mib,1103728573,8924,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_rev_1k_0b,1942213,449218,+30.09%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_rev_1k_10kib,57490689,445697,+0.78%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_rev_1k_0b,1942213,449218,30.09%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_rev_1k_10kib,57490689,445697,0.78%,0,0,0.00%,0,0,0.00% ,btreemap_v2_scan_values_rev_20_10mib,1103728148,8917,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% From 9dd134908048d766a891ce24fec571e52809b571 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Mon, 19 May 2025 10:58:48 +0200 Subject: [PATCH 60/68] canbench latest --- scripts/ci_run_benchmark.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scripts/ci_run_benchmark.sh b/scripts/ci_run_benchmark.sh index 28eeeee3..775298ae 100644 --- a/scripts/ci_run_benchmark.sh +++ b/scripts/ci_run_benchmark.sh @@ -24,8 +24,7 @@ MAIN_BRANCH_RESULTS_FILE="$MAIN_BRANCH_DIR/$CANBENCH_RESULTS_FILE" CANBENCH_RESULTS_CSV_FILE="/tmp/canbench_results_${CANBENCH_JOB_NAME}.csv" # Install canbench. -#cargo install --version 0.1.13 canbench -cargo install --git https://github.com/dfinity/canbench --branch main canbench +cargo install canbench # Verify that the canbench results file exists. if [ ! -f "$CANBENCH_RESULTS_FILE" ]; then From f1b9dce82081e274fdece5e74584303c3d7a5b06 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Mon, 19 May 2025 11:06:07 +0200 Subject: [PATCH 61/68] canbench v0.1.14 --- scripts/ci_run_benchmark.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ci_run_benchmark.sh b/scripts/ci_run_benchmark.sh index 775298ae..6bd7b442 100644 --- a/scripts/ci_run_benchmark.sh +++ b/scripts/ci_run_benchmark.sh @@ -24,7 +24,7 @@ MAIN_BRANCH_RESULTS_FILE="$MAIN_BRANCH_DIR/$CANBENCH_RESULTS_FILE" CANBENCH_RESULTS_CSV_FILE="/tmp/canbench_results_${CANBENCH_JOB_NAME}.csv" # Install canbench. -cargo install canbench +cargo install --version 0.1.14 canbench # Verify that the canbench results file exists. if [ ! -f "$CANBENCH_RESULTS_FILE" ]; then From 3aee7ffd38b459a772daba8783a304235fa03d8a Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Mon, 19 May 2025 11:10:53 +0200 Subject: [PATCH 62/68] --persist --csv --- canbench_results.csv | 220 +++++++++++++++++++++---------------------- canbench_results.yml | 2 +- 2 files changed, 111 insertions(+), 111 deletions(-) diff --git a/canbench_results.csv b/canbench_results.csv index 012839f9..41633b4a 100644 --- a/canbench_results.csv +++ b/canbench_results.csv @@ -79,144 +79,144 @@ status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_inc ,btreemap_v2_get_vec_512_128,1825704224,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_vec_64_128,606201847,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_get_vec_8_128,398653757,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_insert_10mib_values,5235944819,-330349,-0.01%,322,0,0.00%,3613,0,0.00% -,btreemap_v2_insert_blob8_u64,440868627,6706,0.00%,0,0,0.00%,4,0,0.00% +,btreemap_v2_insert_10mib_values,5235944819,0,0.00%,322,0,0.00%,3613,0,0.00% +,btreemap_v2_insert_blob8_u64,440868627,0,0.00%,0,0,0.00%,4,0,0.00% ,btreemap_v2_insert_blob_1024_128,5104008235,0,0.00%,0,0,0.00%,196,0,0.00% ,btreemap_v2_insert_blob_128_128,1133684047,0,0.00%,0,0,0.00%,46,0,0.00% -,btreemap_v2_insert_blob_16_128,494767994,2,0.00%,0,0,0.00%,24,0,0.00% +,btreemap_v2_insert_blob_16_128,494767994,0,0.00%,0,0,0.00%,24,0,0.00% ,btreemap_v2_insert_blob_256_128,1683872591,0,0.00%,0,0,0.00%,67,0,0.00% ,btreemap_v2_insert_blob_32_1024,687122501,0,0.00%,0,0,0.00%,173,0,0.00% ,btreemap_v2_insert_blob_32_128,529123151,0,0.00%,0,0,0.00%,28,0,0.00% -,btreemap_v2_insert_blob_32_16,508434275,10,0.00%,0,0,0.00%,11,0,0.00% -,btreemap_v2_insert_blob_32_256,560318880,4,0.00%,0,0,0.00%,49,0,0.00% +,btreemap_v2_insert_blob_32_16,508434275,0,0.00%,0,0,0.00%,11,0,0.00% +,btreemap_v2_insert_blob_32_256,560318880,0,0.00%,0,0,0.00%,49,0,0.00% ,btreemap_v2_insert_blob_32_32,514031722,0,0.00%,0,0,0.00%,13,0,0.00% -,btreemap_v2_insert_blob_32_4,496606799,168,0.00%,0,0,0.00%,8,0,0.00% -,btreemap_v2_insert_blob_32_512,597566608,4,0.00%,0,0,0.00%,91,0,0.00% +,btreemap_v2_insert_blob_32_4,496606799,0,0.00%,0,0,0.00%,8,0,0.00% +,btreemap_v2_insert_blob_32_512,597566608,0,0.00%,0,0,0.00%,91,0,0.00% ,btreemap_v2_insert_blob_32_64,519519045,0,0.00%,0,0,0.00%,18,0,0.00% ,btreemap_v2_insert_blob_32_8,503751175,0,0.00%,0,0,0.00%,9,0,0.00% -,btreemap_v2_insert_blob_4_128,410411927,3,0.00%,0,0,0.00%,13,0,0.00% +,btreemap_v2_insert_blob_4_128,410411927,0,0.00%,0,0,0.00%,13,0,0.00% ,btreemap_v2_insert_blob_512_128,2855055481,0,0.00%,0,0,0.00%,111,0,0.00% ,btreemap_v2_insert_blob_64_128,777536947,0,0.00%,0,0,0.00%,34,0,0.00% -,btreemap_v2_insert_blob_8_128,462943499,2,0.00%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_u64_blob8,422655288,1107,0.00%,0,0,0.00%,5,0,0.00% -,btreemap_v2_insert_u64_u64,431505229,8162,0.00%,0,0,0.00%,6,0,0.00% +,btreemap_v2_insert_blob_8_128,462943499,0,0.00%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_u64_blob8,422655288,0,0.00%,0,0,0.00%,5,0,0.00% +,btreemap_v2_insert_u64_u64,431505229,0,0.00%,0,0,0.00%,6,0,0.00% ,btreemap_v2_insert_u64_vec8,429929989,0,0.00%,0,0,0.00%,21,0,0.00% ,btreemap_v2_insert_vec8_u64,581931268,0,0.00%,0,0,0.00%,16,0,0.00% -,btreemap_v2_insert_vec_1024_128,3319375377,1208486,+0.04%,0,0,0.00%,193,0,0.00% -,btreemap_v2_insert_vec_128_128,1095946163,639712,+0.06%,0,0,0.00%,51,0,0.00% -,btreemap_v2_insert_vec_16_128,703380587,127293,+0.02%,0,0,0.00%,31,0,0.00% -,btreemap_v2_insert_vec_256_128,1506981804,971184,+0.06%,0,0,0.00%,71,0,0.00% -,btreemap_v2_insert_vec_32_1024,1222339084,569577,+0.05%,0,0,0.00%,171,0,0.00% -,btreemap_v2_insert_vec_32_128,761818423,191793,+0.03%,0,0,0.00%,33,0,0.00% +,btreemap_v2_insert_vec_1024_128,3319375377,0,0.00%,0,0,0.00%,193,0,0.00% +,btreemap_v2_insert_vec_128_128,1095946163,0,0.00%,0,0,0.00%,51,0,0.00% +,btreemap_v2_insert_vec_16_128,703380587,0,0.00%,0,0,0.00%,31,0,0.00% +,btreemap_v2_insert_vec_256_128,1506981804,0,0.00%,0,0,0.00%,71,0,0.00% +,btreemap_v2_insert_vec_32_1024,1222339084,0,0.00%,0,0,0.00%,171,0,0.00% +,btreemap_v2_insert_vec_32_128,761818423,0,0.00%,0,0,0.00%,33,0,0.00% ,btreemap_v2_insert_vec_32_16,663288909,0,0.00%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_vec_32_256,890722862,389923,+0.04%,0,0,0.00%,54,0,0.00% +,btreemap_v2_insert_vec_32_256,890722862,0,0.00%,0,0,0.00%,54,0,0.00% ,btreemap_v2_insert_vec_32_32,666181941,0,0.00%,0,0,0.00%,20,0,0.00% ,btreemap_v2_insert_vec_32_4,660361307,0,0.00%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_vec_32_512,1009138885,495940,+0.05%,0,0,0.00%,91,0,0.00% -,btreemap_v2_insert_vec_32_64,692141273,23178,0.00%,0,0,0.00%,24,0,0.00% +,btreemap_v2_insert_vec_32_512,1009138885,0,0.00%,0,0,0.00%,91,0,0.00% +,btreemap_v2_insert_vec_32_64,692141273,0,0.00%,0,0,0.00%,24,0,0.00% ,btreemap_v2_insert_vec_32_8,660131454,0,0.00%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_vec_4_128,608680659,76226,+0.01%,0,0,0.00%,16,0,0.00% -,btreemap_v2_insert_vec_512_128,2128089786,1136292,+0.05%,0,0,0.00%,112,0,0.00% -,btreemap_v2_insert_vec_64_128,880497251,324323,+0.04%,0,0,0.00%,41,0,0.00% -,btreemap_v2_insert_vec_8_128,666361818,115464,+0.02%,0,0,0.00%,23,0,0.00% +,btreemap_v2_insert_vec_4_128,608680659,0,0.00%,0,0,0.00%,16,0,0.00% +,btreemap_v2_insert_vec_512_128,2128089786,0,0.00%,0,0,0.00%,112,0,0.00% +,btreemap_v2_insert_vec_64_128,880497251,0,0.00%,0,0,0.00%,41,0,0.00% +,btreemap_v2_insert_vec_8_128,666361818,0,0.00%,0,0,0.00%,23,0,0.00% ,btreemap_v2_mem_manager_contains_blob512_u64,2717630382,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_mem_manager_contains_u64_blob512,311110875,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_contains_u64_u64,316748263,-25453,-0.01%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_contains_u64_vec512,395074621,-660033,-0.17%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_contains_vec512_u64,1752116437,-2650052,-0.15%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_contains_u64_u64,316748263,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_contains_u64_vec512,395074621,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_contains_vec512_u64,1752116437,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_mem_manager_get_blob512_u64,2762707145,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_mem_manager_get_u64_blob512,327868758,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_get_u64_u64,329780567,-25843,-0.01%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_get_u64_vec512,421942583,-718932,-0.17%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_get_vec512_u64,1789680475,-2710046,-0.15%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_blob512_u64,2959846184,-272,-0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_get_u64_u64,329780567,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_get_u64_vec512,421942583,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_get_vec512_u64,1789680475,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_blob512_u64,2959846184,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_mem_manager_insert_u64_blob512,647064908,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_u64_u64,560836562,-25562,-0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_u64_vec512,900634331,-1208543,-0.13%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_vec512_u64,2238024968,-3174377,-0.14%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_blob512_u64,3847539102,-170,-0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_u64_u64,560836562,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_u64_vec512,900634331,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_vec512_u64,2238024968,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_blob512_u64,3847539102,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_mem_manager_remove_u64_blob512,947364196,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_u64_u64,807344380,-61213,-0.01%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_u64_vec512,1285424872,-1644318,-0.13%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_vec512_u64,3312475662,-3908222,-0.12%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob8_u64,608312410,20749,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_u64_u64,807344380,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_u64_vec512,1285424872,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_vec512_u64,3312475662,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob8_u64,608312410,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_1024_128,9398188467,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_128_128,2007415368,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_16_128,757418973,7,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_16_128,757418973,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_256_128,3093785202,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_32_1024,1132453514,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_32_128,876371666,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_16,819915580,10,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_256,907503807,4,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_16,819915580,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_256,907503807,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_32_32,831628016,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_4,802090340,369,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_512,973265658,2,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_4,802090340,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_512,973265658,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_32_64,838693246,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_8,818463796,56,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_8,818463796,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_4_128,371985311,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_512_128,5172264952,8,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_512_128,5172264952,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_blob_64_128,1328879808,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_8_128,611407100,8,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_u64_blob8,705251730,3465,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_u64_u64,717356696,26819,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_8_128,611407100,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_u64_blob8,705251730,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_u64_u64,717356696,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_u64_vec8,709593211,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_vec8_u64,782287090,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_1024_128,5764081817,1815881,+0.03%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_128_128,1816421653,874999,+0.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_16_128,1024586335,143149,+0.01%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_256_128,2529716684,1409149,+0.06%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_1024,1812179448,828657,+0.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_128,1205040545,226368,+0.02%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_1024_128,5764081817,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_128_128,1816421653,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_16_128,1024586335,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_256_128,2529716684,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_1024,1812179448,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_128,1205040545,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_vec_32_16,1039338017,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_256,1327068201,525150,+0.04%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_256,1327068201,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_vec_32_32,1055530159,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_vec_32_4,1038272566,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_512,1490585519,702963,+0.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_64,1089790483,33540,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_512,1490585519,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_64,1089790483,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_first_vec_32_8,1050176827,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_4_128,537481485,56895,+0.01%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_512_128,3600978903,1676332,+0.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_64_128,1402296775,404678,+0.03%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_8_128,845611404,107164,+0.01%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob8_u64,592384197,21650,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_4_128,537481485,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_512_128,3600978903,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_64_128,1402296775,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_8_128,845611404,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob8_u64,592384197,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_1024_128,9219664993,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_128_128,1958516704,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_16_128,738623017,2,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_16_128,738623017,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_256_128,3020531374,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_1024,1112565105,2,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_1024,1112565105,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_32_128,854347996,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_16,798819040,4,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_256,886655818,4,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_16,798819040,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_256,886655818,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_32_32,810795267,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_4,787773960,449,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_4,787773960,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_32_512,955218753,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_32_64,820640883,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_8,797866799,47,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_8,797866799,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_4_128,363658412,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_512_128,5053410207,4,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_512_128,5053410207,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_blob_64_128,1307018060,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_8_128,611183036,7,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_u64_blob8,692890659,3945,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_u64_u64,704605693,27710,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_8_128,611183036,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_u64_blob8,692890659,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_u64_u64,704605693,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_u64_vec8,695997588,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_vec8_u64,763627664,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_1024_128,6011671477,1818859,+0.03%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_128_128,1830309719,877525,+0.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_16_128,1012789371,143893,+0.01%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_256_128,2583020373,1408905,+0.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_1024,1807002225,828221,+0.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_128,1204248068,227797,+0.02%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_1024_128,6011671477,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_128_128,1830309719,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_16_128,1012789371,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_256_128,2583020373,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_1024,1807002225,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_128,1204248068,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_vec_32_16,1028212700,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_256,1324529488,525174,+0.04%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_256,1324529488,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_vec_32_32,1043904024,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_vec_32_4,1036623333,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_512,1490891594,702058,+0.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_64,1084573805,34332,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_512,1490891594,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_64,1084573805,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_pop_last_vec_32_8,1038381761,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_4_128,528623870,55398,+0.01%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_512_128,3723931830,1676968,+0.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_64_128,1415805191,403336,+0.03%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_8_128,853248522,107122,+0.01%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_4_128,528623870,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_512_128,3723931830,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_64_128,1415805191,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_8_128,853248522,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_range_count_1k_0b,16871,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_range_count_1k_10kib,2440306,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_range_count_20_10mib,20572482,0,0.00%,0,0,0.00%,0,0,0.00% @@ -226,46 +226,46 @@ status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_inc ,btreemap_v2_range_value_sum_1k_0b,17419,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_range_value_sum_1k_10kib,57266913,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_range_value_sum_20_10mib,1105826382,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_10mib_values,5561183230,-154298,-0.00%,0,0,0.00%,657,0,0.00% -,btreemap_v2_remove_blob8_u64,587170055,22051,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_10mib_values,5561183230,0,0.00%,0,0,0.00%,657,0,0.00% +,btreemap_v2_remove_blob8_u64,587170055,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_blob_1024_128,6474121980,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_blob_128_128,1466116527,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_blob_16_128,680002778,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_blob_256_128,2195216146,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_1024,965884147,2,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_128,731104521,2,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_1024,965884147,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_128,731104521,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_blob_32_16,687174807,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_256,765993262,18,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_256,765993262,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_blob_32_32,695978850,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_4,679309894,280,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_512,837922202,2,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_4,679309894,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_512,837922202,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_blob_32_64,720007632,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_8,679954212,51,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_4_128,455500790,8,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_8,679954212,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_4_128,455500790,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_blob_512_128,3600501128,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_blob_64_128,1020115077,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_blob_8_128,607878082,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_u64_blob8,597538858,3424,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_u64_u64,619109964,29438,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_u64_blob8,597538858,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_u64_u64,619109964,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_u64_vec8,603458045,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_vec8_u64,750426147,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_1024_128,5022631520,2174615,+0.04%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_128_128,1452066520,1023964,+0.07%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_16_128,907746224,155899,+0.02%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_256_128,2314986697,1660004,+0.07%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_1024,1674012367,991145,+0.06%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_128,1010787616,253448,+0.03%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_1024_128,5022631520,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_128_128,1452066520,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_16_128,907746224,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_256_128,2314986697,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_1024,1674012367,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_128,1010787616,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_vec_32_16,834640728,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_256,1229226325,636309,+0.05%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_256,1229226325,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_vec_32_32,841144006,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_vec_32_4,839617721,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_512,1392996478,845804,+0.06%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_64,923651396,35892,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_512,1392996478,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_64,923651396,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_remove_vec_32_8,833306650,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_4_128,649657252,62472,0.01%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_512_128,3266656938,2013919,+0.06%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_64_128,1178765367,463752,+0.04%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_8_128,820045093,117355,+0.01%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_4_128,649657252,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_512_128,3266656938,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_64_128,1178765367,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_8_128,820045093,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_scan_iter_1k_0b,1493458,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_scan_iter_1k_10kib,57069957,0,0.00%,0,0,0.00%,0,0,0.00% ,btreemap_v2_scan_iter_20_10mib,1103719699,0,0.00%,0,0,0.00%,0,0,0.00% diff --git a/canbench_results.yml b/canbench_results.yml index 4ff856f1..0c78e42d 100644 --- a/canbench_results.yml +++ b/canbench_results.yml @@ -1823,4 +1823,4 @@ benches: heap_increase: 0 stable_memory_increase: 1 scopes: {} -version: 0.1.13 +version: 0.1.14 From a7f5dcc2b0cb07542d2a5d2a42492e779f0027a9 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Mon, 19 May 2025 11:16:42 +0200 Subject: [PATCH 63/68] csv --- canbench_results.csv | 570 +++++++++++++++++++++---------------------- 1 file changed, 285 insertions(+), 285 deletions(-) diff --git a/canbench_results.csv b/canbench_results.csv index 41633b4a..a52a553f 100644 --- a/canbench_results.csv +++ b/canbench_results.csv @@ -1,289 +1,289 @@ status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_increase Δ,heap_increase Δ%,stable_memory_increase,stable_memory_increase Δ,stable_memory_increase Δ% -,btreemap_v2_contains_10mib_values,142213004,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob8_u64,277713087,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_1024_128,4897884819,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_128_128,925983020,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_16_128,304185180,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_256_128,1482592583,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_1024,334889492,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_128,332336378,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_16,336647532,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_256,336952134,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_32,337767804,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_4,333734209,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_512,332809414,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_64,335145674,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_8,334699459,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_4_128,244876846,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_512_128,2624677444,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_64_128,584178824,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_8_128,268359561,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_u64_blob8,234897323,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_u64_u64,236421608,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_u64_vec8,234897338,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec8_u64,366491431,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_1024_128,2875641971,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_128_128,698056573,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_16_128,430496510,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_256_128,1220085542,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_1024,573798539,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_128,488603839,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_16,408307710,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_256,521878485,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_32,408806200,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_4,407179812,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_512,536998195,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_64,463602926,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_8,407102811,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_4_128,397153848,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_512_128,1812299060,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_64_128,594729377,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_8_128,388847731,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_10mib_values,1227472657,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob8_u64,297139911,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_1024_128,4953924210,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_128_128,947186495,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_16_128,317354417,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_256_128,1507431266,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_1024,353756221,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_128,345894163,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_16,346953462,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_256,351580221,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_32,348889561,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_4,343473664,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_512,348929751,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_64,347119635,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_8,345315038,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_4_128,257370621,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_512_128,2659912132,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_64_128,601774814,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_8_128,281640219,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_u64_blob8,245362209,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_u64_u64,249268645,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_u64_vec8,246137433,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec8_u64,376858286,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_1024_128,2921959775,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_128_128,710827388,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_16_128,440398211,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_256_128,1233367092,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_1024,606431114,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_128,498908637,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_16,416949497,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_256,539821398,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_32,417020079,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_4,415119023,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_512,558783250,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_64,472181771,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_8,415079885,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_4_128,407056995,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_512_128,1825704224,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_64_128,606201847,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_8_128,398653757,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_insert_10mib_values,5235944819,0,0.00%,322,0,0.00%,3613,0,0.00% -,btreemap_v2_insert_blob8_u64,440868627,0,0.00%,0,0,0.00%,4,0,0.00% -,btreemap_v2_insert_blob_1024_128,5104008235,0,0.00%,0,0,0.00%,196,0,0.00% -,btreemap_v2_insert_blob_128_128,1133684047,0,0.00%,0,0,0.00%,46,0,0.00% -,btreemap_v2_insert_blob_16_128,494767994,0,0.00%,0,0,0.00%,24,0,0.00% -,btreemap_v2_insert_blob_256_128,1683872591,0,0.00%,0,0,0.00%,67,0,0.00% -,btreemap_v2_insert_blob_32_1024,687122501,0,0.00%,0,0,0.00%,173,0,0.00% -,btreemap_v2_insert_blob_32_128,529123151,0,0.00%,0,0,0.00%,28,0,0.00% -,btreemap_v2_insert_blob_32_16,508434275,0,0.00%,0,0,0.00%,11,0,0.00% -,btreemap_v2_insert_blob_32_256,560318880,0,0.00%,0,0,0.00%,49,0,0.00% -,btreemap_v2_insert_blob_32_32,514031722,0,0.00%,0,0,0.00%,13,0,0.00% -,btreemap_v2_insert_blob_32_4,496606799,0,0.00%,0,0,0.00%,8,0,0.00% -,btreemap_v2_insert_blob_32_512,597566608,0,0.00%,0,0,0.00%,91,0,0.00% -,btreemap_v2_insert_blob_32_64,519519045,0,0.00%,0,0,0.00%,18,0,0.00% -,btreemap_v2_insert_blob_32_8,503751175,0,0.00%,0,0,0.00%,9,0,0.00% -,btreemap_v2_insert_blob_4_128,410411927,0,0.00%,0,0,0.00%,13,0,0.00% -,btreemap_v2_insert_blob_512_128,2855055481,0,0.00%,0,0,0.00%,111,0,0.00% -,btreemap_v2_insert_blob_64_128,777536947,0,0.00%,0,0,0.00%,34,0,0.00% -,btreemap_v2_insert_blob_8_128,462943499,0,0.00%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_u64_blob8,422655288,0,0.00%,0,0,0.00%,5,0,0.00% -,btreemap_v2_insert_u64_u64,431505229,0,0.00%,0,0,0.00%,6,0,0.00% -,btreemap_v2_insert_u64_vec8,429929989,0,0.00%,0,0,0.00%,21,0,0.00% -,btreemap_v2_insert_vec8_u64,581931268,0,0.00%,0,0,0.00%,16,0,0.00% -,btreemap_v2_insert_vec_1024_128,3319375377,0,0.00%,0,0,0.00%,193,0,0.00% -,btreemap_v2_insert_vec_128_128,1095946163,0,0.00%,0,0,0.00%,51,0,0.00% -,btreemap_v2_insert_vec_16_128,703380587,0,0.00%,0,0,0.00%,31,0,0.00% -,btreemap_v2_insert_vec_256_128,1506981804,0,0.00%,0,0,0.00%,71,0,0.00% -,btreemap_v2_insert_vec_32_1024,1222339084,0,0.00%,0,0,0.00%,171,0,0.00% -,btreemap_v2_insert_vec_32_128,761818423,0,0.00%,0,0,0.00%,33,0,0.00% -,btreemap_v2_insert_vec_32_16,663288909,0,0.00%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_vec_32_256,890722862,0,0.00%,0,0,0.00%,54,0,0.00% -,btreemap_v2_insert_vec_32_32,666181941,0,0.00%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_vec_32_4,660361307,0,0.00%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_vec_32_512,1009138885,0,0.00%,0,0,0.00%,91,0,0.00% -,btreemap_v2_insert_vec_32_64,692141273,0,0.00%,0,0,0.00%,24,0,0.00% -,btreemap_v2_insert_vec_32_8,660131454,0,0.00%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_vec_4_128,608680659,0,0.00%,0,0,0.00%,16,0,0.00% -,btreemap_v2_insert_vec_512_128,2128089786,0,0.00%,0,0,0.00%,112,0,0.00% -,btreemap_v2_insert_vec_64_128,880497251,0,0.00%,0,0,0.00%,41,0,0.00% -,btreemap_v2_insert_vec_8_128,666361818,0,0.00%,0,0,0.00%,23,0,0.00% -,btreemap_v2_mem_manager_contains_blob512_u64,2717630382,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_contains_u64_blob512,311110875,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_contains_u64_u64,316748263,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_contains_u64_vec512,395074621,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_contains_vec512_u64,1752116437,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_get_blob512_u64,2762707145,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_get_u64_blob512,327868758,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_get_u64_u64,329780567,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_get_u64_vec512,421942583,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_get_vec512_u64,1789680475,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_blob512_u64,2959846184,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_u64_blob512,647064908,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_u64_u64,560836562,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_u64_vec512,900634331,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_vec512_u64,2238024968,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_blob512_u64,3847539102,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_u64_blob512,947364196,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_u64_u64,807344380,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_u64_vec512,1285424872,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_vec512_u64,3312475662,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob8_u64,608312410,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_1024_128,9398188467,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_128_128,2007415368,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_16_128,757418973,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_256_128,3093785202,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_1024,1132453514,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_128,876371666,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_16,819915580,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_256,907503807,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_32,831628016,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_4,802090340,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_512,973265658,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_64,838693246,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_8,818463796,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_4_128,371985311,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_512_128,5172264952,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_64_128,1328879808,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_8_128,611407100,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_u64_blob8,705251730,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_u64_u64,717356696,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_u64_vec8,709593211,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec8_u64,782287090,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_1024_128,5764081817,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_128_128,1816421653,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_16_128,1024586335,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_256_128,2529716684,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_1024,1812179448,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_128,1205040545,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_16,1039338017,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_256,1327068201,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_32,1055530159,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_4,1038272566,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_512,1490585519,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_64,1089790483,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_8,1050176827,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_4_128,537481485,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_512_128,3600978903,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_64_128,1402296775,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_8_128,845611404,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob8_u64,592384197,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_1024_128,9219664993,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_128_128,1958516704,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_16_128,738623017,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_256_128,3020531374,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_1024,1112565105,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_128,854347996,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_16,798819040,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_256,886655818,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_32,810795267,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_4,787773960,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_512,955218753,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_64,820640883,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_8,797866799,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_4_128,363658412,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_512_128,5053410207,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_64_128,1307018060,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_8_128,611183036,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_u64_blob8,692890659,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_u64_u64,704605693,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_u64_vec8,695997588,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec8_u64,763627664,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_1024_128,6011671477,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_128_128,1830309719,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_16_128,1012789371,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_256_128,2583020373,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_1024,1807002225,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_128,1204248068,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_16,1028212700,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_256,1324529488,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_32,1043904024,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_4,1036623333,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_512,1490891594,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_64,1084573805,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_8,1038381761,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_4_128,528623870,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_512_128,3723931830,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_64_128,1415805191,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_8_128,853248522,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_count_1k_0b,16871,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_count_1k_10kib,2440306,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_count_20_10mib,20572482,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_key_sum_1k_0b,17405,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_key_sum_1k_10kib,57254917,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_key_sum_20_10mib,1105826146,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_value_sum_1k_0b,17419,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_value_sum_1k_10kib,57266913,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_value_sum_20_10mib,1105826382,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_10mib_values,5561183230,0,0.00%,0,0,0.00%,657,0,0.00% -,btreemap_v2_remove_blob8_u64,587170055,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_1024_128,6474121980,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_128_128,1466116527,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_16_128,680002778,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_256_128,2195216146,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_1024,965884147,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_128,731104521,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_16,687174807,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_256,765993262,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_32,695978850,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_4,679309894,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_512,837922202,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_64,720007632,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_8,679954212,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_4_128,455500790,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_512_128,3600501128,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_64_128,1020115077,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_8_128,607878082,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_u64_blob8,597538858,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_u64_u64,619109964,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_u64_vec8,603458045,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec8_u64,750426147,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_1024_128,5022631520,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_128_128,1452066520,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_16_128,907746224,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_256_128,2314986697,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_1024,1674012367,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_128,1010787616,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_16,834640728,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_256,1229226325,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_32,841144006,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_4,839617721,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_512,1392996478,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_64,923651396,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_8,833306650,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_4_128,649657252,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_512_128,3266656938,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_64_128,1178765367,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_8_128,820045093,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_1k_0b,1493458,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_1k_10kib,57069957,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_20_10mib,1103719699,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_rev_1k_0b,1495597,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_rev_1k_10kib,57047594,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_rev_20_10mib,1103719281,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_1k_0b,946083,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_1k_10kib,2359607,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_20_10mib,18465439,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_rev_1k_0b,963320,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_rev_1k_10kib,2355505,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_rev_20_10mib,18465774,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_1k_0b,1490856,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_1k_10kib,57067355,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_20_10mib,1103719649,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_rev_1k_0b,1492995,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_rev_1k_10kib,57044992,0,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_rev_20_10mib,1103719231,0,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_10mib_values,142229058,16054,0.01%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob8_u64,292071256,14358169,5.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_1024_128,3004678141,-1893206678,-38.65%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_128_128,665016023,-260966997,-28.18%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_16_128,299266114,-4919066,-1.62%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_256_128,985524245,-497068338,-33.53%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_1024,317750197,-17139295,-5.12%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_128,317486525,-14849853,-4.47%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_16,316913507,-19734025,-5.86%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_256,319375798,-17576336,-5.22%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_32,321175428,-16592376,-4.91%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_4,317302163,-16432046,-4.92%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_512,317454763,-15354651,-4.61%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_64,320828457,-14317217,-4.27%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_32_8,318450047,-16249412,-4.85%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_4_128,264127393,19250547,7.86%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_512_128,1657176786,-967500658,-36.86%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_64_128,400794429,-183384395,-31.39%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_blob_8_128,280164328,11804767,4.40%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_u64_blob8,249345668,14448345,6.15%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_u64_u64,255212854,18791246,7.95%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_u64_vec8,249345668,14448330,6.15%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec8_u64,331414697,-35076734,-9.57%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_1024_128,1843552548,-1032089423,-35.89%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_128_128,559068813,-138987760,-19.91%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_16_128,379282562,-51213948,-11.90%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_256_128,913001425,-307084117,-25.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_1024,512588096,-61210443,-10.67%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_128,433820781,-54783058,-11.21%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_16,363297614,-45010096,-11.02%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_256,441973791,-79904694,-15.31%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_32,363312712,-45493488,-11.13%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_4,362491802,-44688010,-10.98%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_512,477204790,-59793405,-11.13%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_64,403341248,-60261678,-13.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_32_8,362531723,-44571088,-10.95%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_4_128,352494755,-44659093,-11.24%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_512_128,1272734638,-539564422,-29.77%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_64_128,508397924,-86331453,-14.52%,0,0,0.00%,0,0,0.00% +,btreemap_v2_contains_vec_8_128,350968224,-37879507,-9.74%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_10mib_values,1227489035,16378,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob8_u64,304816032,7676121,2.58%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_1024_128,3144320444,-1809603766,-36.53%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_128_128,698826651,-248359844,-26.22%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_16_128,313298866,-4055551,-1.28%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_256_128,1032439290,-474991976,-31.51%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_1024,338180223,-15575998,-4.40%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_128,332624198,-13269965,-3.84%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_16,328919681,-18033781,-5.20%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_256,335563422,-16016799,-4.56%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_32,333781460,-15108101,-4.33%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_4,328246778,-15226886,-4.43%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_512,335192871,-13736880,-3.94%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_64,334932529,-12187106,-3.51%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_32_8,329900204,-15414834,-4.46%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_4_128,276743152,19372531,7.53%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_512_128,1734963607,-924948525,-34.77%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_64_128,425486333,-176288481,-29.29%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_blob_8_128,293940212,12299993,4.37%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_u64_blob8,260251406,14889197,6.07%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_u64_u64,268110583,18841938,7.56%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_u64_vec8,261065188,14927755,6.06%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec8_u64,343885017,-32973269,-8.75%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_1024_128,1892468068,-1029491707,-35.23%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_128_128,571871925,-138955463,-19.55%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_16_128,390610021,-49788190,-11.31%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_256_128,926323429,-307043663,-24.89%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_1024,555478534,-50952580,-8.40%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_128,444489523,-54419114,-10.91%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_16,371411562,-45537935,-10.92%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_256,460059095,-79762303,-14.78%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_32,371559358,-45460721,-10.90%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_4,370813831,-44305192,-10.67%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_512,499706941,-59076309,-10.57%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_64,412299789,-59881982,-12.68%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_32_8,370858341,-44221544,-10.65%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_4_128,363440040,-43616955,-10.72%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_512_128,1285923842,-539780382,-29.57%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_64_128,519684483,-86517364,-14.27%,0,0,0.00%,0,0,0.00% +,btreemap_v2_get_vec_8_128,361789415,-36864342,-9.25%,0,0,0.00%,0,0,0.00% +,btreemap_v2_insert_10mib_values,5236020394,75575,0.00%,322,0,0.00%,3613,0,0.00% +,btreemap_v2_insert_blob8_u64,501716659,60848032,13.80%,0,0,0.00%,4,0,0.00% +,btreemap_v2_insert_blob_1024_128,4298409341,-805598894,-15.78%,0,0,0.00%,196,0,0.00% +,btreemap_v2_insert_blob_128_128,1062334322,-71349725,-6.29%,0,0,0.00%,46,0,0.00% +,btreemap_v2_insert_blob_16_128,550033663,55265669,11.17%,0,0,0.00%,24,0,0.00% +,btreemap_v2_insert_blob_256_128,1517044762,-166827829,-9.91%,0,0,0.00%,67,0,0.00% +,btreemap_v2_insert_blob_32_1024,732784071,45661570,6.65%,0,0,0.00%,173,0,0.00% +,btreemap_v2_insert_blob_32_128,577281316,48158165,9.10%,0,0,0.00%,28,0,0.00% +,btreemap_v2_insert_blob_32_16,555235014,46800739,9.20%,0,0,0.00%,11,0,0.00% +,btreemap_v2_insert_blob_32_256,603441750,43122870,7.70%,0,0,0.00%,49,0,0.00% +,btreemap_v2_insert_blob_32_32,560817016,46785294,9.10%,0,0,0.00%,13,0,0.00% +,btreemap_v2_insert_blob_32_4,544048239,47441440,9.55%,0,0,0.00%,8,0,0.00% +,btreemap_v2_insert_blob_32_512,645074828,47508220,7.95%,0,0,0.00%,91,0,0.00% +,btreemap_v2_insert_blob_32_64,567941552,48422507,9.32%,0,0,0.00%,18,0,0.00% +,btreemap_v2_insert_blob_32_8,549794717,46043542,9.14%,0,0,0.00%,9,0,0.00% +,btreemap_v2_insert_blob_4_128,477592446,67180519,16.37%,0,0,0.00%,13,0,0.00% +,btreemap_v2_insert_blob_512_128,2459054925,-396000556,-13.87%,0,0,0.00%,111,0,0.00% +,btreemap_v2_insert_blob_64_128,691018270,-86518677,-11.13%,0,0,0.00%,34,0,0.00% +,btreemap_v2_insert_blob_8_128,524164752,61221253,13.22%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_u64_blob8,491247984,68592696,16.23%,0,0,0.00%,5,0,0.00% +,btreemap_v2_insert_u64_u64,500866926,69361697,16.07%,0,0,0.00%,6,0,0.00% +,btreemap_v2_insert_u64_vec8,501307103,71377114,16.60%,0,0,0.00%,21,0,0.00% +,btreemap_v2_insert_vec8_u64,614982299,33051031,5.68%,0,0,0.00%,16,0,0.00% +,btreemap_v2_insert_vec_1024_128,2789610913,-529764464,-15.96%,0,0,0.00%,193,0,0.00% +,btreemap_v2_insert_vec_128_128,1042177787,-53768376,-4.91%,0,0,0.00%,51,0,0.00% +,btreemap_v2_insert_vec_16_128,738414762,35034175,4.98%,0,0,0.00%,31,0,0.00% +,btreemap_v2_insert_vec_256_128,1423894681,-83087123,-5.51%,0,0,0.00%,71,0,0.00% +,btreemap_v2_insert_vec_32_1024,1243910406,21571322,1.76%,0,0,0.00%,171,0,0.00% +,btreemap_v2_insert_vec_32_128,782955660,21137237,2.77%,0,0,0.00%,33,0,0.00% +,btreemap_v2_insert_vec_32_16,690772545,27483636,4.14%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_vec_32_256,906365509,15642647,1.76%,0,0,0.00%,54,0,0.00% +,btreemap_v2_insert_vec_32_32,684749908,18567967,2.79%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_vec_32_4,684856776,24495469,3.71%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_vec_32_512,1026119993,16981108,1.68%,0,0,0.00%,91,0,0.00% +,btreemap_v2_insert_vec_32_64,716558458,24417185,3.53%,0,0,0.00%,24,0,0.00% +,btreemap_v2_insert_vec_32_8,684037572,23906118,3.62%,0,0,0.00%,20,0,0.00% +,btreemap_v2_insert_vec_4_128,648407960,39727301,6.53%,0,0,0.00%,16,0,0.00% +,btreemap_v2_insert_vec_512_128,1901572280,-226517506,-10.64%,0,0,0.00%,112,0,0.00% +,btreemap_v2_insert_vec_64_128,873371621,-7125630,-0.81%,0,0,0.00%,41,0,0.00% +,btreemap_v2_insert_vec_8_128,707096235,40734417,6.11%,0,0,0.00%,23,0,0.00% +,btreemap_v2_mem_manager_contains_blob512_u64,1775949161,-941681221,-34.65%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_contains_u64_blob512,311272695,161820,0.05%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_contains_u64_u64,317156841,408578,0.13%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_contains_u64_vec512,400392398,5317777,1.35%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_contains_vec512_u64,1258425858,-493690579,-28.18%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_get_blob512_u64,1863808659,-898898486,-32.54%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_get_u64_blob512,329294891,1426133,0.43%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_get_u64_u64,331652326,1871759,0.57%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_get_u64_vec512,427935018,5992435,1.42%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_get_vec512_u64,1303577687,-486102788,-27.16%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_blob512_u64,2597565947,-362280237,-12.24%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_u64_blob512,707049704,59984796,9.27%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_u64_u64,621126909,60290347,10.75%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_u64_vec512,960296871,59662540,6.62%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_insert_vec512_u64,2031591198,-206433770,-9.22%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_blob512_u64,3736567051,-110972051,-2.88%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_u64_blob512,1034958115,87593919,9.25%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_u64_u64,892052152,84707772,10.49%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_u64_vec512,1375819243,90394371,7.03%,0,0,0.00%,0,0,0.00% +,btreemap_v2_mem_manager_remove_vec512_u64,3198591960,-113883702,-3.44%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob8_u64,629253248,20940838,3.44%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_1024_128,6147001197,-3251187270,-34.59%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_128_128,1531908056,-475507312,-23.69%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_16_128,765283250,7864277,1.04%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_256_128,2185233950,-908551252,-29.37%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_1024,1116736838,-15716676,-1.39%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_128,860692670,-15678996,-1.79%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_16,802464245,-17451335,-2.13%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_256,892952288,-14551519,-1.60%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_32,811824098,-19803918,-2.38%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_4,786045356,-16044984,-2.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_512,960837938,-12427720,-1.28%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_64,823444657,-15248589,-1.82%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_32_8,802974323,-15489473,-1.89%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_4_128,399711532,27726221,7.45%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_512_128,3509572847,-1662692105,-32.15%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_64_128,1025420211,-303459597,-22.84%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_blob_8_128,634095102,22688002,3.71%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_u64_blob8,753793039,48541309,6.88%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_u64_u64,768155629,50798933,7.08%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_u64_vec8,757240426,47647215,6.71%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec8_u64,732991720,-49295370,-6.30%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_1024_128,4085915603,-1678166214,-29.11%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_128_128,1538597561,-277824092,-15.30%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_16_128,969028764,-55557571,-5.42%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_256_128,2055957144,-473759540,-18.73%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_1024,1717441040,-94738408,-5.23%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_128,1114978395,-90062150,-7.47%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_16,961475566,-77862451,-7.49%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_256,1243299725,-83768476,-6.31%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_32,955175429,-100354730,-9.51%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_4,948465621,-89806945,-8.65%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_512,1398936327,-91649192,-6.15%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_64,1002725828,-87064655,-7.99%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_32_8,959526555,-90650272,-8.63%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_4_128,519693694,-17787791,-3.31%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_512_128,2758195778,-842783125,-23.40%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_64_128,1262234043,-140062732,-9.99%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_first_vec_8_128,808949551,-36661853,-4.34%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob8_u64,605594719,13210522,2.23%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_1024_128,5830793696,-3388871297,-36.76%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_128_128,1465499866,-493016838,-25.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_16_128,738880823,257806,0.03%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_256_128,2079294367,-941237007,-31.16%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_1024,1085669333,-26895772,-2.42%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_128,830643675,-23704321,-2.77%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_16,769688933,-29130107,-3.65%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_256,861919416,-24736402,-2.79%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_32,780760100,-30035167,-3.70%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_4,760677261,-27096699,-3.44%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_512,933506500,-21712253,-2.27%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_64,795410677,-25230206,-3.07%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_32_8,771816802,-26049997,-3.26%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_4_128,386661070,23002658,6.33%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_512_128,3345362741,-1708047466,-33.80%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_64_128,990351700,-316666360,-24.23%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_blob_8_128,624461847,13278811,2.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_u64_blob8,729066416,36175757,5.22%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_u64_u64,743800192,39194499,5.56%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_u64_vec8,731910124,35912536,5.16%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec8_u64,708957905,-54669759,-7.16%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_1024_128,4313316700,-1698354777,-28.25%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_128_128,1552648335,-277661384,-15.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_16_128,947358933,-65430438,-6.46%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_256_128,2129557691,-453462682,-17.56%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_1024,1698443491,-108558734,-6.01%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_128,1096848946,-107399122,-8.92%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_16,941209083,-87003617,-8.46%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_256,1226663580,-97865908,-7.39%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_32,936303418,-107600606,-10.31%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_4,934258686,-102364647,-9.87%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_512,1389566809,-101324785,-6.80%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_64,983167413,-101406392,-9.35%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_32_8,937711654,-100670107,-9.69%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_4_128,504246189,-24377681,-4.61%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_512_128,2873424953,-850506877,-22.84%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_64_128,1255974553,-159830638,-11.29%,0,0,0.00%,0,0,0.00% +,btreemap_v2_pop_last_vec_8_128,801484501,-51764021,-6.07%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_count_1k_0b,20115,3244,19.23%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_count_1k_10kib,2986687,546381,22.39%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_count_20_10mib,20584404,11922,0.06%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_key_sum_1k_0b,20531,3126,17.96%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_key_sum_1k_10kib,57677193,422276,0.74%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_key_sum_20_10mib,1105836590,10444,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_value_sum_1k_0b,20545,3126,17.95%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_value_sum_1k_10kib,57689189,422276,0.74%,0,0,0.00%,0,0,0.00% +,btreemap_v2_range_value_sum_20_10mib,1105836826,10444,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_10mib_values,5561272860,89630,0.00%,0,0,0.00%,657,0,0.00% +,btreemap_v2_remove_blob8_u64,667900563,80730508,13.75%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_1024_128,6063706104,-410415876,-6.34%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_128_128,1457463878,-8652649,-0.59%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_16_128,757672413,77669635,11.42%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_256_128,2098091924,-97124222,-4.42%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_1024,1036297823,70413676,7.29%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_128,801420541,70316020,9.62%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_16,755774413,68599606,9.98%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_256,837217335,71224073,9.30%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_32,765911420,69932570,10.05%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_4,750822623,71512729,10.53%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_512,911302025,73379823,8.76%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_64,793243985,73236353,10.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_32_8,749626337,69672125,10.25%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_4_128,522538214,67037424,14.72%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_512_128,3448674395,-151826733,-4.22%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_64_128,947748278,-72366799,-7.09%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_blob_8_128,685714058,77835976,12.80%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_u64_blob8,689441571,91902713,15.38%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_u64_u64,712995636,93885672,15.16%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_u64_vec8,695853424,92395379,15.31%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec8_u64,804496668,54070521,7.21%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_1024_128,4560037620,-462593900,-9.21%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_128_128,1473629560,21563040,1.48%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_16_128,971674171,63927947,7.04%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_256_128,2293167894,-21818803,-0.94%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_1024,1732355221,58342854,3.49%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_128,1069927739,59140123,5.85%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_16,890477096,55836368,6.69%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_256,1280544115,51317790,4.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_32,897812266,56668260,6.74%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_4,896826883,57209162,6.81%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_512,1443936645,50940167,3.66%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_64,979473079,55821683,6.04%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_32_8,890819873,57513223,6.90%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_4_128,687282319,37625067,5.79%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_512_128,3130403453,-136253485,-4.17%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_64_128,1192475703,13710336,1.16%,0,0,0.00%,0,0,0.00% +,btreemap_v2_remove_vec_8_128,877067292,57022199,6.95%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_1k_0b,1981104,487646,32.65%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_1k_10kib,57549224,479267,0.84%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_20_10mib,1103729363,9664,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_rev_1k_0b,1981815,486218,32.51%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_rev_1k_10kib,57530291,482697,0.85%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_iter_rev_20_10mib,1103728938,9657,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_1k_0b,1551166,605083,63.96%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_1k_10kib,2958502,598895,25.38%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_20_10mib,18477478,12039,0.07%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_rev_1k_0b,1552873,589553,61.20%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_rev_1k_10kib,2941017,585512,24.86%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_keys_rev_20_10mib,18477506,11732,0.06%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_1k_0b,1941502,450646,30.23%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_1k_10kib,57509622,442267,0.77%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_20_10mib,1103728573,8924,0.00%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_rev_1k_0b,1942213,449218,30.09%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_rev_1k_10kib,57490689,445697,0.78%,0,0,0.00%,0,0,0.00% +,btreemap_v2_scan_values_rev_20_10mib,1103728148,8917,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% From e9c7c430c6fc5939f31c4cbe7c28899ceaeb5a31 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Mon, 19 May 2025 16:07:40 +0200 Subject: [PATCH 64/68] rm csv --- canbench_results.csv | 305 ------------------------------------------- 1 file changed, 305 deletions(-) delete mode 100644 canbench_results.csv diff --git a/canbench_results.csv b/canbench_results.csv deleted file mode 100644 index a52a553f..00000000 --- a/canbench_results.csv +++ /dev/null @@ -1,305 +0,0 @@ -status,name,instructions,instructions Δ,instructions Δ%,heap_increase,heap_increase Δ,heap_increase Δ%,stable_memory_increase,stable_memory_increase Δ,stable_memory_increase Δ% -,btreemap_v2_contains_10mib_values,142229058,16054,0.01%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob8_u64,292071256,14358169,5.17%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_1024_128,3004678141,-1893206678,-38.65%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_128_128,665016023,-260966997,-28.18%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_16_128,299266114,-4919066,-1.62%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_256_128,985524245,-497068338,-33.53%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_1024,317750197,-17139295,-5.12%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_128,317486525,-14849853,-4.47%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_16,316913507,-19734025,-5.86%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_256,319375798,-17576336,-5.22%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_32,321175428,-16592376,-4.91%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_4,317302163,-16432046,-4.92%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_512,317454763,-15354651,-4.61%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_64,320828457,-14317217,-4.27%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_32_8,318450047,-16249412,-4.85%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_4_128,264127393,19250547,7.86%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_512_128,1657176786,-967500658,-36.86%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_64_128,400794429,-183384395,-31.39%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_blob_8_128,280164328,11804767,4.40%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_u64_blob8,249345668,14448345,6.15%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_u64_u64,255212854,18791246,7.95%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_u64_vec8,249345668,14448330,6.15%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec8_u64,331414697,-35076734,-9.57%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_1024_128,1843552548,-1032089423,-35.89%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_128_128,559068813,-138987760,-19.91%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_16_128,379282562,-51213948,-11.90%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_256_128,913001425,-307084117,-25.17%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_1024,512588096,-61210443,-10.67%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_128,433820781,-54783058,-11.21%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_16,363297614,-45010096,-11.02%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_256,441973791,-79904694,-15.31%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_32,363312712,-45493488,-11.13%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_4,362491802,-44688010,-10.98%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_512,477204790,-59793405,-11.13%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_64,403341248,-60261678,-13.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_32_8,362531723,-44571088,-10.95%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_4_128,352494755,-44659093,-11.24%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_512_128,1272734638,-539564422,-29.77%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_64_128,508397924,-86331453,-14.52%,0,0,0.00%,0,0,0.00% -,btreemap_v2_contains_vec_8_128,350968224,-37879507,-9.74%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_10mib_values,1227489035,16378,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob8_u64,304816032,7676121,2.58%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_1024_128,3144320444,-1809603766,-36.53%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_128_128,698826651,-248359844,-26.22%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_16_128,313298866,-4055551,-1.28%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_256_128,1032439290,-474991976,-31.51%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_1024,338180223,-15575998,-4.40%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_128,332624198,-13269965,-3.84%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_16,328919681,-18033781,-5.20%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_256,335563422,-16016799,-4.56%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_32,333781460,-15108101,-4.33%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_4,328246778,-15226886,-4.43%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_512,335192871,-13736880,-3.94%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_64,334932529,-12187106,-3.51%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_32_8,329900204,-15414834,-4.46%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_4_128,276743152,19372531,7.53%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_512_128,1734963607,-924948525,-34.77%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_64_128,425486333,-176288481,-29.29%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_blob_8_128,293940212,12299993,4.37%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_u64_blob8,260251406,14889197,6.07%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_u64_u64,268110583,18841938,7.56%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_u64_vec8,261065188,14927755,6.06%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec8_u64,343885017,-32973269,-8.75%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_1024_128,1892468068,-1029491707,-35.23%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_128_128,571871925,-138955463,-19.55%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_16_128,390610021,-49788190,-11.31%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_256_128,926323429,-307043663,-24.89%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_1024,555478534,-50952580,-8.40%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_128,444489523,-54419114,-10.91%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_16,371411562,-45537935,-10.92%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_256,460059095,-79762303,-14.78%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_32,371559358,-45460721,-10.90%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_4,370813831,-44305192,-10.67%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_512,499706941,-59076309,-10.57%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_64,412299789,-59881982,-12.68%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_32_8,370858341,-44221544,-10.65%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_4_128,363440040,-43616955,-10.72%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_512_128,1285923842,-539780382,-29.57%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_64_128,519684483,-86517364,-14.27%,0,0,0.00%,0,0,0.00% -,btreemap_v2_get_vec_8_128,361789415,-36864342,-9.25%,0,0,0.00%,0,0,0.00% -,btreemap_v2_insert_10mib_values,5236020394,75575,0.00%,322,0,0.00%,3613,0,0.00% -,btreemap_v2_insert_blob8_u64,501716659,60848032,13.80%,0,0,0.00%,4,0,0.00% -,btreemap_v2_insert_blob_1024_128,4298409341,-805598894,-15.78%,0,0,0.00%,196,0,0.00% -,btreemap_v2_insert_blob_128_128,1062334322,-71349725,-6.29%,0,0,0.00%,46,0,0.00% -,btreemap_v2_insert_blob_16_128,550033663,55265669,11.17%,0,0,0.00%,24,0,0.00% -,btreemap_v2_insert_blob_256_128,1517044762,-166827829,-9.91%,0,0,0.00%,67,0,0.00% -,btreemap_v2_insert_blob_32_1024,732784071,45661570,6.65%,0,0,0.00%,173,0,0.00% -,btreemap_v2_insert_blob_32_128,577281316,48158165,9.10%,0,0,0.00%,28,0,0.00% -,btreemap_v2_insert_blob_32_16,555235014,46800739,9.20%,0,0,0.00%,11,0,0.00% -,btreemap_v2_insert_blob_32_256,603441750,43122870,7.70%,0,0,0.00%,49,0,0.00% -,btreemap_v2_insert_blob_32_32,560817016,46785294,9.10%,0,0,0.00%,13,0,0.00% -,btreemap_v2_insert_blob_32_4,544048239,47441440,9.55%,0,0,0.00%,8,0,0.00% -,btreemap_v2_insert_blob_32_512,645074828,47508220,7.95%,0,0,0.00%,91,0,0.00% -,btreemap_v2_insert_blob_32_64,567941552,48422507,9.32%,0,0,0.00%,18,0,0.00% -,btreemap_v2_insert_blob_32_8,549794717,46043542,9.14%,0,0,0.00%,9,0,0.00% -,btreemap_v2_insert_blob_4_128,477592446,67180519,16.37%,0,0,0.00%,13,0,0.00% -,btreemap_v2_insert_blob_512_128,2459054925,-396000556,-13.87%,0,0,0.00%,111,0,0.00% -,btreemap_v2_insert_blob_64_128,691018270,-86518677,-11.13%,0,0,0.00%,34,0,0.00% -,btreemap_v2_insert_blob_8_128,524164752,61221253,13.22%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_u64_blob8,491247984,68592696,16.23%,0,0,0.00%,5,0,0.00% -,btreemap_v2_insert_u64_u64,500866926,69361697,16.07%,0,0,0.00%,6,0,0.00% -,btreemap_v2_insert_u64_vec8,501307103,71377114,16.60%,0,0,0.00%,21,0,0.00% -,btreemap_v2_insert_vec8_u64,614982299,33051031,5.68%,0,0,0.00%,16,0,0.00% -,btreemap_v2_insert_vec_1024_128,2789610913,-529764464,-15.96%,0,0,0.00%,193,0,0.00% -,btreemap_v2_insert_vec_128_128,1042177787,-53768376,-4.91%,0,0,0.00%,51,0,0.00% -,btreemap_v2_insert_vec_16_128,738414762,35034175,4.98%,0,0,0.00%,31,0,0.00% -,btreemap_v2_insert_vec_256_128,1423894681,-83087123,-5.51%,0,0,0.00%,71,0,0.00% -,btreemap_v2_insert_vec_32_1024,1243910406,21571322,1.76%,0,0,0.00%,171,0,0.00% -,btreemap_v2_insert_vec_32_128,782955660,21137237,2.77%,0,0,0.00%,33,0,0.00% -,btreemap_v2_insert_vec_32_16,690772545,27483636,4.14%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_vec_32_256,906365509,15642647,1.76%,0,0,0.00%,54,0,0.00% -,btreemap_v2_insert_vec_32_32,684749908,18567967,2.79%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_vec_32_4,684856776,24495469,3.71%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_vec_32_512,1026119993,16981108,1.68%,0,0,0.00%,91,0,0.00% -,btreemap_v2_insert_vec_32_64,716558458,24417185,3.53%,0,0,0.00%,24,0,0.00% -,btreemap_v2_insert_vec_32_8,684037572,23906118,3.62%,0,0,0.00%,20,0,0.00% -,btreemap_v2_insert_vec_4_128,648407960,39727301,6.53%,0,0,0.00%,16,0,0.00% -,btreemap_v2_insert_vec_512_128,1901572280,-226517506,-10.64%,0,0,0.00%,112,0,0.00% -,btreemap_v2_insert_vec_64_128,873371621,-7125630,-0.81%,0,0,0.00%,41,0,0.00% -,btreemap_v2_insert_vec_8_128,707096235,40734417,6.11%,0,0,0.00%,23,0,0.00% -,btreemap_v2_mem_manager_contains_blob512_u64,1775949161,-941681221,-34.65%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_contains_u64_blob512,311272695,161820,0.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_contains_u64_u64,317156841,408578,0.13%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_contains_u64_vec512,400392398,5317777,1.35%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_contains_vec512_u64,1258425858,-493690579,-28.18%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_get_blob512_u64,1863808659,-898898486,-32.54%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_get_u64_blob512,329294891,1426133,0.43%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_get_u64_u64,331652326,1871759,0.57%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_get_u64_vec512,427935018,5992435,1.42%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_get_vec512_u64,1303577687,-486102788,-27.16%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_blob512_u64,2597565947,-362280237,-12.24%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_u64_blob512,707049704,59984796,9.27%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_u64_u64,621126909,60290347,10.75%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_u64_vec512,960296871,59662540,6.62%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_insert_vec512_u64,2031591198,-206433770,-9.22%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_blob512_u64,3736567051,-110972051,-2.88%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_u64_blob512,1034958115,87593919,9.25%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_u64_u64,892052152,84707772,10.49%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_u64_vec512,1375819243,90394371,7.03%,0,0,0.00%,0,0,0.00% -,btreemap_v2_mem_manager_remove_vec512_u64,3198591960,-113883702,-3.44%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob8_u64,629253248,20940838,3.44%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_1024_128,6147001197,-3251187270,-34.59%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_128_128,1531908056,-475507312,-23.69%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_16_128,765283250,7864277,1.04%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_256_128,2185233950,-908551252,-29.37%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_1024,1116736838,-15716676,-1.39%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_128,860692670,-15678996,-1.79%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_16,802464245,-17451335,-2.13%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_256,892952288,-14551519,-1.60%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_32,811824098,-19803918,-2.38%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_4,786045356,-16044984,-2.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_512,960837938,-12427720,-1.28%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_64,823444657,-15248589,-1.82%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_32_8,802974323,-15489473,-1.89%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_4_128,399711532,27726221,7.45%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_512_128,3509572847,-1662692105,-32.15%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_64_128,1025420211,-303459597,-22.84%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_blob_8_128,634095102,22688002,3.71%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_u64_blob8,753793039,48541309,6.88%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_u64_u64,768155629,50798933,7.08%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_u64_vec8,757240426,47647215,6.71%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec8_u64,732991720,-49295370,-6.30%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_1024_128,4085915603,-1678166214,-29.11%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_128_128,1538597561,-277824092,-15.30%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_16_128,969028764,-55557571,-5.42%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_256_128,2055957144,-473759540,-18.73%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_1024,1717441040,-94738408,-5.23%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_128,1114978395,-90062150,-7.47%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_16,961475566,-77862451,-7.49%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_256,1243299725,-83768476,-6.31%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_32,955175429,-100354730,-9.51%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_4,948465621,-89806945,-8.65%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_512,1398936327,-91649192,-6.15%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_64,1002725828,-87064655,-7.99%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_32_8,959526555,-90650272,-8.63%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_4_128,519693694,-17787791,-3.31%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_512_128,2758195778,-842783125,-23.40%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_64_128,1262234043,-140062732,-9.99%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_first_vec_8_128,808949551,-36661853,-4.34%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob8_u64,605594719,13210522,2.23%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_1024_128,5830793696,-3388871297,-36.76%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_128_128,1465499866,-493016838,-25.17%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_16_128,738880823,257806,0.03%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_256_128,2079294367,-941237007,-31.16%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_1024,1085669333,-26895772,-2.42%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_128,830643675,-23704321,-2.77%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_16,769688933,-29130107,-3.65%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_256,861919416,-24736402,-2.79%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_32,780760100,-30035167,-3.70%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_4,760677261,-27096699,-3.44%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_512,933506500,-21712253,-2.27%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_64,795410677,-25230206,-3.07%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_32_8,771816802,-26049997,-3.26%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_4_128,386661070,23002658,6.33%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_512_128,3345362741,-1708047466,-33.80%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_64_128,990351700,-316666360,-24.23%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_blob_8_128,624461847,13278811,2.17%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_u64_blob8,729066416,36175757,5.22%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_u64_u64,743800192,39194499,5.56%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_u64_vec8,731910124,35912536,5.16%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec8_u64,708957905,-54669759,-7.16%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_1024_128,4313316700,-1698354777,-28.25%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_128_128,1552648335,-277661384,-15.17%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_16_128,947358933,-65430438,-6.46%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_256_128,2129557691,-453462682,-17.56%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_1024,1698443491,-108558734,-6.01%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_128,1096848946,-107399122,-8.92%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_16,941209083,-87003617,-8.46%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_256,1226663580,-97865908,-7.39%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_32,936303418,-107600606,-10.31%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_4,934258686,-102364647,-9.87%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_512,1389566809,-101324785,-6.80%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_64,983167413,-101406392,-9.35%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_32_8,937711654,-100670107,-9.69%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_4_128,504246189,-24377681,-4.61%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_512_128,2873424953,-850506877,-22.84%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_64_128,1255974553,-159830638,-11.29%,0,0,0.00%,0,0,0.00% -,btreemap_v2_pop_last_vec_8_128,801484501,-51764021,-6.07%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_count_1k_0b,20115,3244,19.23%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_count_1k_10kib,2986687,546381,22.39%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_count_20_10mib,20584404,11922,0.06%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_key_sum_1k_0b,20531,3126,17.96%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_key_sum_1k_10kib,57677193,422276,0.74%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_key_sum_20_10mib,1105836590,10444,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_value_sum_1k_0b,20545,3126,17.95%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_value_sum_1k_10kib,57689189,422276,0.74%,0,0,0.00%,0,0,0.00% -,btreemap_v2_range_value_sum_20_10mib,1105836826,10444,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_10mib_values,5561272860,89630,0.00%,0,0,0.00%,657,0,0.00% -,btreemap_v2_remove_blob8_u64,667900563,80730508,13.75%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_1024_128,6063706104,-410415876,-6.34%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_128_128,1457463878,-8652649,-0.59%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_16_128,757672413,77669635,11.42%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_256_128,2098091924,-97124222,-4.42%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_1024,1036297823,70413676,7.29%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_128,801420541,70316020,9.62%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_16,755774413,68599606,9.98%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_256,837217335,71224073,9.30%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_32,765911420,69932570,10.05%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_4,750822623,71512729,10.53%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_512,911302025,73379823,8.76%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_64,793243985,73236353,10.17%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_32_8,749626337,69672125,10.25%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_4_128,522538214,67037424,14.72%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_512_128,3448674395,-151826733,-4.22%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_64_128,947748278,-72366799,-7.09%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_blob_8_128,685714058,77835976,12.80%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_u64_blob8,689441571,91902713,15.38%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_u64_u64,712995636,93885672,15.16%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_u64_vec8,695853424,92395379,15.31%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec8_u64,804496668,54070521,7.21%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_1024_128,4560037620,-462593900,-9.21%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_128_128,1473629560,21563040,1.48%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_16_128,971674171,63927947,7.04%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_256_128,2293167894,-21818803,-0.94%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_1024,1732355221,58342854,3.49%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_128,1069927739,59140123,5.85%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_16,890477096,55836368,6.69%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_256,1280544115,51317790,4.17%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_32,897812266,56668260,6.74%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_4,896826883,57209162,6.81%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_512,1443936645,50940167,3.66%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_64,979473079,55821683,6.04%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_32_8,890819873,57513223,6.90%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_4_128,687282319,37625067,5.79%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_512_128,3130403453,-136253485,-4.17%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_64_128,1192475703,13710336,1.16%,0,0,0.00%,0,0,0.00% -,btreemap_v2_remove_vec_8_128,877067292,57022199,6.95%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_1k_0b,1981104,487646,32.65%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_1k_10kib,57549224,479267,0.84%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_20_10mib,1103729363,9664,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_rev_1k_0b,1981815,486218,32.51%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_rev_1k_10kib,57530291,482697,0.85%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_iter_rev_20_10mib,1103728938,9657,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_1k_0b,1551166,605083,63.96%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_1k_10kib,2958502,598895,25.38%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_20_10mib,18477478,12039,0.07%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_rev_1k_0b,1552873,589553,61.20%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_rev_1k_10kib,2941017,585512,24.86%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_keys_rev_20_10mib,18477506,11732,0.06%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_1k_0b,1941502,450646,30.23%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_1k_10kib,57509622,442267,0.77%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_20_10mib,1103728573,8924,0.00%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_rev_1k_0b,1942213,449218,30.09%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_rev_1k_10kib,57490689,445697,0.78%,0,0,0.00%,0,0,0.00% -,btreemap_v2_scan_values_rev_20_10mib,1103728148,8917,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% From 37b3882469f746201733086c48951a070785da5c Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Mon, 19 May 2025 16:11:18 +0200 Subject: [PATCH 65/68] --persist --- canbench_results.yml | 1500 +++++++++++++++++++++--------------------- 1 file changed, 750 insertions(+), 750 deletions(-) diff --git a/canbench_results.yml b/canbench_results.yml index 023a605b..8f062d42 100644 --- a/canbench_results.yml +++ b/canbench_results.yml @@ -1,3524 +1,3524 @@ benches: btreemap_v2_contains_10mib_values: total: - instructions: 159103703 + instructions: 151728242 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 159035758 + instructions: 151609842 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_blob8_u64: total: - instructions: 330695991 + instructions: 348282240 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 242343162 + instructions: 156493640 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_blob_1024_128: total: - instructions: 4946351764 + instructions: 3061164628 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 4525699805 + instructions: 157372325 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_blob_128_128: total: - instructions: 979959144 + instructions: 717855182 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 851417266 + instructions: 158478139 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_blob_16_128: total: - instructions: 354190920 + instructions: 354868193 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 264936938 + instructions: 155539336 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_blob_256_128: total: - instructions: 1533814859 + instructions: 1039964027 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1362320475 + instructions: 156158074 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_blob_32_1024: total: - instructions: 393225817 + instructions: 376085158 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 297397819 + instructions: 156576548 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_blob_32_128: total: - instructions: 389666027 + instructions: 372734737 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 294337269 + instructions: 156619987 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_blob_32_16: total: - instructions: 391321996 + instructions: 371760780 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 297742175 + instructions: 157397115 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_blob_32_256: total: - instructions: 397279277 + instructions: 377884287 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 299071599 + instructions: 156875088 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_blob_32_32: total: - instructions: 393792385 + instructions: 375422093 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 298036729 + instructions: 157691296 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_blob_32_4: total: - instructions: 390826169 + instructions: 373749134 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 295553088 + instructions: 156963289 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_blob_32_512: total: - instructions: 390576040 + instructions: 375619913 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 294451651 + instructions: 157212538 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_blob_32_64: total: - instructions: 389775490 + instructions: 375380832 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 296097512 + instructions: 157566389 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_blob_32_8: total: - instructions: 389413194 + instructions: 374118796 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 295860681 + instructions: 156725003 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_blob_4_128: total: - instructions: 287984130 + instructions: 308098998 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 217085971 + instructions: 145117773 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_blob_512_128: total: - instructions: 2681019739 + instructions: 1712458048 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 2427037301 + instructions: 155838066 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_blob_64_128: total: - instructions: 637453983 + instructions: 454835352 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 527412649 + instructions: 159765370 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_blob_8_128: total: - instructions: 319736027 + instructions: 335299624 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 233810813 + instructions: 149368093 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_u64_blob8: total: - instructions: 290707346 + instructions: 309822994 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 210664848 + instructions: 141077351 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_u64_u64: total: - instructions: 290275545 + instructions: 309370143 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 213396650 + instructions: 143842256 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_u64_vec8: total: - instructions: 290707346 + instructions: 309822994 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 210664848 + instructions: 141077351 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_vec8_u64: total: - instructions: 427069781 + instructions: 392618253 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 275461182 + instructions: 154364912 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_vec_1024_128: total: - instructions: 2971069019 + instructions: 1917215995 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 2276987607 + instructions: 343670332 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_vec_128_128: total: - instructions: 761240945 + instructions: 613928057 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 552296549 + instructions: 232432248 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_vec_16_128: total: - instructions: 485617005 + instructions: 434208963 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 318192856 + instructions: 181617087 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_vec_256_128: total: - instructions: 1275557153 + instructions: 967916526 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 949288533 + instructions: 273565934 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_vec_32_1024: total: - instructions: 630529453 + instructions: 577334962 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 441771790 + instructions: 285087656 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_vec_32_128: total: - instructions: 543604433 + instructions: 488728734 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 363121366 + instructions: 195366004 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_vec_32_16: total: - instructions: 466379341 + instructions: 420616659 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 315993006 + instructions: 158284374 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_vec_32_256: total: - instructions: 577345567 + instructions: 497287356 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 386523541 + instructions: 217951318 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_vec_32_32: total: - instructions: 470596407 + instructions: 429206183 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 318585657 + instructions: 163261580 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_vec_32_4: total: - instructions: 467165373 + instructions: 428637115 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 316171188 + instructions: 162759938 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_vec_32_512: total: - instructions: 585936291 + instructions: 532437974 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 393890350 + instructions: 236717194 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_vec_32_64: total: - instructions: 523967275 + instructions: 462977209 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 351804119 + instructions: 168955866 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_vec_32_8: total: - instructions: 469799819 + instructions: 426253368 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 317923897 + instructions: 161406890 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_vec_4_128: total: - instructions: 440368122 + instructions: 395469144 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 294516166 + instructions: 171561186 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_vec_512_128: total: - instructions: 1869170540 + instructions: 1327619817 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1415620461 + instructions: 311842923 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_vec_64_128: total: - instructions: 649945032 + instructions: 562211039 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 453307594 + instructions: 216347046 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_contains_vec_8_128: total: - instructions: 443719479 + instructions: 405970369 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 286863462 + instructions: 166701043 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_10mib_values: total: - instructions: 1244360216 + instructions: 1236985186 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 159035758 + instructions: 151609842 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_blob8_u64: total: - instructions: 352567608 + instructions: 360969776 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 242343162 + instructions: 156493640 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_blob_1024_128: total: - instructions: 5006709788 + instructions: 3205233395 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 4525699114 + instructions: 157365997 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_blob_128_128: total: - instructions: 1007633242 + instructions: 757593634 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 851416920 + instructions: 158477934 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_blob_16_128: total: - instructions: 374229873 + instructions: 376461048 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 264936822 + instructions: 155533372 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_blob_256_128: total: - instructions: 1563200563 + instructions: 1091627283 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1362323803 + instructions: 156155808 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_blob_32_1024: total: - instructions: 410492510 + instructions: 400555923 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 297534748 + instructions: 156609680 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_blob_32_128: total: - instructions: 409449721 + instructions: 395396141 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 294306073 + instructions: 156608268 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_blob_32_16: total: - instructions: 411750644 + instructions: 393312711 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 297741171 + instructions: 157397028 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_blob_32_256: total: - instructions: 418043521 + instructions: 400840750 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 299053047 + instructions: 156877786 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_blob_32_32: total: - instructions: 412897071 + instructions: 397284983 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 298012021 + instructions: 157684534 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_blob_32_4: total: - instructions: 406884037 + instructions: 391414173 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 295521362 + instructions: 156905974 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_blob_32_512: total: - instructions: 407751155 + instructions: 394709868 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 294826647 + instructions: 157440517 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_blob_32_64: total: - instructions: 411153754 + instructions: 397845667 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 296097425 + instructions: 157565456 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_blob_32_8: total: - instructions: 408787333 + instructions: 394302335 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 295860681 + instructions: 156725003 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_blob_4_128: total: - instructions: 304053924 + instructions: 324243900 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 217073132 + instructions: 145015593 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_blob_512_128: total: - instructions: 2720934269 + instructions: 1795150300 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 2427035957 + instructions: 155837026 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_blob_64_128: total: - instructions: 660387847 + instructions: 485871346 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 527381720 + instructions: 159763067 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_blob_8_128: total: - instructions: 339881833 + instructions: 355697208 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 233810340 + instructions: 149365756 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_u64_blob8: total: - instructions: 298404091 + instructions: 324573443 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 210664848 + instructions: 141072827 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_u64_u64: total: - instructions: 299279306 + instructions: 328726941 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 213396650 + instructions: 143841329 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_u64_vec8: total: - instructions: 298790296 + instructions: 325863841 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 210664848 + instructions: 141072305 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_vec8_u64: total: - instructions: 437281165 + instructions: 405235280 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 275461182 + instructions: 154364912 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_vec_1024_128: total: - instructions: 2994101578 + instructions: 1964853708 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 2276258589 + instructions: 351335397 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_vec_128_128: total: - instructions: 774011760 + instructions: 626731140 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 552296549 + instructions: 232432248 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_vec_16_128: total: - instructions: 495415534 + instructions: 445528836 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 318137669 + instructions: 181617087 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_vec_256_128: total: - instructions: 1288817439 + instructions: 981238473 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 949288165 + instructions: 273565948 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_vec_32_1024: total: - instructions: 672105195 + instructions: 614162870 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 444473133 + instructions: 285761867 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_vec_32_128: total: - instructions: 553735030 + instructions: 499387084 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 362989448 + instructions: 195366004 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_vec_32_16: total: - instructions: 475199734 + instructions: 428728678 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 315995010 + instructions: 158284374 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_vec_32_256: total: - instructions: 595277345 + instructions: 515367936 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 387435144 + instructions: 217965325 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_vec_32_32: total: - instructions: 478809412 + instructions: 437450602 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 318585657 + instructions: 163261580 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_vec_32_4: total: - instructions: 475080632 + instructions: 436947520 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 316171188 + instructions: 162759938 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_vec_32_512: total: - instructions: 614075148 + instructions: 554910339 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 398403222 + instructions: 236766873 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_vec_32_64: total: - instructions: 532617794 + instructions: 471761726 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 351804119 + instructions: 168948217 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_vec_32_8: total: - instructions: 477757748 + instructions: 434523405 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 317923897 + instructions: 161406890 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_vec_4_128: total: - instructions: 450271905 + instructions: 406438347 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 294514956 + instructions: 171561186 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_vec_512_128: total: - instructions: 1882534292 + instructions: 1340934952 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1415627637 + instructions: 311812859 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_vec_64_128: total: - instructions: 661173876 + instructions: 573496542 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 453307367 + instructions: 216347046 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_get_vec_8_128: total: - instructions: 453495691 + instructions: 416767012 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 286863462 + instructions: 166701043 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_insert_10mib_values: total: - instructions: 5255945722 + instructions: 5248143497 heap_increase: 322 stable_memory_increase: 3613 scopes: node_load_v2: - instructions: 158720986 + instructions: 167885950 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 4110356807 + instructions: 4093314063 heap_increase: 161 stable_memory_increase: 3613 btreemap_v2_insert_blob8_u64: total: - instructions: 521117714 + instructions: 586458577 heap_increase: 52 stable_memory_increase: 4 scopes: node_load_v2: - instructions: 235965110 + instructions: 151014089 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 129412997 + instructions: 173015701 heap_increase: 0 stable_memory_increase: 1 btreemap_v2_insert_blob_1024_128: total: - instructions: 5233847198 + instructions: 4457539051 heap_increase: 52 stable_memory_increase: 196 scopes: node_load_v2: - instructions: 4433930796 + instructions: 156062578 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 202677765 + instructions: 1216082985 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_insert_blob_128_128: total: - instructions: 1214308871 + instructions: 1145493076 heap_increase: 51 stable_memory_increase: 46 scopes: node_load_v2: - instructions: 833731487 + instructions: 152624803 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 153630742 + instructions: 331058990 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_insert_blob_16_128: total: - instructions: 584047270 + instructions: 638318132 heap_increase: 51 stable_memory_increase: 24 scopes: node_load_v2: - instructions: 262483000 + instructions: 151947282 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 143475839 + instructions: 191841259 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_insert_blob_256_128: total: - instructions: 1771663268 + instructions: 1610661955 heap_increase: 52 stable_memory_increase: 67 scopes: node_load_v2: - instructions: 1332231045 + instructions: 156185007 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 160408263 + instructions: 456600869 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_insert_blob_32_1024: total: - instructions: 792185754 + instructions: 825783347 heap_increase: 51 stable_memory_increase: 173 scopes: node_load_v2: - instructions: 290801162 + instructions: 150831274 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 249088762 + instructions: 299632051 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_insert_blob_32_128: total: - instructions: 617860432 + instructions: 665952248 heap_increase: 52 stable_memory_increase: 28 scopes: node_load_v2: - instructions: 287180329 + instructions: 152658552 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 146117918 + instructions: 199856949 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_insert_blob_32_16: total: - instructions: 596204047 + instructions: 641249866 heap_increase: 52 stable_memory_increase: 11 scopes: node_load_v2: - instructions: 289994473 + instructions: 153161336 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 135807257 + instructions: 190046116 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_insert_blob_32_256: total: - instructions: 648943406 + instructions: 692585401 heap_increase: 51 stable_memory_increase: 49 scopes: node_load_v2: - instructions: 293189508 + instructions: 153059884 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 160502766 + instructions: 214781860 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_insert_blob_32_32: total: - instructions: 593656541 + instructions: 646783315 heap_increase: 52 stable_memory_increase: 13 scopes: node_load_v2: - instructions: 289258837 + instructions: 153807026 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 137561414 + instructions: 191867331 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_insert_blob_32_4: total: - instructions: 584231629 + instructions: 629928840 heap_increase: 52 stable_memory_increase: 8 scopes: node_load_v2: - instructions: 288812638 + instructions: 153031851 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 131121894 + instructions: 185088835 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_insert_blob_32_512: total: - instructions: 697561366 + instructions: 744973003 heap_increase: 51 stable_memory_increase: 91 scopes: node_load_v2: - instructions: 287855545 + instructions: 153086510 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 193332234 + instructions: 247263973 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_insert_blob_32_64: total: - instructions: 606785064 + instructions: 647318699 heap_increase: 52 stable_memory_increase: 18 scopes: node_load_v2: - instructions: 289286444 + instructions: 150090007 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 140467842 + instructions: 194718053 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_insert_blob_32_8: total: - instructions: 591194689 - heap_increase: 52 + instructions: 635298193 + heap_increase: 51 stable_memory_increase: 9 scopes: node_load_v2: - instructions: 291200312 + instructions: 152895828 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 132842945 + instructions: 186632883 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_insert_blob_4_128: total: - instructions: 484430019 + instructions: 556112410 heap_increase: 51 stable_memory_increase: 13 scopes: node_load_v2: - instructions: 196881202 + instructions: 135029746 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 129083749 + instructions: 169038285 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_insert_blob_512_128: total: - instructions: 2972289417 + instructions: 2595013517 heap_increase: 52 stable_memory_increase: 111 scopes: node_load_v2: - instructions: 2410701919 + instructions: 157143532 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 175031083 + instructions: 717278967 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_insert_blob_64_128: total: - instructions: 864622388 - heap_increase: 52 + instructions: 777105429 + heap_increase: 51 stable_memory_increase: 34 scopes: node_load_v2: - instructions: 510524019 + instructions: 153412751 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 149587326 + instructions: 229387331 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_insert_blob_8_128: total: - instructions: 544967085 + instructions: 611243599 heap_increase: 52 stable_memory_increase: 20 scopes: node_load_v2: - instructions: 233327821 + instructions: 147677741 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 140134918 + instructions: 185063831 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_insert_u64_blob8: total: - instructions: 503925035 + instructions: 580485106 heap_increase: 52 stable_memory_increase: 5 scopes: node_load_v2: - instructions: 202441777 + instructions: 137375933 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 154449722 + instructions: 194932410 heap_increase: 0 stable_memory_increase: 1 btreemap_v2_insert_u64_u64: total: - instructions: 512449920 + instructions: 590053941 heap_increase: 51 stable_memory_increase: 6 scopes: node_load_v2: - instructions: 203217101 + instructions: 138701593 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 158393148 + instructions: 198917111 heap_increase: 0 stable_memory_increase: 1 btreemap_v2_insert_u64_vec8: total: - instructions: 511940371 + instructions: 590536548 heap_increase: 52 stable_memory_increase: 21 scopes: node_load_v2: - instructions: 202467461 + instructions: 138052623 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 156906810 + instructions: 197388720 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_insert_vec8_u64: total: - instructions: 656387941 + instructions: 690598360 heap_increase: 52 stable_memory_increase: 16 scopes: node_load_v2: - instructions: 262845106 + instructions: 145783997 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 168466190 + instructions: 220168155 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_insert_vec_1024_128: total: - instructions: 3455479290 + instructions: 2890564392 heap_increase: 0 stable_memory_increase: 193 scopes: node_load_v2: - instructions: 2201061951 + instructions: 347033714 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 961229841 + instructions: 1334306357 heap_increase: 0 stable_memory_increase: 181 btreemap_v2_insert_vec_128_128: total: - instructions: 1180798897 + instructions: 1125768542 heap_increase: 45 stable_memory_increase: 51 scopes: node_load_v2: - instructions: 532661092 + instructions: 221134580 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 357473638 + instructions: 444459674 heap_increase: 0 stable_memory_increase: 38 btreemap_v2_insert_vec_16_128: total: - instructions: 780046480 + instructions: 814350720 heap_increase: 50 stable_memory_increase: 31 scopes: node_load_v2: - instructions: 295901921 + instructions: 168472958 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 223177767 + instructions: 276993138 heap_increase: 0 stable_memory_increase: 16 btreemap_v2_insert_vec_256_128: total: - instructions: 1673266868 + instructions: 1568941564 heap_increase: 0 stable_memory_increase: 71 scopes: node_load_v2: - instructions: 879332317 + instructions: 256848418 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 499281171 + instructions: 651361254 heap_increase: 0 stable_memory_increase: 57 btreemap_v2_insert_vec_32_1024: total: - instructions: 1299170988 + instructions: 1317512308 heap_increase: 0 stable_memory_increase: 171 scopes: node_load_v2: - instructions: 422801307 + instructions: 270700898 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 551042738 + instructions: 609510202 heap_increase: 0 stable_memory_increase: 158 btreemap_v2_insert_vec_32_128: total: - instructions: 839777311 + instructions: 859810698 heap_increase: 50 stable_memory_increase: 33 scopes: node_load_v2: - instructions: 328475041 + instructions: 176106180 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 242953557 + instructions: 301506750 heap_increase: 0 stable_memory_increase: 22 btreemap_v2_insert_vec_32_16: total: - instructions: 738365756 + instructions: 766090501 heap_increase: 53 stable_memory_increase: 20 scopes: node_load_v2: - instructions: 304982713 + instructions: 152381383 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 191645264 + instructions: 250479120 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_insert_vec_32_256: total: - instructions: 970318106 - heap_increase: 34 + instructions: 985599263 + heap_increase: 17 stable_memory_increase: 54 scopes: node_load_v2: - instructions: 355257746 + instructions: 202606574 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 328068653 + instructions: 386648152 heap_increase: 0 stable_memory_increase: 42 btreemap_v2_insert_vec_32_32: total: - instructions: 747160754 + instructions: 760068341 heap_increase: 52 stable_memory_increase: 20 scopes: node_load_v2: - instructions: 304592764 + instructions: 153012533 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 191833117 + instructions: 250601506 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_insert_vec_32_4: total: - instructions: 738185842 + instructions: 763497307 heap_increase: 53 stable_memory_increase: 20 scopes: node_load_v2: - instructions: 304525147 + instructions: 149960437 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 188518693 + instructions: 247120914 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_insert_vec_32_512: total: - instructions: 1080290017 + instructions: 1097328274 heap_increase: 0 stable_memory_increase: 91 scopes: node_load_v2: - instructions: 373390081 + instructions: 220877293 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 407263742 + instructions: 466579698 heap_increase: 0 stable_memory_increase: 81 btreemap_v2_insert_vec_32_64: total: - instructions: 770223849 - heap_increase: 52 + instructions: 791474394 + heap_increase: 53 stable_memory_increase: 24 scopes: node_load_v2: - instructions: 308876559 + instructions: 157363354 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 206255462 + instructions: 264953630 heap_increase: 0 stable_memory_increase: 7 btreemap_v2_insert_vec_32_8: total: - instructions: 737675142 + instructions: 762354564 heap_increase: 53 stable_memory_increase: 20 scopes: node_load_v2: - instructions: 303340130 + instructions: 152066811 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 188440719 + instructions: 246762707 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_insert_vec_4_128: total: - instructions: 676577560 + instructions: 716624218 heap_increase: 52 stable_memory_increase: 16 scopes: node_load_v2: - instructions: 256921058 + instructions: 149983288 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 191008095 + instructions: 238915251 heap_increase: 0 stable_memory_increase: 11 btreemap_v2_insert_vec_512_128: total: - instructions: 2285515015 + instructions: 2029573158 heap_increase: 0 stable_memory_increase: 112 scopes: node_load_v2: - instructions: 1334046533 + instructions: 292584730 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 654838090 + instructions: 884216109 heap_increase: 0 stable_memory_increase: 99 btreemap_v2_insert_vec_64_128: total: - instructions: 958693398 - heap_increase: 37 + instructions: 956733257 + heap_increase: 46 stable_memory_increase: 41 scopes: node_load_v2: - instructions: 394006206 + instructions: 191136261 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 284987771 + instructions: 352559989 heap_increase: 0 stable_memory_increase: 24 btreemap_v2_insert_vec_8_128: total: - instructions: 740401663 + instructions: 781379193 heap_increase: 52 stable_memory_increase: 23 scopes: node_load_v2: - instructions: 277586789 + instructions: 161427909 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 212575819 + instructions: 264595687 heap_increase: 0 stable_memory_increase: 14 btreemap_v2_mem_manager_contains_blob512_u64: total: - instructions: 2807717374 + instructions: 1877519721 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 2538778135 + instructions: 242483175 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_mem_manager_contains_u64_blob512: total: - instructions: 363391020 + instructions: 368305849 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 283411568 + instructions: 190576225 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_mem_manager_contains_u64_u64: total: - instructions: 367291218 + instructions: 372851415 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 286691737 + instructions: 193839131 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_mem_manager_contains_u64_vec512: total: - instructions: 447058632 + instructions: 451098462 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 361537503 + instructions: 268658005 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_mem_manager_contains_vec512_u64: total: - instructions: 1905983732 + instructions: 1371329880 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1462912241 + instructions: 372573148 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_mem_manager_get_blob512_u64: total: - instructions: 2841984210 + instructions: 1954567221 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 2538778195 + instructions: 242483175 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_mem_manager_get_u64_blob512: total: - instructions: 386399215 + instructions: 392533584 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 283424980 + instructions: 190577416 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_mem_manager_get_u64_u64: total: - instructions: 390139394 + instructions: 396554441 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 286690254 + instructions: 193838011 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_mem_manager_get_u64_vec512: total: - instructions: 472838663 + instructions: 488161828 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 361620390 + instructions: 268658005 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_mem_manager_get_vec512_u64: total: - instructions: 1934239933 + instructions: 1399429811 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1462912226 + instructions: 372574339 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_mem_manager_insert_blob512_u64: total: - instructions: 3054047755 + instructions: 2703969253 heap_increase: 52 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 2451661848 + instructions: 221773502 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 227534972 + instructions: 770363900 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_mem_manager_insert_u64_blob512: total: - instructions: 744419048 + instructions: 810696396 heap_increase: 52 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 270511382 + instructions: 182378990 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 269319281 + instructions: 313753444 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_mem_manager_insert_u64_u64: total: - instructions: 642030550 + instructions: 709121287 heap_increase: 51 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 272676890 + instructions: 184369934 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 211915857 + instructions: 256564210 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_mem_manager_insert_u64_vec512: total: - instructions: 1004854360 + instructions: 1073362939 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 348035687 + instructions: 261233593 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 446031481 + instructions: 490855810 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_mem_manager_insert_vec512_u64: total: - instructions: 2397956550 + instructions: 2147001531 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1418258170 + instructions: 354873396 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 693784323 + instructions: 931239113 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_mem_manager_remove_blob512_u64: total: - instructions: 3972754848 + instructions: 3873913079 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 2802777927 + instructions: 260259841 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 423116341 + instructions: 1578744528 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_mem_manager_remove_u64_blob512: total: - instructions: 1064106692 + instructions: 1161186877 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 306115029 + instructions: 205641761 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 474856514 + instructions: 569594307 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_mem_manager_remove_u64_u64: total: - instructions: 918291128 + instructions: 1011897914 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 310514792 + instructions: 209799007 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 388046476 + instructions: 478750024 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_mem_manager_remove_u64_vec512: total: - instructions: 1418502078 + instructions: 1518081562 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 393285892 + instructions: 294060316 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 752484054 + instructions: 847775098 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_mem_manager_remove_vec512_u64: total: - instructions: 3474884241 + instructions: 3339915079 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1571241111 + instructions: 403734696 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 1238421181 + instructions: 1750004415 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_blob8_u64: total: - instructions: 715052899 + instructions: 745536693 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 341610476 + instructions: 218579111 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 161817645 + instructions: 220060082 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_blob_1024_128: total: - instructions: 9584329021 + instructions: 6358893837 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 7895203677 + instructions: 272100244 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 298391648 + instructions: 1960307258 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_blob_128_128: total: - instructions: 2146173917 + instructions: 1678949372 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1492427437 + instructions: 269727457 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 223985235 + instructions: 509830508 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_blob_16_128: total: - instructions: 878787257 - heap_increase: 0 + instructions: 901334108 + heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 414664548 + instructions: 241313432 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 195303077 + instructions: 267397154 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_blob_256_128: total: - instructions: 3227863790 + instructions: 2340193273 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 2430225205 + instructions: 274920736 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 236379112 + instructions: 718000685 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_blob_32_1024: total: - instructions: 1282487207 + instructions: 1266457045 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 495670466 + instructions: 257213985 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 338312203 + instructions: 423559866 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_blob_32_128: total: - instructions: 1017421187 + instructions: 1004536050 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 499820011 + instructions: 263027597 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 211698113 + instructions: 297605426 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_blob_32_16: total: - instructions: 967598113 + instructions: 951989636 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 494381403 + instructions: 258330492 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 192579867 + instructions: 276513618 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_blob_32_256: total: - instructions: 1045248494 + instructions: 1030837919 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 492219461 + instructions: 255902020 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 229079661 + instructions: 314337445 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_blob_32_32: total: - instructions: 976295686 + instructions: 960051117 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 496905216 + instructions: 257673703 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 195314315 + instructions: 279561148 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_blob_32_4: total: - instructions: 947100734 + instructions: 931424600 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 492389933 + instructions: 255650862 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 188416842 + instructions: 273093836 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_blob_32_512: total: - instructions: 1119630301 + instructions: 1104777288 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 486656024 + instructions: 253698626 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 267033271 + instructions: 351647268 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_blob_32_64: total: - instructions: 982665047 + instructions: 970379607 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 490604346 + instructions: 256562541 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 199863131 + instructions: 284168692 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_blob_32_8: total: - instructions: 965147358 + instructions: 950668910 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 495575398 + instructions: 257825148 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 193798844 + instructions: 279964343 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_blob_4_128: total: - instructions: 437173981 + instructions: 467441100 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 185941633 + instructions: 124659474 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 111736264 + instructions: 148209769 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_blob_512_128: total: - instructions: 5330751696 + instructions: 3694514873 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 4261841961 + instructions: 269619227 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 256334319 + instructions: 1133830732 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_blob_64_128: total: - instructions: 1471203383 - heap_increase: 0 + instructions: 1177464092 + heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 894595133 + instructions: 266817906 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 217635694 + instructions: 345377534 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_blob_8_128: total: - instructions: 714589579 + instructions: 744896955 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 321840978 + instructions: 204797750 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 167270333 + instructions: 224673360 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_u64_blob8: total: - instructions: 844061399 + instructions: 911843393 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 366573119 + instructions: 248432625 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 229352459 + instructions: 294786478 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_u64_u64: total: - instructions: 857365232 + instructions: 922514383 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 365335172 + instructions: 248121348 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 237123122 + instructions: 302647818 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_u64_vec8: total: - instructions: 848662584 + instructions: 916904197 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 363986609 + instructions: 245847919 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 232350972 + instructions: 297784206 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_vec8_u64: total: - instructions: 889665037 + instructions: 846043978 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 379263087 + instructions: 209043602 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 205578955 + instructions: 273912826 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_vec_1024_128: total: - instructions: 6015697298 + instructions: 4298135043 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 3816620771 + instructions: 574055569 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 1398698296 + instructions: 2006582469 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_vec_128_128: total: - instructions: 1968891164 + instructions: 1685205780 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 954844622 + instructions: 398773675 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 506915689 + instructions: 650099391 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_vec_16_128: total: - instructions: 1153000278 + instructions: 1103329407 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 473865652 + instructions: 267889816 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 297311587 + instructions: 377363112 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_vec_256_128: total: - instructions: 2816282265 + instructions: 2279888742 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1527363797 + instructions: 460738699 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 712727513 + instructions: 959087509 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_vec_32_1024: total: - instructions: 1962184548 + instructions: 1882348543 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 720596088 + instructions: 451923143 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 739339651 + instructions: 833383414 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_vec_32_128: total: - instructions: 1357404996 + instructions: 1269085730 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 575024067 + instructions: 307426856 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 345452608 + instructions: 439804723 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_vec_32_16: total: - instructions: 1189798668 + instructions: 1113267363 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 520374713 + instructions: 258540953 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 271638937 + instructions: 362890759 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_vec_32_256: total: - instructions: 1486036863 - heap_increase: 0 + instructions: 1399421415 + heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 604356177 + instructions: 341010030 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 442102211 + instructions: 532249320 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_vec_32_32: total: - instructions: 1191019294 + instructions: 1098114770 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 521693711 + instructions: 258160780 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 272480740 + instructions: 364242107 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_vec_32_4: total: - instructions: 1179362123 + instructions: 1101816132 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 515756517 + instructions: 254264176 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 269852513 + instructions: 361754874 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_vec_32_512: total: - instructions: 1637727164 + instructions: 1551667195 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 634178176 + instructions: 371452526 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 548142210 + instructions: 639110042 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_vec_32_64: total: - instructions: 1228367079 + instructions: 1138700886 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 528947309 + instructions: 265480122 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 292518894 + instructions: 384645007 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_vec_32_8: total: - instructions: 1195574343 + instructions: 1114879833 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 522280129 + instructions: 257105427 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 274453749 + instructions: 367956387 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_vec_4_128: total: - instructions: 610019591 + instructions: 595322554 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 239319614 + instructions: 137843452 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 164109941 + instructions: 208580839 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_vec_512_128: total: - instructions: 3878926648 + instructions: 2968484338 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 2294927046 + instructions: 504913073 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 938127791 + instructions: 1316489549 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_vec_64_128: total: - instructions: 1569344089 + instructions: 1414813187 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 688159972 + instructions: 331789476 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 408218779 + instructions: 516904424 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_first_vec_8_128: total: - instructions: 953739217 + instructions: 920357717 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 386669230 + instructions: 223643806 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 248926154 + instructions: 315691882 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_blob8_u64: total: - instructions: 700029959 + instructions: 721714796 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 339131972 + instructions: 218735020 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 161869530 + instructions: 221505293 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_blob_1024_128: total: - instructions: 9386675497 + instructions: 5998290157 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 7918160836 + instructions: 266583047 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 299369785 + instructions: 2003089768 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_blob_128_128: total: - instructions: 2097862796 + instructions: 1613599497 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1481425792 + instructions: 268538893 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 224327783 + instructions: 517496855 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_blob_16_128: total: - instructions: 862310306 + instructions: 870103235 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 412038348 + instructions: 238905715 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 195302546 + instructions: 268973248 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_blob_256_128: total: - instructions: 3156928300 + instructions: 2229555870 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 2424736180 + instructions: 272801846 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 236513353 + instructions: 730108019 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_blob_32_1024: total: - instructions: 1264763373 + instructions: 1240731511 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 494014933 + instructions: 257998147 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 338338359 + instructions: 426620647 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_blob_32_128: total: - instructions: 995831624 + instructions: 973525641 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 496438877 + instructions: 261624845 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 211962239 + instructions: 299825811 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_blob_32_16: total: - instructions: 946032622 + instructions: 920285024 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 491577669 + instructions: 257307044 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 192565692 + instructions: 278408564 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_blob_32_256: total: - instructions: 1023271505 + instructions: 998769867 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 488874622 + instructions: 253876164 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 229017253 + instructions: 316143131 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_blob_32_32: total: - instructions: 954719148 + instructions: 929073191 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 493178581 + instructions: 256905426 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 194866675 + instructions: 280678551 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_blob_32_4: total: - instructions: 936456460 + instructions: 911788037 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 494698127 + instructions: 258857769 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 189009601 + instructions: 275909834 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_blob_32_512: total: - instructions: 1100331407 + instructions: 1078807596 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 486329941 + instructions: 255103708 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 265870816 + instructions: 352527124 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_blob_32_64: total: - instructions: 967995180 - heap_increase: 49 + instructions: 936198952 + heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 491648915 + instructions: 256095753 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 200043896 + instructions: 286259725 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_blob_32_8: total: - instructions: 947184301 + instructions: 923655452 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 493361185 + instructions: 258392922 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 193992261 + instructions: 282126674 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_blob_4_128: total: - instructions: 430831632 + instructions: 456323823 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 184253198 + instructions: 123491298 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 111478453 + instructions: 148632177 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_blob_512_128: total: - instructions: 5200040292 + instructions: 3511375120 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 4243567615 + instructions: 264194640 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 256605306 + instructions: 1155932206 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_blob_64_128: total: - instructions: 1448856844 + instructions: 1136604194 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 897971957 + instructions: 267506925 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 217393515 + instructions: 347808042 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_blob_8_128: total: - instructions: 714631346 + instructions: 736551089 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 330183528 + instructions: 208011145 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 167155446 + instructions: 225697529 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_u64_blob8: total: - instructions: 836793154 + instructions: 884657959 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 368068135 + instructions: 246951770 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 229435732 + instructions: 296280634 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_u64_u64: total: - instructions: 842895543 + instructions: 898459907 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 364480937 + instructions: 248243590 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 236973883 + instructions: 303961044 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_u64_vec8: total: - instructions: 840834525 + instructions: 889486159 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 365254738 + instructions: 244139949 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 232471869 + instructions: 299314213 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_vec8_u64: total: - instructions: 869501788 + instructions: 821503514 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 373796490 + instructions: 207131803 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 206244291 + instructions: 275842484 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_vec_1024_128: total: - instructions: 6315062581 + instructions: 4513958591 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 3853848896 + instructions: 574731689 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 1398620181 + instructions: 2018898896 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_vec_128_128: total: - instructions: 1976902484 - heap_increase: 0 + instructions: 1700151144 + heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 942303453 + instructions: 395400518 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 505790146 + instructions: 647560970 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_vec_16_128: total: - instructions: 1139800358 + instructions: 1078483418 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 469802970 + instructions: 265195451 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 294454184 + instructions: 376286280 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_vec_256_128: total: - instructions: 2845660209 + instructions: 2346087261 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1509983583 + instructions: 461727219 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 711233076 + instructions: 955036185 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_vec_32_1024: total: - instructions: 1957833146 + instructions: 1864443431 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 717412281 + instructions: 449748705 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 732295974 + instructions: 827883580 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_vec_32_128: total: - instructions: 1345805618 + instructions: 1243733413 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 571491055 + instructions: 305604858 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 342277482 + instructions: 438255571 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_vec_32_16: total: - instructions: 1179250876 + instructions: 1084987850 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 517469395 + instructions: 255325853 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 271707932 + instructions: 364991078 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_vec_32_256: total: - instructions: 1477867340 - heap_increase: 0 + instructions: 1381798477 + heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 600089251 + instructions: 338472612 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 436151629 + instructions: 526566564 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_vec_32_32: total: - instructions: 1180458647 + instructions: 1078697568 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 518603736 + instructions: 255863089 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 272252235 + instructions: 365325163 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_vec_32_4: total: - instructions: 1184425618 + instructions: 1090864904 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 520455345 + instructions: 257748664 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 270857449 + instructions: 365172988 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_vec_32_512: total: - instructions: 1640088006 + instructions: 1541759095 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 637829335 + instructions: 373906506 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 542011304 + instructions: 635183655 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_vec_32_64: total: - instructions: 1229845828 + instructions: 1127447628 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 529373910 + instructions: 266867565 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 291849366 + instructions: 386045200 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_vec_32_8: total: - instructions: 1186787281 + instructions: 1094878564 heap_increase: 49 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 518437160 + instructions: 256919552 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 274812527 + instructions: 370472128 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_vec_4_128: total: - instructions: 600426523 + instructions: 578094962 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 237155435 + instructions: 136343329 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 162058827 + instructions: 207308698 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_vec_512_128: total: - instructions: 3967188815 + instructions: 3065675957 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 2272214408 + instructions: 504036668 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 928867989 + instructions: 1313085458 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_vec_64_128: total: - instructions: 1582688433 - heap_increase: 49 + instructions: 1402041405 + heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 694214513 + instructions: 335393493 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 402280891 + instructions: 513253224 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_pop_last_vec_8_128: total: - instructions: 965424993 + instructions: 917371513 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 397094774 + instructions: 229597619 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 246771952 + instructions: 314928208 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_range_count_1k_0b: total: - instructions: 21372 + instructions: 25339 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 13069 + instructions: 9166 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_range_count_1k_10kib: total: - instructions: 2688594 + instructions: 3283782 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 2059335 + instructions: 1867566 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_range_count_20_10mib: total: - instructions: 20571698 + instructions: 20583047 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 20558085 + instructions: 20553522 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_range_key_sum_1k_0b: total: - instructions: 21906 + instructions: 25755 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 13069 + instructions: 9166 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_range_key_sum_1k_10kib: total: - instructions: 57370166 + instructions: 57855075 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1935907 + instructions: 1716464 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_range_key_sum_20_10mib: total: - instructions: 1105825232 + instructions: 1105835103 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 20558085 + instructions: 20553522 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_range_value_sum_1k_0b: total: - instructions: 21920 + instructions: 25769 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 13069 + instructions: 9166 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_range_value_sum_1k_10kib: total: - instructions: 57382162 + instructions: 57867071 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1935907 + instructions: 1716464 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_range_value_sum_20_10mib: total: - instructions: 1105825468 + instructions: 1105835339 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 20558085 + instructions: 20553522 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_10mib_values: total: - instructions: 5574125707 + instructions: 5591000235 heap_increase: 0 stable_memory_increase: 657 scopes: node_load_v2: - instructions: 162383250 + instructions: 179139636 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 4114616278 + instructions: 4114684408 heap_increase: 0 stable_memory_increase: 657 btreemap_v2_remove_blob8_u64: total: - instructions: 683976795 + instructions: 769878584 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 267526627 + instructions: 172513905 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 213557072 + instructions: 294659382 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_blob_1024_128: total: - instructions: 6603500854 + instructions: 6226258027 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 4938906167 + instructions: 171583460 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 363635975 + instructions: 2466223312 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_blob_128_128: total: - instructions: 1582064460 + instructions: 1577551365 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 932155237 + instructions: 173300946 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 276340739 + instructions: 640826554 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_blob_16_128: total: - instructions: 793980931 + instructions: 878472299 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 296692115 + instructions: 172433461 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 253733072 + instructions: 351492469 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_blob_256_128: total: - instructions: 2307598024 + instructions: 2222100514 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1520096585 + instructions: 175676785 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 290577083 + instructions: 902093302 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_blob_32_1024: total: - instructions: 1103577917 + instructions: 1173946024 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 330183961 + instructions: 172998279 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 419018094 + instructions: 527508220 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_blob_32_128: total: - instructions: 850329611 + instructions: 921935586 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 330559220 + instructions: 173855889 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 259634300 + instructions: 368287472 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_blob_32_16: total: - instructions: 807796662 + instructions: 878402018 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 329364030 + instructions: 172991019 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 239318990 + instructions: 346985685 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_blob_32_256: total: - instructions: 886561366 + instructions: 957514790 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 330308940 + instructions: 173164398 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 281116675 + instructions: 389177067 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_blob_32_32: total: - instructions: 817223169 + instructions: 890306022 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 329479606 + instructions: 173384864 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 243413417 + instructions: 352113923 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_blob_32_4: total: - instructions: 801239502 + instructions: 870308337 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 330896797 + instructions: 172296798 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 237641826 + instructions: 347593871 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_blob_32_512: total: - instructions: 965429166 + instructions: 1038846666 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 327474298 + instructions: 171955486 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 335219915 + instructions: 445463641 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_blob_32_64: total: - instructions: 838601311 + instructions: 914315016 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 329581965 + instructions: 172983575 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 256700252 + instructions: 368519828 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_blob_32_8: total: - instructions: 801227603 + instructions: 868822033 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 328995561 + instructions: 171178840 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 236361097 + instructions: 344186727 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_blob_4_128: total: - instructions: 536258233 + instructions: 607064527 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 217740795 + instructions: 145286799 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 154598598 + instructions: 208593874 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_blob_512_128: total: - instructions: 3735498713 + instructions: 3616936381 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 2662296294 + instructions: 175205514 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 315349204 + instructions: 1437040684 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_blob_64_128: total: - instructions: 1133447653 + instructions: 1064612656 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 570666497 + instructions: 171747328 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 260394994 + instructions: 417420323 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_blob_8_128: total: - instructions: 711767653 + instructions: 797818166 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 263655818 + instructions: 167101265 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 228090135 + instructions: 310570626 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_u64_blob8: total: - instructions: 703022401 + instructions: 808450172 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 228119257 + instructions: 154205709 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 276694546 + instructions: 357733507 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_u64_u64: total: - instructions: 726015927 + instructions: 832570834 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 232495913 + instructions: 157698432 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 288662284 + instructions: 370734342 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_u64_vec8: total: - instructions: 709583604 + instructions: 815544456 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 227318513 + instructions: 153407266 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 280445509 + instructions: 361479017 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_vec8_u64: total: - instructions: 851442944 + instructions: 909037245 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 297711523 + instructions: 167581374 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 277722943 + instructions: 374919510 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_vec_1024_128: total: - instructions: 5125451376 + instructions: 4657198773 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 2465286195 + instructions: 375116434 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 1691072847 + instructions: 2482689426 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_vec_128_128: total: - instructions: 1555389629 + instructions: 1572030280 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 589736376 + instructions: 251719058 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 615620643 + instructions: 792669967 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_vec_16_128: total: - instructions: 1006045403 + instructions: 1071169226 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 339292860 + instructions: 190849527 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 380202733 + instructions: 490387848 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_vec_256_128: total: - instructions: 2412834655 + instructions: 2390920148 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1032337638 + instructions: 295017245 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 894871052 + instructions: 1248502966 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_vec_32_1024: total: - instructions: 1776622494 + instructions: 1834197286 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 479056495 + instructions: 309093527 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 907312069 + instructions: 1024904895 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_vec_32_128: total: - instructions: 1107200088 + instructions: 1166184482 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 387675587 + instructions: 203858647 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 415392870 + instructions: 538970133 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_vec_32_16: total: - instructions: 941629328 + instructions: 1005223842 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 341081698 + instructions: 172598591 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 334028938 + instructions: 449761823 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_vec_32_256: total: - instructions: 1334415130 + instructions: 1380205184 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 416602895 + instructions: 232355711 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 560571532 + instructions: 681017074 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_vec_32_32: total: - instructions: 954103695 + instructions: 1014563873 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 342706354 + instructions: 172740035 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 340425387 + instructions: 456839448 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_vec_32_4: total: - instructions: 954239019 + instructions: 1004234737 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 344790310 + instructions: 170876738 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 336195454 + instructions: 454023815 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_vec_32_512: total: - instructions: 1492982129 + instructions: 1551865463 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 424168089 + instructions: 252193521 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 696911760 + instructions: 817729149 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_vec_32_64: total: - instructions: 1026251236 + instructions: 1083063938 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 364259432 + instructions: 176987017 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 368241138 + instructions: 497047483 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_vec_32_8: total: - instructions: 945081779 + instructions: 1006472719 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 342313556 + instructions: 172991723 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 333497509 + instructions: 449939875 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_vec_4_128: total: - instructions: 725559525 + instructions: 766926180 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 279969662 + instructions: 161942093 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 228139333 + instructions: 296401624 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_vec_512_128: total: - instructions: 3380488280 + instructions: 3241085233 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1549295846 + instructions: 330133086 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 1176553465 + instructions: 1709938556 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_vec_64_128: total: - instructions: 1275462295 + instructions: 1294393844 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 475038237 + instructions: 217361777 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 477131793 + instructions: 616351080 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_remove_vec_8_128: total: - instructions: 911656165 + instructions: 973483672 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 316304707 + instructions: 181146244 heap_increase: 0 stable_memory_increase: 0 node_save_v2: - instructions: 331610049 + instructions: 427173851 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_scan_iter_1k_0b: total: - instructions: 1720046 + instructions: 2207374 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 583752 + instructions: 366975 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_scan_iter_1k_10kib: total: - instructions: 57318951 + instructions: 57806081 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1928835 + instructions: 1712117 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_scan_iter_20_10mib: total: - instructions: 1103723970 + instructions: 1103733626 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 18456662 + instructions: 18452294 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_scan_iter_rev_1k_0b: total: - instructions: 1721893 + instructions: 2208387 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 582803 + instructions: 366214 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_scan_iter_rev_1k_10kib: total: - instructions: 57284203 + instructions: 57768850 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1928368 + instructions: 1711655 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_scan_iter_rev_20_10mib: total: - instructions: 1103723547 + instructions: 1103733196 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 18456662 + instructions: 18452294 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_scan_keys_1k_0b: total: - instructions: 1172671 + instructions: 1777436 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 583752 + instructions: 366975 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_scan_keys_1k_10kib: total: - instructions: 2700777 + instructions: 3261055 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 2072638 + instructions: 1811134 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_scan_keys_20_10mib: total: - instructions: 18470142 + instructions: 18482173 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 18456662 + instructions: 18452294 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_scan_keys_rev_1k_0b: total: - instructions: 1189616 + instructions: 1779445 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 582803 + instructions: 366214 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_scan_keys_rev_1k_10kib: total: - instructions: 2568189 + instructions: 3158639 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1931544 + instructions: 1714707 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_scan_keys_rev_20_10mib: total: - instructions: 18470477 + instructions: 18482201 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 18456662 + instructions: 18452294 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_scan_values_1k_0b: total: - instructions: 1717444 + instructions: 2167772 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 583752 + instructions: 366975 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_scan_values_1k_10kib: total: - instructions: 57316349 + instructions: 57766479 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1928835 + instructions: 1712117 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_scan_values_20_10mib: total: - instructions: 1103723920 + instructions: 1103732836 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 18456662 + instructions: 18452294 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_scan_values_rev_1k_0b: total: - instructions: 1719291 + instructions: 2168785 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 582803 + instructions: 366214 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_scan_values_rev_1k_10kib: total: - instructions: 57281601 + instructions: 57729248 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 1928368 + instructions: 1711655 heap_increase: 0 stable_memory_increase: 0 btreemap_v2_scan_values_rev_20_10mib: total: - instructions: 1103723497 + instructions: 1103732406 heap_increase: 0 stable_memory_increase: 0 scopes: node_load_v2: - instructions: 18456662 + instructions: 18452294 heap_increase: 0 stable_memory_increase: 0 memory_manager_baseline: From db8f322a94a9580496658ed95f9e265adc88c3a9 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Tue, 20 May 2025 16:00:10 +0200 Subject: [PATCH 66/68] --persist --- canbench_results.yml | 570 +++++++++++++++++++++---------------------- 1 file changed, 285 insertions(+), 285 deletions(-) diff --git a/canbench_results.yml b/canbench_results.yml index 0c78e42d..d87b0611 100644 --- a/canbench_results.yml +++ b/canbench_results.yml @@ -1,1711 +1,1711 @@ benches: btreemap_v2_contains_10mib_values: total: - instructions: 142213004 + instructions: 142229058 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob8_u64: total: - instructions: 277713087 + instructions: 292071256 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_1024_128: total: - instructions: 4897884819 + instructions: 3004678141 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_128_128: total: - instructions: 925983020 + instructions: 665016023 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_16_128: total: - instructions: 304185180 + instructions: 299266114 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_256_128: total: - instructions: 1482592583 + instructions: 985524245 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_1024: total: - instructions: 334889492 + instructions: 317750197 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_128: total: - instructions: 332336378 + instructions: 317486525 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_16: total: - instructions: 336647532 + instructions: 316913507 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_256: total: - instructions: 336952134 + instructions: 319375798 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_32: total: - instructions: 337767804 + instructions: 321175428 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_4: total: - instructions: 333734209 + instructions: 317302163 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_512: total: - instructions: 332809414 + instructions: 317454763 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_64: total: - instructions: 335145674 + instructions: 320828457 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_8: total: - instructions: 334699459 + instructions: 318450047 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_4_128: total: - instructions: 244876846 + instructions: 264127393 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_512_128: total: - instructions: 2624677444 + instructions: 1657176786 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_64_128: total: - instructions: 584178824 + instructions: 400794429 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_8_128: total: - instructions: 268359561 + instructions: 280164328 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_u64_blob8: total: - instructions: 234897323 + instructions: 249345668 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_u64_u64: total: - instructions: 236421608 + instructions: 255212854 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_u64_vec8: total: - instructions: 234897338 + instructions: 249345668 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec8_u64: total: - instructions: 366491431 + instructions: 331414697 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_1024_128: total: - instructions: 2875641971 + instructions: 1843552548 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_128_128: total: - instructions: 698056573 + instructions: 559068813 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_16_128: total: - instructions: 430496510 + instructions: 379282562 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_256_128: total: - instructions: 1220085542 + instructions: 913001425 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_1024: total: - instructions: 573798539 + instructions: 512588096 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_128: total: - instructions: 488603839 + instructions: 433820781 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_16: total: - instructions: 408307710 + instructions: 363297614 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_256: total: - instructions: 521878485 + instructions: 441973791 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_32: total: - instructions: 408806200 + instructions: 363312712 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_4: total: - instructions: 407179812 + instructions: 362491802 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_512: total: - instructions: 536998195 + instructions: 477204790 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_64: total: - instructions: 463602926 + instructions: 403341248 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_8: total: - instructions: 407102811 + instructions: 362531723 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_4_128: total: - instructions: 397153848 + instructions: 352494755 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_512_128: total: - instructions: 1812299060 + instructions: 1272734638 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_64_128: total: - instructions: 594729377 + instructions: 508397924 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_8_128: total: - instructions: 388847731 + instructions: 350968224 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_10mib_values: total: - instructions: 1227472657 + instructions: 1227489035 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob8_u64: total: - instructions: 297139911 + instructions: 304816032 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_1024_128: total: - instructions: 4953924210 + instructions: 3144320444 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_128_128: total: - instructions: 947186495 + instructions: 698826651 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_16_128: total: - instructions: 317354417 + instructions: 313298866 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_256_128: total: - instructions: 1507431266 + instructions: 1032439290 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_1024: total: - instructions: 353756221 + instructions: 338180223 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_128: total: - instructions: 345894163 + instructions: 332624198 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_16: total: - instructions: 346953462 + instructions: 328919681 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_256: total: - instructions: 351580221 + instructions: 335563422 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_32: total: - instructions: 348889561 + instructions: 333781460 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_4: total: - instructions: 343473664 + instructions: 328246778 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_512: total: - instructions: 348929751 + instructions: 335192871 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_64: total: - instructions: 347119635 + instructions: 334932529 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_8: total: - instructions: 345315038 + instructions: 329900204 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_4_128: total: - instructions: 257370621 + instructions: 276743152 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_512_128: total: - instructions: 2659912132 + instructions: 1734963607 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_64_128: total: - instructions: 601774814 + instructions: 425486333 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_8_128: total: - instructions: 281640219 + instructions: 293940212 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_u64_blob8: total: - instructions: 245362209 + instructions: 260251406 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_u64_u64: total: - instructions: 249268645 + instructions: 268110583 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_u64_vec8: total: - instructions: 246137433 + instructions: 261065188 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec8_u64: total: - instructions: 376858286 + instructions: 343885017 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_1024_128: total: - instructions: 2921959775 + instructions: 1892468068 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_128_128: total: - instructions: 710827388 + instructions: 571871925 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_16_128: total: - instructions: 440398211 + instructions: 390610021 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_256_128: total: - instructions: 1233367092 + instructions: 926323429 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_1024: total: - instructions: 606431114 + instructions: 555478534 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_128: total: - instructions: 498908637 + instructions: 444489523 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_16: total: - instructions: 416949497 + instructions: 371411562 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_256: total: - instructions: 539821398 + instructions: 460059095 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_32: total: - instructions: 417020079 + instructions: 371559358 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_4: total: - instructions: 415119023 + instructions: 370813831 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_512: total: - instructions: 558783250 + instructions: 499706941 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_64: total: - instructions: 472181771 + instructions: 412299789 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_8: total: - instructions: 415079885 + instructions: 370858341 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_4_128: total: - instructions: 407056995 + instructions: 363440040 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_512_128: total: - instructions: 1825704224 + instructions: 1285923842 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_64_128: total: - instructions: 606201847 + instructions: 519684483 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_8_128: total: - instructions: 398653757 + instructions: 361789415 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_insert_10mib_values: total: - instructions: 5235944819 + instructions: 5236020394 heap_increase: 322 stable_memory_increase: 3613 scopes: {} btreemap_v2_insert_blob8_u64: total: - instructions: 440868627 + instructions: 501716659 heap_increase: 0 stable_memory_increase: 4 scopes: {} btreemap_v2_insert_blob_1024_128: total: - instructions: 5104008235 + instructions: 4298409341 heap_increase: 0 stable_memory_increase: 196 scopes: {} btreemap_v2_insert_blob_128_128: total: - instructions: 1133684047 + instructions: 1062334322 heap_increase: 0 stable_memory_increase: 46 scopes: {} btreemap_v2_insert_blob_16_128: total: - instructions: 494767994 + instructions: 550033663 heap_increase: 0 stable_memory_increase: 24 scopes: {} btreemap_v2_insert_blob_256_128: total: - instructions: 1683872591 + instructions: 1517044762 heap_increase: 0 stable_memory_increase: 67 scopes: {} btreemap_v2_insert_blob_32_1024: total: - instructions: 687122501 + instructions: 732784071 heap_increase: 0 stable_memory_increase: 173 scopes: {} btreemap_v2_insert_blob_32_128: total: - instructions: 529123151 + instructions: 577281316 heap_increase: 0 stable_memory_increase: 28 scopes: {} btreemap_v2_insert_blob_32_16: total: - instructions: 508434275 + instructions: 555235014 heap_increase: 0 stable_memory_increase: 11 scopes: {} btreemap_v2_insert_blob_32_256: total: - instructions: 560318880 + instructions: 603441750 heap_increase: 0 stable_memory_increase: 49 scopes: {} btreemap_v2_insert_blob_32_32: total: - instructions: 514031722 + instructions: 560817016 heap_increase: 0 stable_memory_increase: 13 scopes: {} btreemap_v2_insert_blob_32_4: total: - instructions: 496606799 + instructions: 544048239 heap_increase: 0 stable_memory_increase: 8 scopes: {} btreemap_v2_insert_blob_32_512: total: - instructions: 597566608 + instructions: 645074828 heap_increase: 0 stable_memory_increase: 91 scopes: {} btreemap_v2_insert_blob_32_64: total: - instructions: 519519045 + instructions: 567941552 heap_increase: 0 stable_memory_increase: 18 scopes: {} btreemap_v2_insert_blob_32_8: total: - instructions: 503751175 + instructions: 549794717 heap_increase: 0 stable_memory_increase: 9 scopes: {} btreemap_v2_insert_blob_4_128: total: - instructions: 410411927 + instructions: 477592446 heap_increase: 0 stable_memory_increase: 13 scopes: {} btreemap_v2_insert_blob_512_128: total: - instructions: 2855055481 + instructions: 2459054925 heap_increase: 0 stable_memory_increase: 111 scopes: {} btreemap_v2_insert_blob_64_128: total: - instructions: 777536947 + instructions: 691018270 heap_increase: 0 stable_memory_increase: 34 scopes: {} btreemap_v2_insert_blob_8_128: total: - instructions: 462943499 + instructions: 524164752 heap_increase: 0 stable_memory_increase: 20 scopes: {} btreemap_v2_insert_u64_blob8: total: - instructions: 422655288 + instructions: 491247984 heap_increase: 0 stable_memory_increase: 5 scopes: {} btreemap_v2_insert_u64_u64: total: - instructions: 431505229 + instructions: 500866926 heap_increase: 0 stable_memory_increase: 6 scopes: {} btreemap_v2_insert_u64_vec8: total: - instructions: 429929989 + instructions: 501307103 heap_increase: 0 stable_memory_increase: 21 scopes: {} btreemap_v2_insert_vec8_u64: total: - instructions: 581931268 + instructions: 614982299 heap_increase: 0 stable_memory_increase: 16 scopes: {} btreemap_v2_insert_vec_1024_128: total: - instructions: 3319375377 + instructions: 2789610913 heap_increase: 0 stable_memory_increase: 193 scopes: {} btreemap_v2_insert_vec_128_128: total: - instructions: 1095946163 + instructions: 1042177787 heap_increase: 0 stable_memory_increase: 51 scopes: {} btreemap_v2_insert_vec_16_128: total: - instructions: 703380587 + instructions: 738414762 heap_increase: 0 stable_memory_increase: 31 scopes: {} btreemap_v2_insert_vec_256_128: total: - instructions: 1506981804 + instructions: 1423894681 heap_increase: 0 stable_memory_increase: 71 scopes: {} btreemap_v2_insert_vec_32_1024: total: - instructions: 1222339084 + instructions: 1243910406 heap_increase: 0 stable_memory_increase: 171 scopes: {} btreemap_v2_insert_vec_32_128: total: - instructions: 761818423 + instructions: 782955660 heap_increase: 0 stable_memory_increase: 33 scopes: {} btreemap_v2_insert_vec_32_16: total: - instructions: 663288909 + instructions: 690772545 heap_increase: 0 stable_memory_increase: 20 scopes: {} btreemap_v2_insert_vec_32_256: total: - instructions: 890722862 + instructions: 906365509 heap_increase: 0 stable_memory_increase: 54 scopes: {} btreemap_v2_insert_vec_32_32: total: - instructions: 666181941 + instructions: 684749908 heap_increase: 0 stable_memory_increase: 20 scopes: {} btreemap_v2_insert_vec_32_4: total: - instructions: 660361307 + instructions: 684856776 heap_increase: 0 stable_memory_increase: 20 scopes: {} btreemap_v2_insert_vec_32_512: total: - instructions: 1009138885 + instructions: 1026119993 heap_increase: 0 stable_memory_increase: 91 scopes: {} btreemap_v2_insert_vec_32_64: total: - instructions: 692141273 + instructions: 716558458 heap_increase: 0 stable_memory_increase: 24 scopes: {} btreemap_v2_insert_vec_32_8: total: - instructions: 660131454 + instructions: 684037572 heap_increase: 0 stable_memory_increase: 20 scopes: {} btreemap_v2_insert_vec_4_128: total: - instructions: 608680659 + instructions: 648407960 heap_increase: 0 stable_memory_increase: 16 scopes: {} btreemap_v2_insert_vec_512_128: total: - instructions: 2128089786 + instructions: 1901572280 heap_increase: 0 stable_memory_increase: 112 scopes: {} btreemap_v2_insert_vec_64_128: total: - instructions: 880497251 + instructions: 873371621 heap_increase: 0 stable_memory_increase: 41 scopes: {} btreemap_v2_insert_vec_8_128: total: - instructions: 666361818 + instructions: 707096235 heap_increase: 0 stable_memory_increase: 23 scopes: {} btreemap_v2_mem_manager_contains_blob512_u64: total: - instructions: 2717630382 + instructions: 1775949161 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_contains_u64_blob512: total: - instructions: 311110875 + instructions: 311272695 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_contains_u64_u64: total: - instructions: 316748263 + instructions: 317156841 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_contains_u64_vec512: total: - instructions: 395074621 + instructions: 400392398 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_contains_vec512_u64: total: - instructions: 1752116437 + instructions: 1258425858 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_blob512_u64: total: - instructions: 2762707145 + instructions: 1863808659 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_u64_blob512: total: - instructions: 327868758 + instructions: 329294891 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_u64_u64: total: - instructions: 329780567 + instructions: 331652326 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_u64_vec512: total: - instructions: 421942583 + instructions: 427935018 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_vec512_u64: total: - instructions: 1789680475 + instructions: 1303577687 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_blob512_u64: total: - instructions: 2959846184 + instructions: 2597565947 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_u64_blob512: total: - instructions: 647064908 + instructions: 707049704 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_u64_u64: total: - instructions: 560836562 + instructions: 621126909 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_u64_vec512: total: - instructions: 900634331 + instructions: 960296871 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_vec512_u64: total: - instructions: 2238024968 + instructions: 2031591198 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_blob512_u64: total: - instructions: 3847539102 + instructions: 3736567051 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_u64_blob512: total: - instructions: 947364196 + instructions: 1034958115 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_u64_u64: total: - instructions: 807344380 + instructions: 892052152 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_u64_vec512: total: - instructions: 1285424872 + instructions: 1375819243 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_vec512_u64: total: - instructions: 3312475662 + instructions: 3198591960 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob8_u64: total: - instructions: 608312410 + instructions: 629253248 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_1024_128: total: - instructions: 9398188467 + instructions: 6147001197 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_128_128: total: - instructions: 2007415368 + instructions: 1531908056 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_16_128: total: - instructions: 757418973 + instructions: 765283250 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_256_128: total: - instructions: 3093785202 + instructions: 2185233950 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_1024: total: - instructions: 1132453514 + instructions: 1116736838 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_128: total: - instructions: 876371666 + instructions: 860692670 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_16: total: - instructions: 819915580 + instructions: 802464245 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_256: total: - instructions: 907503807 + instructions: 892952288 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_32: total: - instructions: 831628016 + instructions: 811824098 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_4: total: - instructions: 802090340 + instructions: 786045356 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_512: total: - instructions: 973265658 + instructions: 960837938 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_64: total: - instructions: 838693246 + instructions: 823444657 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_8: total: - instructions: 818463796 + instructions: 802974323 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_4_128: total: - instructions: 371985311 + instructions: 399711532 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_512_128: total: - instructions: 5172264952 + instructions: 3509572847 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_64_128: total: - instructions: 1328879808 + instructions: 1025420211 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_8_128: total: - instructions: 611407100 + instructions: 634095102 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_u64_blob8: total: - instructions: 705251730 + instructions: 753793039 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_u64_u64: total: - instructions: 717356696 + instructions: 768155629 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_u64_vec8: total: - instructions: 709593211 + instructions: 757240426 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec8_u64: total: - instructions: 782287090 + instructions: 732991720 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_1024_128: total: - instructions: 5764081817 + instructions: 4085915603 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_128_128: total: - instructions: 1816421653 + instructions: 1538597561 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_16_128: total: - instructions: 1024586335 + instructions: 969028764 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_256_128: total: - instructions: 2529716684 + instructions: 2055957144 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_1024: total: - instructions: 1812179448 + instructions: 1717441040 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_128: total: - instructions: 1205040545 + instructions: 1114978395 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_16: total: - instructions: 1039338017 + instructions: 961475566 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_256: total: - instructions: 1327068201 + instructions: 1243299725 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_32: total: - instructions: 1055530159 + instructions: 955175429 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_4: total: - instructions: 1038272566 + instructions: 948465621 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_512: total: - instructions: 1490585519 + instructions: 1398936327 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_64: total: - instructions: 1089790483 + instructions: 1002725828 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_8: total: - instructions: 1050176827 + instructions: 959526555 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_4_128: total: - instructions: 537481485 + instructions: 519693694 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_512_128: total: - instructions: 3600978903 + instructions: 2758195778 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_64_128: total: - instructions: 1402296775 + instructions: 1262234043 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_8_128: total: - instructions: 845611404 + instructions: 808949551 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob8_u64: total: - instructions: 592384197 + instructions: 605594719 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_1024_128: total: - instructions: 9219664993 + instructions: 5830793696 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_128_128: total: - instructions: 1958516704 + instructions: 1465499866 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_16_128: total: - instructions: 738623017 + instructions: 738880823 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_256_128: total: - instructions: 3020531374 + instructions: 2079294367 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_1024: total: - instructions: 1112565105 + instructions: 1085669333 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_128: total: - instructions: 854347996 + instructions: 830643675 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_16: total: - instructions: 798819040 + instructions: 769688933 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_256: total: - instructions: 886655818 + instructions: 861919416 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_32: total: - instructions: 810795267 + instructions: 780760100 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_4: total: - instructions: 787773960 + instructions: 760677261 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_512: total: - instructions: 955218753 + instructions: 933506500 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_64: total: - instructions: 820640883 + instructions: 795410677 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_8: total: - instructions: 797866799 + instructions: 771816802 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_4_128: total: - instructions: 363658412 + instructions: 386661070 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_512_128: total: - instructions: 5053410207 + instructions: 3345362741 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_64_128: total: - instructions: 1307018060 + instructions: 990351700 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_8_128: total: - instructions: 611183036 + instructions: 624461847 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_u64_blob8: total: - instructions: 692890659 + instructions: 729066416 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_u64_u64: total: - instructions: 704605693 + instructions: 743800192 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_u64_vec8: total: - instructions: 695997588 + instructions: 731910124 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec8_u64: total: - instructions: 763627664 + instructions: 708957905 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_1024_128: total: - instructions: 6011671477 + instructions: 4313316700 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_128_128: total: - instructions: 1830309719 + instructions: 1552648335 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_16_128: total: - instructions: 1012789371 + instructions: 947358933 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_256_128: total: - instructions: 2583020373 + instructions: 2129557691 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_1024: total: - instructions: 1807002225 + instructions: 1698443491 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_128: total: - instructions: 1204248068 + instructions: 1096848946 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_16: total: - instructions: 1028212700 + instructions: 941209083 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_256: total: - instructions: 1324529488 + instructions: 1226663580 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_32: total: - instructions: 1043904024 + instructions: 936303418 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_4: total: - instructions: 1036623333 + instructions: 934258686 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_512: total: - instructions: 1490891594 + instructions: 1389566809 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_64: total: - instructions: 1084573805 + instructions: 983167413 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_8: total: - instructions: 1038381761 + instructions: 937711654 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_4_128: total: - instructions: 528623870 + instructions: 504246189 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_512_128: total: - instructions: 3723931830 + instructions: 2873424953 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_64_128: total: - instructions: 1415805191 + instructions: 1255974553 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_8_128: total: - instructions: 853248522 + instructions: 801484501 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_count_1k_0b: total: - instructions: 16871 + instructions: 20115 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_count_1k_10kib: total: - instructions: 2440306 + instructions: 2986687 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_count_20_10mib: total: - instructions: 20572482 + instructions: 20584404 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_key_sum_1k_0b: total: - instructions: 17405 + instructions: 20531 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_key_sum_1k_10kib: total: - instructions: 57254917 + instructions: 57677193 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_key_sum_20_10mib: total: - instructions: 1105826146 + instructions: 1105836590 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_value_sum_1k_0b: total: - instructions: 17419 + instructions: 20545 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_value_sum_1k_10kib: total: - instructions: 57266913 + instructions: 57689189 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_value_sum_20_10mib: total: - instructions: 1105826382 + instructions: 1105836826 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_10mib_values: total: - instructions: 5561183230 + instructions: 5561272860 heap_increase: 0 stable_memory_increase: 657 scopes: {} btreemap_v2_remove_blob8_u64: total: - instructions: 587170055 + instructions: 667900563 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_1024_128: total: - instructions: 6474121980 + instructions: 6063706104 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_128_128: total: - instructions: 1466116527 + instructions: 1457463878 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_16_128: total: - instructions: 680002778 + instructions: 757672413 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_256_128: total: - instructions: 2195216146 + instructions: 2098091924 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_1024: total: - instructions: 965884147 + instructions: 1036297823 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_128: total: - instructions: 731104521 + instructions: 801420541 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_16: total: - instructions: 687174807 + instructions: 755774413 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_256: total: - instructions: 765993262 + instructions: 837217335 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_32: total: - instructions: 695978850 + instructions: 765911420 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_4: total: - instructions: 679309894 + instructions: 750822623 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_512: total: - instructions: 837922202 + instructions: 911302025 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_64: total: - instructions: 720007632 + instructions: 793243985 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_8: total: - instructions: 679954212 + instructions: 749626337 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_4_128: total: - instructions: 455500790 + instructions: 522538214 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_512_128: total: - instructions: 3600501128 + instructions: 3448674395 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_64_128: total: - instructions: 1020115077 + instructions: 947748278 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_8_128: total: - instructions: 607878082 + instructions: 685714058 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_u64_blob8: total: - instructions: 597538858 + instructions: 689441571 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_u64_u64: total: - instructions: 619109964 + instructions: 712995636 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_u64_vec8: total: - instructions: 603458045 + instructions: 695853424 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec8_u64: total: - instructions: 750426147 + instructions: 804496668 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_1024_128: total: - instructions: 5022631520 + instructions: 4560037620 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_128_128: total: - instructions: 1452066520 + instructions: 1473629560 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_16_128: total: - instructions: 907746224 + instructions: 971674171 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_256_128: total: - instructions: 2314986697 + instructions: 2293167894 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_1024: total: - instructions: 1674012367 + instructions: 1732355221 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_128: total: - instructions: 1010787616 + instructions: 1069927739 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_16: total: - instructions: 834640728 + instructions: 890477096 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_256: total: - instructions: 1229226325 + instructions: 1280544115 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_32: total: - instructions: 841144006 + instructions: 897812266 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_4: total: - instructions: 839617721 + instructions: 896826883 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_512: total: - instructions: 1392996478 + instructions: 1443936645 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_64: total: - instructions: 923651396 + instructions: 979473079 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_8: total: - instructions: 833306650 + instructions: 890819873 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_4_128: total: - instructions: 649657252 + instructions: 687282319 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_512_128: total: - instructions: 3266656938 + instructions: 3130403453 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_64_128: total: - instructions: 1178765367 + instructions: 1192475703 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_8_128: total: - instructions: 820045093 + instructions: 877067292 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_iter_1k_0b: total: - instructions: 1493458 + instructions: 1981104 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_iter_1k_10kib: total: - instructions: 57069957 + instructions: 57549224 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_iter_20_10mib: total: - instructions: 1103719699 + instructions: 1103729363 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_iter_rev_1k_0b: total: - instructions: 1495597 + instructions: 1981815 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_iter_rev_1k_10kib: total: - instructions: 57047594 + instructions: 57530291 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_iter_rev_20_10mib: total: - instructions: 1103719281 + instructions: 1103728938 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_keys_1k_0b: total: - instructions: 946083 + instructions: 1551166 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_keys_1k_10kib: total: - instructions: 2359607 + instructions: 2958502 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_keys_20_10mib: total: - instructions: 18465439 + instructions: 18477478 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_keys_rev_1k_0b: total: - instructions: 963320 + instructions: 1552873 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_keys_rev_1k_10kib: total: - instructions: 2355505 + instructions: 2941017 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_keys_rev_20_10mib: total: - instructions: 18465774 + instructions: 18477506 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_values_1k_0b: total: - instructions: 1490856 + instructions: 1941502 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_values_1k_10kib: total: - instructions: 57067355 + instructions: 57509622 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_values_20_10mib: total: - instructions: 1103719649 + instructions: 1103728573 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_values_rev_1k_0b: total: - instructions: 1492995 + instructions: 1942213 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_values_rev_1k_10kib: total: - instructions: 57044992 + instructions: 57490689 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_values_rev_20_10mib: total: - instructions: 1103719231 + instructions: 1103728148 heap_increase: 0 stable_memory_increase: 0 scopes: {} From 797f655f8b91d62ab0e7e49e07ea4b6794186fd2 Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Wed, 21 May 2025 15:03:48 +0200 Subject: [PATCH 67/68] cleanup --- src/btreemap/node.rs | 49 +++++------------------------------------ src/btreemap/node/v1.rs | 7 ------ src/btreemap/node/v2.rs | 15 ------------- 3 files changed, 5 insertions(+), 66 deletions(-) diff --git a/src/btreemap/node.rs b/src/btreemap/node.rs index 7079d7f0..4577dec3 100644 --- a/src/btreemap/node.rs +++ b/src/btreemap/node.rs @@ -108,13 +108,13 @@ impl Node { pub fn get_max(&self, memory: &M) -> Entry { match self.node_type { NodeType::Leaf => { - let entry = self + let last_entry = self .keys_and_encoded_values .last() .expect("A node can never be empty"); ( - self.get_key(entry, memory).clone(), - self.get_value(entry, memory).to_vec(), + self.get_key(last_entry, memory).clone(), + self.get_value(last_entry, memory).to_vec(), ) } NodeType::Internal => { @@ -246,8 +246,6 @@ impl Node { &mut bytes, key_size as usize, ); - //println!("ABC load key_size: {key_size:?}"); - //println!("ABC load key: {bytes:?}"); let key = K::from_bytes(Cow::Borrowed(&bytes)); key @@ -312,12 +310,6 @@ impl Node { pub fn insert_entry(&mut self, idx: usize, (key, value): Entry) { self.keys_and_encoded_values .insert(idx, (LazyKey::by_value(key), LazyValue::by_value(value))); - // let keys: Vec<_> = self - // .keys_and_encoded_values - // .iter() - // .map(|(key, _)| format!("{key:?}")) - // .collect(); - //println!("ABC insert_entry: {:?}", keys); } /// Returns the entry at the specified index while consuming this node. @@ -333,7 +325,6 @@ impl Node { /// Removes the entry at the specified index. pub fn remove_entry(&mut self, idx: usize, memory: &M) -> Entry { let (key, value) = self.keys_and_encoded_values.remove(idx); - //println!("ABC remove_entry: {:?}", key); ( self.extract_key(key, memory), self.extract_value(value, memory), @@ -381,19 +372,6 @@ impl Node { median: Entry, allocator: &mut Allocator, ) { - // let self_keys: Vec<_> = self - // .keys_and_encoded_values - // .iter() - // .map(|(k, _)| format!("{k:?}")) - // .collect(); - - // let source_keys: Vec<_> = source - // .keys_and_encoded_values - // .iter() - // .map(|(k, _)| format!("{k:?}\n")) - // .collect(); - //println!("ABC merge\n self : {self_keys:?}\n source : {source_keys:?} \n"); - // Load all the entries from the source node first, as they will be moved out. for i in 0..source.entries_len() { let _e = source.entry(i, allocator.memory()); @@ -480,25 +458,8 @@ impl Node { /// returned, containing the index where a matching key could be inserted /// while maintaining sorted order. pub fn search(&self, key: &K, memory: &M) -> Result { - // let self_keys: Vec<_> = self - // .keys_and_encoded_values - // .iter() - // .map(|(k, _)| format!("{k:?}")) - // .collect(); - // println!("\nABC search BEFORE: {self_keys:?}"); - - let result = self - .keys_and_encoded_values - .binary_search_by_key(&key, |entry| self.get_key(entry, memory)); - - // let self_keys: Vec<_> = self - // .keys_and_encoded_values - // .iter() - // .map(|(k, _)| format!("{k:?}")) - // .collect(); - //println!("ABC search AFTER : {self_keys:?}"); - - result + self.keys_and_encoded_values + .binary_search_by_key(&key, |entry| self.get_key(entry, memory)) } /// Returns the maximum size a node can be if it has bounded keys and values. diff --git a/src/btreemap/node/v1.rs b/src/btreemap/node/v1.rs index 26d13472..3ae3a448 100644 --- a/src/btreemap/node/v1.rs +++ b/src/btreemap/node/v1.rs @@ -147,13 +147,6 @@ impl Node { assert!(!self.keys_and_encoded_values.is_empty() || !self.children.is_empty()); // Assert entries are sorted in strictly increasing order. - - // TODO: remove debug code. - // let entries: Vec<_> = (0..self.entries_len()) - // .map(|i| (i, self.key(i, memory).to_bytes(), self.value(i, memory))) - // .collect(); - //println!("ABC: entries: {:?}", entries); - assert!(self .keys_and_encoded_values .windows(2) diff --git a/src/btreemap/node/v2.rs b/src/btreemap/node/v2.rs index 24c46ca0..1b448cd3 100644 --- a/src/btreemap/node/v2.rs +++ b/src/btreemap/node/v2.rs @@ -151,8 +151,6 @@ impl Node { // Load the keys. let mut keys_encoded_values = Vec::with_capacity(num_entries); - //const LOAD_SIZE_THRESHOLD: u32 = 8; - //let mut buf = vec![]; for _ in 0..num_entries { let key_offset = Bytes::from(offset.get()); @@ -163,16 +161,9 @@ impl Node { } else { // Key is not fixed in size. Read the size from memory. let key_size = read_u32(&reader, offset); - //println!("ABC read key_size: {:?}", key_size); offset += U32_SIZE; key_size }; - // let key = if key_size <= LOAD_SIZE_THRESHOLD { - // read_to_vec(&reader, offset, &mut buf, key_size as usize); - // LazyKey::by_value(K::from_bytes(Cow::Borrowed(&buf))) - // } else { - // LazyKey::by_ref(key_offset) - // }; let key = LazyKey::by_ref(key_offset); // Advance offset by the size of the key. @@ -186,12 +177,6 @@ impl Node { let value_offset = Bytes::from(offset.get()); let value_size = read_u32(&reader, offset); offset += U32_SIZE; - // *value = if value_size <= LOAD_SIZE_THRESHOLD { - // read_to_vec(&reader, offset, &mut buf, value_size as usize); - // LazyValue::by_value(buf.to_vec()) - // } else { - // LazyValue::by_ref(value_offset) - // }; *value = LazyValue::by_ref(value_offset); offset += Bytes::from(value_size as u64); } From 679093841ff57e90d9c63571a8c1ab1621e8769a Mon Sep 17 00:00:00 2001 From: Maksym Arutyunyan Date: Wed, 21 May 2025 15:07:28 +0200 Subject: [PATCH 68/68] . --- src/btreemap/node/v1.rs | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/src/btreemap/node/v1.rs b/src/btreemap/node/v1.rs index 3ae3a448..63e13327 100644 --- a/src/btreemap/node/v1.rs +++ b/src/btreemap/node/v1.rs @@ -69,30 +69,14 @@ impl Node { // Load the entries. let mut keys_encoded_values = Vec::with_capacity(header.num_entries as usize); let mut offset = NodeHeader::size(); - //const LOAD_SIZE_THRESHOLD: u32 = 8; - //let mut buf = vec![]; for _ in 0..header.num_entries { let key_offset = offset; - //let key_size = read_u32(memory, address + offset); offset += U32_SIZE; - // let key = if key_size <= LOAD_SIZE_THRESHOLD { - // read_to_vec(memory, address + offset, &mut buf, key_size as usize); - // LazyKey::by_value(K::from_bytes(Cow::Borrowed(&buf))) - // } else { - // LazyKey::by_ref(key_offset) - // }; let key = LazyKey::by_ref(key_offset); offset += Bytes::from(max_key_size); let value_offset = offset; - // let value_size = read_u32(memory, address + offset); offset += U32_SIZE; - // let value = if value_size <= LOAD_SIZE_THRESHOLD { - // read_to_vec(memory, address + offset, &mut buf, value_size as usize); - // LazyValue::by_value(buf.to_vec()) - // } else { - // LazyValue::by_ref(value_offset) - // }; let value = LazyValue::by_ref(value_offset); offset += Bytes::from(max_value_size);