Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: dfinity/stable-structures
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.6.0-beta.0
Choose a base ref
...
head repository: dfinity/stable-structures
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.6.0-beta.1
Choose a head ref
  • 9 commits
  • 18 files changed
  • 2 contributors

Commits on Sep 15, 2023

  1. perf: reduce storage requirements for bounded btreemaps by ~25%. (#130)

    I did an analysis on how big node entries are. A node can have at most
    11 entries, but ~70% of nodes contain <= 8 entries. With that
    information, I was able to reduce the page size in BTreeMap V2 in the
    case where the keys and values are both bounded, resulting in a storage
    saving of ~25%.
    
    The report, generated by our new benchmarking framework, clearly shows
    the gains. V2 benchmarks saw a decline in the number of stable pages
    needed without compromising performance.
    
    ```
    Benchmark: btreemap_insert_10mib_values
      measurements:
        instructions: 278228334 (0.00%) (no change)
        node_load_v2: 10377468 (0.00%) (no change)
        node_save_v2: 245958554 (0.00%) (no change)
        stable_memory_size: 33 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_4_1024
      measurements:
        instructions: 938860652 (0.00%) (no change)
        node_load_v1: 246219371 (0.00%) (no change)
        node_save_v1: 370094431 (0.00%) (no change)
        stable_memory_size: 124 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_4_1024_v2
      measurements:
        instructions: 1284860075 (-0.01%) (change within noise threshold)
        node_load_v2: 302568355 (0.00%) (no change)
        node_save_v2: 661255273 (-0.02%) (change within noise threshold)
        stable_memory_size: 93 (improved by 25.00%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_8_1024
      measurements:
        instructions: 1084934108 (0.00%) (no change)
        node_load_v1: 286595797 (0.00%) (no change)
        node_save_v1: 394314301 (0.00%) (no change)
        stable_memory_size: 184 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_8_1024_v2
      measurements:
        instructions: 1458496280 (-0.01%) (change within noise threshold)
        node_load_v2: 344800342 (0.00%) (change within noise threshold)
        node_save_v2: 711692000 (-0.03%) (change within noise threshold)
        stable_memory_size: 139 (improved by 24.46%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_16_1024
      measurements:
        instructions: 1177421502 (0.00%) (no change)
        node_load_v1: 362914338 (0.00%) (no change)
        node_save_v1: 403464072 (0.00%) (no change)
        stable_memory_size: 216 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_16_1024_v2
      measurements:
        instructions: 1588123192 (-0.02%) (change within noise threshold)
        node_load_v2: 440221819 (0.00%) (change within noise threshold)
        node_save_v2: 739898082 (-0.04%) (change within noise threshold)
        stable_memory_size: 162 (improved by 25.00%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_32_1024
      measurements:
        instructions: 1224612399 (0.00%) (no change)
        node_load_v1: 390780802 (0.00%) (no change)
        node_save_v1: 415826600 (0.00%) (no change)
        stable_memory_size: 231 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_32_1024_v2
      measurements:
        instructions: 1655605924 (-0.02%) (change within noise threshold)
        node_load_v2: 477569310 (0.00%) (no change)
        node_save_v2: 768954087 (-0.03%) (change within noise threshold)
        stable_memory_size: 174 (improved by 24.68%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_64_1024
      measurements:
        instructions: 1464177820 (0.00%) (no change)
        node_load_v1: 595998298 (0.00%) (no change)
        node_save_v1: 418743231 (0.00%) (no change)
        stable_memory_size: 246 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_64_1024_v2
      measurements:
        instructions: 1928636138 (-0.01%) (change within noise threshold)
        node_load_v2: 692235029 (0.00%) (no change)
        node_save_v2: 785237958 (-0.03%) (change within noise threshold)
        stable_memory_size: 184 (improved by 25.20%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_128_1024
      measurements:
        instructions: 1730313092 (0.00%) (no change)
        node_load_v1: 818923030 (0.00%) (no change)
        node_save_v1: 424573804 (0.00%) (no change)
        stable_memory_size: 261 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_128_1024_v2
      measurements:
        instructions: 2230592033 (-0.01%) (change within noise threshold)
        node_load_v2: 916541484 (0.00%) (no change)
        node_save_v2: 814064656 (-0.03%) (change within noise threshold)
        stable_memory_size: 196 (improved by 24.90%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_256_1024
      measurements:
        instructions: 2255818313 (0.00%) (no change)
        node_load_v1: 1272224795 (0.00%) (no change)
        node_save_v1: 430174789 (0.00%) (no change)
        stable_memory_size: 293 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_256_1024_v2
      measurements:
        instructions: 2794429751 (-0.01%) (change within noise threshold)
        node_load_v2: 1368657545 (0.00%) (no change)
        node_save_v2: 851897559 (-0.02%) (change within noise threshold)
        stable_memory_size: 220 (improved by 24.91%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_512_1024
      measurements:
        instructions: 3306816049 (0.00%) (no change)
        node_load_v1: 2162164471 (0.00%) (no change)
        node_save_v1: 447463180 (0.00%) (no change)
        stable_memory_size: 352 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_512_1024_v2
      measurements:
        instructions: 3902055470 (-0.00%) (change within noise threshold)
        node_load_v2: 2249757429 (0.00%) (no change)
        node_save_v2: 953602203 (-0.01%) (change within noise threshold)
        stable_memory_size: 264 (improved by 25.00%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_u64_u64
      measurements:
        instructions: 771845193 (0.00%) (no change)
        node_load_v1: 274520203 (0.00%) (no change)
        node_save_v1: 266527196 (0.00%) (no change)
        stable_memory_size: 8 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_u64_u64_v2
      measurements:
        instructions: 848175865 (0.67%) (change within noise threshold)
        node_load_v2: 324943098 (1.24%) (change within noise threshold)
        node_save_v2: 295936099 (0.23%) (change within noise threshold)
        stable_memory_size: 7 (improved by 12.50%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_u64_blob_8
      measurements:
        instructions: 750190911 (0.00%) (no change)
        node_load_v1: 276866073 (0.00%) (no change)
        node_save_v1: 255664450 (0.00%) (no change)
        stable_memory_size: 8 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_u64_blob_8_v2
      measurements:
        instructions: 806917372 (0.11%) (change within noise threshold)
        node_load_v2: 320660408 (0.10%) (change within noise threshold)
        node_save_v2: 272412341 (0.12%) (change within noise threshold)
        stable_memory_size: 6 (improved by 25.00%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_8_u64
      measurements:
        instructions: 684689096 (0.00%) (no change)
        node_load_v1: 277937358 (0.00%) (no change)
        node_save_v1: 189388784 (0.00%) (no change)
        stable_memory_size: 7 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_8_u64_v2
      measurements:
        instructions: 805533962 (0.84%) (change within noise threshold)
        node_load_v2: 358481378 (1.04%) (change within noise threshold)
        node_save_v2: 230438833 (0.29%) (change within noise threshold)
        stable_memory_size: 5 (improved by 28.57%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_4_1024
      measurements:
        instructions: 401718154 (0.00%) (no change)
        node_load_v1: 259275488 (0.00%) (no change)
        stable_memory_size: 124 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_4_1024_v2
      measurements:
        instructions: 480241876 (0.00%) (no change)
        node_load_v2: 329436785 (0.00%) (no change)
        stable_memory_size: 93 (improved by 25.00%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_8_1024
      measurements:
        instructions: 473964224 (0.00%) (no change)
        node_load_v1: 304258691 (0.00%) (no change)
        stable_memory_size: 184 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_8_1024_v2
      measurements:
        instructions: 549627424 (0.00%) (no change)
        node_load_v2: 371386524 (0.00%) (no change)
        stable_memory_size: 139 (improved by 24.46%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_16_1024
      measurements:
        instructions: 553966238 (0.00%) (no change)
        node_load_v1: 383794822 (0.00%) (no change)
        stable_memory_size: 216 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_16_1024_v2
      measurements:
        instructions: 637391324 (0.00%) (no change)
        node_load_v2: 464133703 (0.00%) (no change)
        stable_memory_size: 162 (improved by 25.00%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_32_1024
      measurements:
        instructions: 591716960 (0.00%) (no change)
        node_load_v1: 410436451 (0.00%) (no change)
        stable_memory_size: 231 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_32_1024_v2
      measurements:
        instructions: 679662006 (0.00%) (no change)
        node_load_v2: 495574095 (0.00%) (no change)
        stable_memory_size: 174 (improved by 24.68%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_64_1024
      measurements:
        instructions: 814621589 (0.00%) (no change)
        node_load_v1: 627796876 (0.00%) (no change)
        stable_memory_size: 246 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_64_1024_v2
      measurements:
        instructions: 902934555 (0.00%) (no change)
        node_load_v2: 708745655 (0.00%) (no change)
        stable_memory_size: 184 (improved by 25.20%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_128_1024
      measurements:
        instructions: 1036041908 (0.00%) (no change)
        node_load_v1: 839537545 (0.00%) (no change)
        stable_memory_size: 261 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_128_1024_v2
      measurements:
        instructions: 1140173768 (0.00%) (no change)
        node_load_v2: 933785784 (0.00%) (no change)
        stable_memory_size: 196 (improved by 24.90%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_u64_u64
      measurements:
        instructions: 412643077 (0.00%) (no change)
        node_load_v1: 290922161 (0.00%) (no change)
        stable_memory_size: 8 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_u64_u64_v2
      measurements:
        instructions: 477401878 (1.60%) (change within noise threshold)
        node_load_v2: 347289827 (1.76%) (change within noise threshold)
        stable_memory_size: 7 (improved by 12.50%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_u64_blob_8
      measurements:
        instructions: 409579480 (0.00%) (no change)
        node_load_v1: 292395667 (0.00%) (no change)
        stable_memory_size: 8 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_u64_blob_8_v2
      measurements:
        instructions: 465392548 (0.00%) (no change)
        node_load_v2: 342799065 (0.00%) (no change)
        stable_memory_size: 6 (improved by 25.00%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_8_u64
      measurements:
        instructions: 426482546 (0.00%) (no change)
        node_load_v1: 294602061 (0.00%) (no change)
        stable_memory_size: 7 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_8_u64_v2
      measurements:
        instructions: 523481237 (regressed by 2.27%)
        node_load_v2: 383093469 (regressed by 2.43%)
        stable_memory_size: 5 (improved by 28.57%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_256_1024
      measurements:
        instructions: 1523593515 (0.00%) (no change)
        node_load_v1: 1301924960 (0.00%) (no change)
        stable_memory_size: 293 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_256_1024_v2
      measurements:
        instructions: 1628351182 (0.00%) (no change)
        node_load_v2: 1392993062 (0.00%) (no change)
        stable_memory_size: 220 (improved by 24.91%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_512_1024
      measurements:
        instructions: 2489215042 (0.00%) (no change)
        node_load_v1: 2219164452 (0.00%) (no change)
        stable_memory_size: 352 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_512_1024_v2
      measurements:
        instructions: 2596163236 (0.00%) (no change)
        node_load_v2: 2312346281 (0.00%) (no change)
        stable_memory_size: 264 (improved by 25.00%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_4_1024
      measurements:
        instructions: 1006445824 (0.00%) (no change)
        node_load_v1: 269171795 (0.00%) (no change)
        node_save_v1: 421165272 (0.00%) (no change)
        stable_memory_size: 124 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_4_1024_v2
      measurements:
        instructions: 1417601784 (-0.00%) (change within noise threshold)
        node_load_v2: 334156300 (0.00%) (change within noise threshold)
        node_save_v2: 771175843 (-0.01%) (change within noise threshold)
        stable_memory_size: 93 (improved by 25.00%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_8_1024
      measurements:
        instructions: 1300448303 (0.00%) (no change)
        node_load_v1: 325916114 (0.00%) (no change)
        node_save_v1: 562174712 (0.00%) (no change)
        stable_memory_size: 184 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_8_1024_v2
      measurements:
        instructions: 1841887486 (-0.01%) (change within noise threshold)
        node_load_v2: 391438934 (0.00%) (no change)
        node_save_v2: 1045403922 (-0.01%) (change within noise threshold)
        stable_memory_size: 139 (improved by 24.46%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_16_1024
      measurements:
        instructions: 1544917110 (0.00%) (no change)
        node_load_v1: 420249550 (0.00%) (no change)
        node_save_v1: 654430779 (0.00%) (no change)
        stable_memory_size: 216 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_16_1024_v2
      measurements:
        instructions: 2218448732 (-0.01%) (change within noise threshold)
        node_load_v2: 513947291 (0.00%) (no change)
        node_save_v2: 1243769246 (-0.01%) (change within noise threshold)
        stable_memory_size: 162 (improved by 25.00%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_32_1024
      measurements:
        instructions: 1622774819 (0.00%) (no change)
        node_load_v1: 443614945 (0.00%) (no change)
        node_save_v1: 681136613 (0.00%) (no change)
        stable_memory_size: 231 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_32_1024_v2
      measurements:
        instructions: 2327559094 (-0.01%) (change within noise threshold)
        node_load_v2: 545935373 (-0.00%) (change within noise threshold)
        node_save_v2: 1295876421 (-0.01%) (change within noise threshold)
        stable_memory_size: 174 (improved by 24.68%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_64_1024
      measurements:
        instructions: 1917032351 (0.00%) (no change)
        node_load_v1: 675469604 (0.00%) (no change)
        node_save_v1: 700312977 (0.00%) (no change)
        stable_memory_size: 246 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_64_1024_v2
      measurements:
        instructions: 2663779711 (-0.01%) (change within noise threshold)
        node_load_v2: 783139557 (0.00%) (no change)
        node_save_v2: 1347825662 (-0.01%) (change within noise threshold)
        stable_memory_size: 184 (improved by 25.20%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_128_1024
      measurements:
        instructions: 2236575844 (0.00%) (no change)
        node_load_v1: 922607545 (0.00%) (no change)
        node_save_v1: 716920195 (0.00%) (no change)
        stable_memory_size: 261 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_128_1024_v2
      measurements:
        instructions: 3031279182 (-0.00%) (change within noise threshold)
        node_load_v2: 1029479582 (0.00%) (no change)
        node_save_v2: 1412131798 (-0.01%) (change within noise threshold)
        stable_memory_size: 196 (improved by 24.90%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_256_1024
      measurements:
        instructions: 2839195280 (0.00%) (no change)
        node_load_v1: 1421754484 (0.00%) (no change)
        node_save_v1: 722710062 (0.00%) (no change)
        stable_memory_size: 293 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_256_1024_v2
      measurements:
        instructions: 3696334312 (-0.00%) (change within noise threshold)
        node_load_v2: 1528516744 (0.00%) (no change)
        node_save_v2: 1474999328 (-0.01%) (change within noise threshold)
        stable_memory_size: 220 (improved by 24.91%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_512_1024
      measurements:
        instructions: 4124317339 (0.00%) (no change)
        node_load_v1: 2441544783 (0.00%) (no change)
        node_save_v1: 765030850 (0.00%) (no change)
        stable_memory_size: 352 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_512_1024_v2
      measurements:
        instructions: 5148900105 (-0.00%) (change within noise threshold)
        node_load_v2: 2551454747 (0.00%) (change within noise threshold)
        node_save_v2: 1679737551 (-0.00%) (change within noise threshold)
        stable_memory_size: 264 (improved by 25.00%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_u64_u64
      measurements:
        instructions: 1110124274 (0.00%) (no change)
        node_load_v1: 314148033 (0.00%) (no change)
        node_save_v1: 483110284 (0.00%) (no change)
        stable_memory_size: 8 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_u64_u64_v2
      measurements:
        instructions: 1193726508 (1.02%) (change within noise threshold)
        node_load_v2: 372663005 (regressed by 2.18%)
        node_save_v2: 507231342 (0.68%) (change within noise threshold)
        stable_memory_size: 7 (improved by 12.50%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_u64_blob_8
      measurements:
        instructions: 1072866879 (0.00%) (no change)
        node_load_v1: 313757215 (0.00%) (no change)
        node_save_v1: 457702957 (0.00%) (no change)
        stable_memory_size: 8 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_u64_blob_8_v2
      measurements:
        instructions: 1131312211 (0.25%) (change within noise threshold)
        node_load_v2: 364893854 (0.54%) (change within noise threshold)
        node_save_v2: 464658073 (0.15%) (change within noise threshold)
        stable_memory_size: 6 (improved by 25.00%)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_8_u64
      measurements:
        instructions: 903826016 (0.00%) (no change)
        node_load_v1: 318747944 (0.00%) (no change)
        node_save_v1: 302202576 (0.00%) (no change)
        stable_memory_size: 7 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_8_u64_v2
      measurements:
        instructions: 1051368948 (1.19%) (change within noise threshold)
        node_load_v2: 405289279 (regressed by 2.05%)
        node_save_v2: 364434857 (0.84%) (change within noise threshold)
        stable_memory_size: 5 (improved by 28.57%)
    
    ---------------------------------------------------
    ```
    ielashi authored Sep 15, 2023
    Configuration menu
    Copy the full SHA
    6a17564 View commit details
    Browse the repository at this point in the history

Commits on Sep 19, 2023

  1. feat(log): add an iterator over thread-local log (#132)

    This change introduces a stable log iterator that can enumerate entries
    in stable log stored in a thread-local variable.
    
    This simplifies dealing with stable logs a lot; currently, clients have
    to replicate the same logic for each log, see ckBTC for example[^1].
    
    [^1]:
    https://github.com/dfinity/ic/blob/712910487fe14924cb80622af47b31210cab95bc/rs/bitcoin/ckbtc/minter/src/storage.rs#L37
    roman-kashitsyn authored Sep 19, 2023
    Configuration menu
    Copy the full SHA
    5de8355 View commit details
    Browse the repository at this point in the history
  2. perf: [BTreeMap V2] avoid allocating large buffer on save. (#131)

    When saving a BTreeMap V2 node, a large buffer was allocated where we
    first serialize the node, and then at a later stage we break this buffer
    into smaller pages and write those into stable memory. This was simpler
    to implement, yet inefficient.
    
    This PR removes the large buffer allocation and instead uses a
    `NodeWriter`, which write the node incrementally without the need to
    allocate large buffers on the heap.
    
    This narrows the performance gap even further between v1 and v2 as seen
    by the following benchmark report.
    
    ```
    ---------------------------------------------------
    
    Benchmark: memory_manager_baseline
      measurements:
        instructions: 1176576551 (0.00%) (no change)
        stable_memory_size: 8000 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: memory_manager_overhead
      measurements:
        instructions: 1182012269 (0.00%) (no change)
        stable_memory_size: 8321 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_10mib_values
      measurements:
        instructions: 158321842 (improved by 43.10%)
        node_load_v2: 10377468 (0.00%) (no change)
        node_save_v2: 126007892 (improved by 48.77%)
        stable_memory_size: 33 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_4_1024
      measurements:
        instructions: 938459480 (-0.04%) (change within noise threshold)
        node_load_v1: 246219371 (0.00%) (no change)
        node_save_v1: 369888833 (-0.06%) (change within noise threshold)
        stable_memory_size: 124 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_4_1024_v2
      measurements:
        instructions: 1033183548 (improved by 19.60%)
        node_load_v2: 302721338 (0.05%) (change within noise threshold)
        node_save_v2: 410566944 (improved by 37.92%)
        stable_memory_size: 124 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_8_1024
      measurements:
        instructions: 1084454578 (-0.04%) (change within noise threshold)
        node_load_v1: 286595797 (0.00%) (no change)
        node_save_v1: 394091363 (-0.06%) (change within noise threshold)
        stable_memory_size: 184 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_8_1024_v2
      measurements:
        instructions: 1183969018 (improved by 18.83%)
        node_load_v2: 344994802 (0.06%) (change within noise threshold)
        node_save_v2: 438155700 (improved by 38.45%)
        stable_memory_size: 184 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_16_1024
      measurements:
        instructions: 1176903332 (-0.04%) (change within noise threshold)
        node_load_v1: 362914338 (0.00%) (no change)
        node_save_v1: 403232566 (-0.06%) (change within noise threshold)
        stable_memory_size: 216 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_16_1024_v2
      measurements:
        instructions: 1295546890 (improved by 18.44%)
        node_load_v2: 440399043 (0.04%) (change within noise threshold)
        node_save_v2: 448818266 (improved by 39.36%)
        stable_memory_size: 216 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_32_1024
      measurements:
        instructions: 1224078359 (-0.04%) (change within noise threshold)
        node_load_v1: 390780802 (0.00%) (no change)
        node_save_v1: 415591575 (-0.06%) (change within noise threshold)
        stable_memory_size: 231 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_32_1024_v2
      measurements:
        instructions: 1345918082 (improved by 18.72%)
        node_load_v2: 477582317 (0.00%) (change within noise threshold)
        node_save_v2: 461418653 (improved by 40.01%)
        stable_memory_size: 231 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_64_1024
      measurements:
        instructions: 1463634810 (-0.04%) (change within noise threshold)
        node_load_v1: 595998298 (0.00%) (no change)
        node_save_v1: 418506217 (-0.06%) (change within noise threshold)
        stable_memory_size: 246 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_64_1024_v2
      measurements:
        instructions: 1606536169 (improved by 16.71%)
        node_load_v2: 692239035 (0.00%) (change within noise threshold)
        node_save_v2: 464863981 (improved by 40.82%)
        stable_memory_size: 246 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_128_1024
      measurements:
        instructions: 1729768012 (-0.03%) (change within noise threshold)
        node_load_v1: 818923030 (0.00%) (no change)
        node_save_v1: 424336331 (-0.06%) (change within noise threshold)
        stable_memory_size: 261 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_128_1024_v2
      measurements:
        instructions: 1885672741 (improved by 15.47%)
        node_load_v2: 916598797 (0.01%) (change within noise threshold)
        node_save_v2: 470957703 (improved by 42.16%)
        stable_memory_size: 261 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_256_1024
      measurements:
        instructions: 2255269553 (-0.02%) (change within noise threshold)
        node_load_v1: 1272224795 (0.00%) (no change)
        node_save_v1: 429936500 (-0.06%) (change within noise threshold)
        stable_memory_size: 293 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_256_1024_v2
      measurements:
        instructions: 2416164659 (improved by 13.54%)
        node_load_v2: 1368714490 (0.00%) (change within noise threshold)
        node_save_v2: 476456802 (improved by 44.08%)
        stable_memory_size: 293 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_512_1024
      measurements:
        instructions: 3306266369 (-0.02%) (change within noise threshold)
        node_load_v1: 2162164471 (0.00%) (no change)
        node_save_v1: 447224687 (-0.05%) (change within noise threshold)
        stable_memory_size: 352 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_512_1024_v2
      measurements:
        instructions: 3439168228 (improved by 11.86%)
        node_load_v2: 2249806809 (0.00%) (change within noise threshold)
        node_save_v2: 493589161 (improved by 48.25%)
        stable_memory_size: 352 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_u64_u64
      measurements:
        instructions: 771295973 (-0.07%) (change within noise threshold)
        node_load_v1: 274520203 (0.00%) (no change)
        node_save_v1: 266429035 (-0.04%) (change within noise threshold)
        stable_memory_size: 8 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_u64_u64_v2
      measurements:
        instructions: 844848075 (0.27%) (change within noise threshold)
        node_load_v2: 320667801 (-0.09%) (change within noise threshold)
        node_save_v2: 298115032 (0.97%) (change within noise threshold)
        stable_memory_size: 8 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_u64_blob_8
      measurements:
        instructions: 749642151 (-0.07%) (change within noise threshold)
        node_load_v1: 276866073 (0.00%) (no change)
        node_save_v1: 255566331 (-0.04%) (change within noise threshold)
        stable_memory_size: 8 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_u64_blob_8_v2
      measurements:
        instructions: 820358615 (1.77%) (change within noise threshold)
        node_load_v2: 320406521 (0.02%) (change within noise threshold)
        node_save_v2: 287445446 (regressed by 5.64%)
        stable_memory_size: 8 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_8_u64
      measurements:
        instructions: 684209106 (-0.07%) (change within noise threshold)
        node_load_v1: 277937358 (0.00%) (no change)
        node_save_v1: 189165744 (-0.12%) (change within noise threshold)
        stable_memory_size: 7 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_insert_blob_8_u64_v2
      measurements:
        instructions: 802688497 (0.48%) (change within noise threshold)
        node_load_v2: 354976358 (0.05%) (change within noise threshold)
        node_save_v2: 234878135 (regressed by 2.23%)
        stable_memory_size: 7 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_4_1024
      measurements:
        instructions: 401718154 (0.00%) (no change)
        node_load_v1: 259275488 (0.00%) (no change)
        stable_memory_size: 124 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_4_1024_v2
      measurements:
        instructions: 480241876 (0.00%) (no change)
        node_load_v2: 329436785 (0.00%) (no change)
        stable_memory_size: 124 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_8_1024
      measurements:
        instructions: 473964224 (0.00%) (no change)
        node_load_v1: 304258691 (0.00%) (no change)
        stable_memory_size: 184 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_8_1024_v2
      measurements:
        instructions: 549627424 (0.00%) (no change)
        node_load_v2: 371386524 (0.00%) (no change)
        stable_memory_size: 184 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_16_1024
      measurements:
        instructions: 553966238 (0.00%) (no change)
        node_load_v1: 383794822 (0.00%) (no change)
        stable_memory_size: 216 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_16_1024_v2
      measurements:
        instructions: 637391324 (0.00%) (no change)
        node_load_v2: 464133703 (0.00%) (no change)
        stable_memory_size: 216 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_32_1024
      measurements:
        instructions: 591716960 (0.00%) (no change)
        node_load_v1: 410436451 (0.00%) (no change)
        stable_memory_size: 231 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_32_1024_v2
      measurements:
        instructions: 679662006 (0.00%) (no change)
        node_load_v2: 495574095 (0.00%) (no change)
        stable_memory_size: 231 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_64_1024
      measurements:
        instructions: 814621589 (0.00%) (no change)
        node_load_v1: 627796876 (0.00%) (no change)
        stable_memory_size: 246 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_64_1024_v2
      measurements:
        instructions: 902934555 (0.00%) (no change)
        node_load_v2: 708745655 (0.00%) (no change)
        stable_memory_size: 246 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_128_1024
      measurements:
        instructions: 1036041908 (0.00%) (no change)
        node_load_v1: 839537545 (0.00%) (no change)
        stable_memory_size: 261 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_128_1024_v2
      measurements:
        instructions: 1140173858 (0.00%) (change within noise threshold)
        node_load_v2: 933785784 (0.00%) (no change)
        stable_memory_size: 261 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_u64_u64
      measurements:
        instructions: 412643077 (0.00%) (no change)
        node_load_v1: 290922161 (0.00%) (no change)
        stable_memory_size: 8 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_u64_u64_v2
      measurements:
        instructions: 469869306 (0.00%) (change within noise threshold)
        node_load_v2: 341278594 (0.00%) (no change)
        stable_memory_size: 8 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_u64_blob_8
      measurements:
        instructions: 409579480 (0.00%) (no change)
        node_load_v1: 292395667 (0.00%) (no change)
        stable_memory_size: 8 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_u64_blob_8_v2
      measurements:
        instructions: 465392638 (0.00%) (change within noise threshold)
        node_load_v2: 342799065 (0.00%) (no change)
        stable_memory_size: 8 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_8_u64
      measurements:
        instructions: 426482546 (0.00%) (no change)
        node_load_v1: 294602061 (0.00%) (no change)
        stable_memory_size: 7 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_8_u64_v2
      measurements:
        instructions: 511860381 (-0.00%) (change within noise threshold)
        node_load_v2: 373992060 (0.00%) (no change)
        stable_memory_size: 7 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_256_1024
      measurements:
        instructions: 1523593515 (0.00%) (no change)
        node_load_v1: 1301924960 (0.00%) (no change)
        stable_memory_size: 293 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_256_1024_v2
      measurements:
        instructions: 1628351272 (0.00%) (change within noise threshold)
        node_load_v2: 1392993062 (0.00%) (no change)
        stable_memory_size: 293 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_512_1024
      measurements:
        instructions: 2489215042 (0.00%) (no change)
        node_load_v1: 2219164452 (0.00%) (no change)
        stable_memory_size: 352 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_get_blob_512_1024_v2
      measurements:
        instructions: 2596163236 (0.00%) (no change)
        node_load_v2: 2312346281 (0.00%) (no change)
        stable_memory_size: 352 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_4_1024
      measurements:
        instructions: 1005989932 (-0.05%) (change within noise threshold)
        node_load_v1: 269171795 (0.00%) (no change)
        node_save_v1: 420883123 (-0.07%) (change within noise threshold)
        stable_memory_size: 124 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_4_1024_v2
      measurements:
        instructions: 1123916215 (improved by 20.72%)
        node_load_v2: 334520048 (0.11%) (change within noise threshold)
        node_save_v2: 477506500 (improved by 38.09%)
        stable_memory_size: 124 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_8_1024
      measurements:
        instructions: 1299825273 (-0.05%) (change within noise threshold)
        node_load_v1: 325916114 (0.00%) (no change)
        node_save_v1: 561793980 (-0.07%) (change within noise threshold)
        stable_memory_size: 184 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_8_1024_v2
      measurements:
        instructions: 1435762834 (improved by 22.05%)
        node_load_v2: 391933707 (0.13%) (change within noise threshold)
        node_save_v2: 638595044 (improved by 38.92%)
        stable_memory_size: 184 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_16_1024
      measurements:
        instructions: 1544195176 (-0.05%) (change within noise threshold)
        node_load_v1: 420249550 (0.00%) (no change)
        node_save_v1: 653989748 (-0.07%) (change within noise threshold)
        stable_memory_size: 216 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_16_1024_v2
      measurements:
        instructions: 1718977571 (improved by 22.52%)
        node_load_v2: 514792050 (0.16%) (change within noise threshold)
        node_save_v2: 742821168 (improved by 40.28%)
        stable_memory_size: 216 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_32_1024
      measurements:
        instructions: 1622025795 (-0.05%) (change within noise threshold)
        node_load_v1: 443614945 (0.00%) (no change)
        node_save_v1: 680680401 (-0.07%) (change within noise threshold)
        stable_memory_size: 231 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_32_1024_v2
      measurements:
        instructions: 1805728812 (improved by 22.42%)
        node_load_v2: 545888022 (-0.01%) (change within noise threshold)
        node_save_v2: 773231206 (improved by 40.34%)
        stable_memory_size: 231 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_64_1024
      measurements:
        instructions: 1916261049 (-0.04%) (change within noise threshold)
        node_load_v1: 675469604 (0.00%) (no change)
        node_save_v1: 699843250 (-0.07%) (change within noise threshold)
        stable_memory_size: 246 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_64_1024_v2
      measurements:
        instructions: 2111770035 (improved by 20.73%)
        node_load_v2: 783191220 (0.01%) (change within noise threshold)
        node_save_v2: 795030992 (improved by 41.02%)
        stable_memory_size: 246 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_128_1024
      measurements:
        instructions: 2235786044 (-0.04%) (change within noise threshold)
        node_load_v1: 922607545 (0.00%) (no change)
        node_save_v1: 716437888 (-0.07%) (change within noise threshold)
        stable_memory_size: 261 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_128_1024_v2
      measurements:
        instructions: 2434217251 (improved by 19.70%)
        node_load_v2: 1029552036 (0.01%) (change within noise threshold)
        node_save_v2: 813731257 (improved by 42.38%)
        stable_memory_size: 261 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_256_1024
      measurements:
        instructions: 2838422216 (-0.03%) (change within noise threshold)
        node_load_v1: 1421754484 (0.00%) (no change)
        node_save_v1: 722240539 (-0.06%) (change within noise threshold)
        stable_memory_size: 293 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_256_1024_v2
      measurements:
        instructions: 3039500513 (improved by 17.77%)
        node_load_v2: 1528561438 (0.00%) (change within noise threshold)
        node_save_v2: 816969139 (improved by 44.62%)
        stable_memory_size: 293 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_512_1024
      measurements:
        instructions: 4123516635 (-0.02%) (change within noise threshold)
        node_load_v1: 2441544783 (0.00%) (no change)
        node_save_v1: 764541981 (-0.06%) (change within noise threshold)
        stable_memory_size: 352 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_512_1024_v2
      measurements:
        instructions: 4332567176 (improved by 15.86%)
        node_load_v2: 2551503756 (0.00%) (change within noise threshold)
        node_save_v2: 863236858 (improved by 48.61%)
        stable_memory_size: 352 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_u64_u64
      measurements:
        instructions: 1109353494 (-0.07%) (change within noise threshold)
        node_load_v1: 314148033 (0.00%) (no change)
        node_save_v1: 482917665 (-0.04%) (change within noise threshold)
        stable_memory_size: 8 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_u64_u64_v2
      measurements:
        instructions: 1227062933 (regressed by 3.84%)
        node_load_v2: 366608916 (0.52%) (change within noise threshold)
        node_save_v2: 543163993 (regressed by 7.81%)
        stable_memory_size: 8 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_u64_blob_8
      measurements:
        instructions: 1072102455 (-0.07%) (change within noise threshold)
        node_load_v1: 313757215 (0.00%) (no change)
        node_save_v1: 457512144 (-0.04%) (change within noise threshold)
        stable_memory_size: 8 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_u64_blob_8_v2
      measurements:
        instructions: 1186857459 (regressed by 5.17%)
        node_load_v2: 364726642 (0.50%) (change within noise threshold)
        node_save_v2: 517296661 (regressed by 11.50%)
        stable_memory_size: 8 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_8_u64
      measurements:
        instructions: 903169486 (-0.07%) (change within noise threshold)
        node_load_v1: 318747944 (0.00%) (no change)
        node_save_v1: 301798231 (-0.13%) (change within noise threshold)
        stable_memory_size: 7 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: btreemap_remove_blob_8_u64_v2
      measurements:
        instructions: 1066956998 (regressed by 2.69%)
        node_load_v2: 399537975 (0.60%) (change within noise threshold)
        node_save_v2: 382247298 (regressed by 5.77%)
        stable_memory_size: 7 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: vec_insert_blob_4
      measurements:
        instructions: 5187495 (0.00%) (no change)
        stable_memory_size: 1 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: vec_insert_blob_8
      measurements:
        instructions: 5216814 (0.00%) (no change)
        stable_memory_size: 2 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: vec_insert_blob_16
      measurements:
        instructions: 5186050 (0.00%) (no change)
        stable_memory_size: 3 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: vec_insert_blob_32
      measurements:
        instructions: 5394984 (0.00%) (no change)
        stable_memory_size: 6 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: vec_insert_blob_128
      measurements:
        instructions: 6109513 (0.00%) (no change)
        stable_memory_size: 20 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: vec_insert_u64
      measurements:
        instructions: 12149357 (0.00%) (no change)
        stable_memory_size: 2 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: vec_get_blob_4
      measurements:
        instructions: 10027133 (0.00%) (no change)
        stable_memory_size: 1 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: vec_get_blob_8
      measurements:
        instructions: 11988806 (0.00%) (no change)
        stable_memory_size: 2 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: vec_get_blob_16
      measurements:
        instructions: 14914959 (0.00%) (no change)
        stable_memory_size: 3 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: vec_get_blob_32
      measurements:
        instructions: 15584015 (0.00%) (no change)
        stable_memory_size: 6 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: vec_get_blob_128
      measurements:
        instructions: 25331980 (0.00%) (no change)
        stable_memory_size: 20 (0.00%) (no change)
    
    ---------------------------------------------------
    
    Benchmark: vec_get_u64
      measurements:
        instructions: 11430290 (0.00%) (no change)
        stable_memory_size: 2 (0.00%) (no change)
    Successfully persisted results to results.yml
    ```
    ielashi authored Sep 19, 2023
    Configuration menu
    Copy the full SHA
    add7c67 View commit details
    Browse the repository at this point in the history

Commits on Sep 20, 2023

  1. refactor: determine node version automatically on load (#133)

    Prior to this commit, the caller of `Node::load` needed to specify the
    node version that will be loaded. This is acceptable if all nodes have
    the same version, but given that a BTreeMap may have different versions
    of nodes (migration will be introduced in subsequent commits), this
    needs to change such that the node's version is detected on load.
    ielashi authored Sep 20, 2023
    Configuration menu
    Copy the full SHA
    2d1076c View commit details
    Browse the repository at this point in the history

Commits on Sep 21, 2023

  1. feat: add additional assertions to the Storable trait. (#136)

    This commit adds a new method, to_bytes_checked, to the Storable trait.
    It includes assertions to detect if the Storable implementation of an
    element is buggy. This addresses the issue in
    #125, where a user had
    a mistake in their implementation of Storable, but it wasn't clear from
    the error that this was the case.
    
    BTreeMap has been updated to use to_bytes_checked rather than to_bytes.
    ielashi authored Sep 21, 2023
    Configuration menu
    Copy the full SHA
    48866e6 View commit details
    Browse the repository at this point in the history
  2. feat: make BTreeMap V2 the default and automatically migrate V1 maps. (

    …#135)
    
    Prior to this commit, initializing a BTreeMap initialized a V1 BTreeMap
    by default, and only by using `new_v2` and `init_v2` can developers
    explicitly opt-in to using V2 BTreeMaps.
    
    This commit updates the interface such that a BTreeMap is initialized as
    a V2 BTreeMap by default, and v1 BTreeMaps are automatically migrated to
    V2. Developers can still opt-in to using V1 by using `new_v1` and
    `init_v1`.
    ielashi authored Sep 21, 2023
    Configuration menu
    Copy the full SHA
    16ea7ab View commit details
    Browse the repository at this point in the history
  3. feat: expose helper methods for extracting bounds (#138)

    Exposes some helper methods that are useful for developers. I found
    these useful as I was migrating the Bitcoin Canister to BTreeMap V2.
    ielashi authored Sep 21, 2023
    Configuration menu
    Copy the full SHA
    b5f8ed0 View commit details
    Browse the repository at this point in the history
  4. refactor: rewrite BTreeMap proptests using test_strategy. (#139)

    Uses the `test_strategy` crate in declaring the proptests. The main
    advantage of this crate is that code formatting continues to work. With
    the traditional proptest macro formatting doesn't work anymore.
    ielashi authored Sep 21, 2023
    Configuration menu
    Copy the full SHA
    ae08d63 View commit details
    Browse the repository at this point in the history
  5. chore: new beta release (#137)

    Updates the beta release to include performance enhancements + making
    BTreeMap V2 the default.
    ielashi authored Sep 21, 2023
    Configuration menu
    Copy the full SHA
    f0f716a View commit details
    Browse the repository at this point in the history
Loading