diff --git a/benchmarks/btreemap/canbench_results.yml b/benchmarks/btreemap/canbench_results.yml index 4605f79f..0a5f24fa 100644 --- a/benchmarks/btreemap/canbench_results.yml +++ b/benchmarks/btreemap/canbench_results.yml @@ -1,2281 +1,2281 @@ benches: btreemap_v2_contains_10mib_values: total: - start_instructions: 14479293363 + start_instructions: 14485967088 calls: 1 - instructions: 142209886 + instructions: 142211176 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob8_u64: total: - start_instructions: 459630211 + start_instructions: 453873913 calls: 1 - instructions: 283243189 + instructions: 284729279 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_1024_128: total: - start_instructions: 6131895381 + start_instructions: 6106585973 calls: 1 - instructions: 4294894395 + instructions: 4287195965 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_128_128: total: - start_instructions: 1362339662 + start_instructions: 1343142775 calls: 1 - instructions: 840909879 + instructions: 833911663 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_16_128: total: - start_instructions: 587875096 + start_instructions: 582936916 calls: 1 - instructions: 300105739 + instructions: 301679315 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_256_128: total: - start_instructions: 2036711438 + start_instructions: 2016223113 calls: 1 - instructions: 1326771404 + instructions: 1319638530 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_1024: total: - start_instructions: 1238245580 + start_instructions: 1225152952 calls: 1 - instructions: 337445353 + instructions: 335467582 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_128: total: - start_instructions: 659339379 + start_instructions: 647671599 calls: 1 - instructions: 337242960 + instructions: 335857878 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_16: total: - start_instructions: 572198169 + start_instructions: 559722634 calls: 1 - instructions: 329500232 + instructions: 328808636 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_256: total: - start_instructions: 749396807 + start_instructions: 736916035 calls: 1 - instructions: 335682012 + instructions: 334434280 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_32: total: - start_instructions: 594146104 + start_instructions: 580919298 calls: 1 - instructions: 342487370 + instructions: 339847405 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_4: total: - start_instructions: 556169406 + start_instructions: 543466976 calls: 1 - instructions: 333741843 + instructions: 332340491 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_512: total: - start_instructions: 910873891 + start_instructions: 898832441 calls: 1 - instructions: 333192032 + instructions: 331695208 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_64: total: - start_instructions: 618881021 + start_instructions: 605611965 calls: 1 - instructions: 337617776 + instructions: 334858997 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_32_8: total: - start_instructions: 566704183 + start_instructions: 553652829 calls: 1 - instructions: 335387698 + instructions: 334584161 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_4_128: total: - start_instructions: 500930654 + start_instructions: 496586041 calls: 1 - instructions: 250355533 + instructions: 253347393 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_512_128: total: - start_instructions: 3423432805 + start_instructions: 3400962940 calls: 1 - instructions: 2298434694 + instructions: 2290838032 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_64_128: total: - start_instructions: 804812720 + start_instructions: 787924438 calls: 1 - instructions: 419606577 + instructions: 414363931 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_blob_8_128: total: - start_instructions: 555383524 + start_instructions: 549947436 calls: 1 - instructions: 273336150 + instructions: 275816925 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_u64_blob8: total: - start_instructions: 433090833 + start_instructions: 427844055 calls: 1 - instructions: 225499214 + instructions: 227932675 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_u64_u64: total: - start_instructions: 434693266 + start_instructions: 429391869 calls: 1 - instructions: 230729854 + instructions: 233050996 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_u64_vec8: total: - start_instructions: 442791595 + start_instructions: 437943978 calls: 1 - instructions: 225499214 + instructions: 227932675 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec8_u64: total: - start_instructions: 606342608 + start_instructions: 609571867 calls: 1 - instructions: 373974697 + instructions: 380704257 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_1024_128: total: - start_instructions: 3192363458 + start_instructions: 3139139615 calls: 1 - instructions: 1847543846 + instructions: 1824658601 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_128_128: total: - start_instructions: 1152132995 + start_instructions: 1122931818 calls: 1 - instructions: 562946700 + instructions: 574277486 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_16_128: total: - start_instructions: 788123774 + start_instructions: 789675873 calls: 1 - instructions: 432781522 + instructions: 448376104 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_256_128: total: - start_instructions: 1570435457 + start_instructions: 1532479798 calls: 1 - instructions: 916951508 + instructions: 902317937 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_1024: total: - start_instructions: 1628350867 + start_instructions: 1602777496 calls: 1 - instructions: 516345711 + instructions: 514204305 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_128: total: - start_instructions: 857561793 + start_instructions: 841581401 calls: 1 - instructions: 437597042 + instructions: 428712870 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_16: total: - start_instructions: 722884550 + start_instructions: 711050685 calls: 1 - instructions: 367092399 + instructions: 375067409 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_256: total: - start_instructions: 1007673020 + start_instructions: 987481510 calls: 1 - instructions: 445726848 + instructions: 441718231 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_32: total: - start_instructions: 725399616 + start_instructions: 713894096 calls: 1 - instructions: 367166166 + instructions: 363350872 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_4: total: - start_instructions: 711759047 + start_instructions: 700624986 calls: 1 - instructions: 366267461 + instructions: 368447209 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_512: total: - start_instructions: 1225599518 + start_instructions: 1199394096 calls: 1 - instructions: 480959850 + instructions: 460605848 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_64: total: - start_instructions: 769411650 + start_instructions: 757545427 calls: 1 - instructions: 407119040 + instructions: 407446583 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_32_8: total: - start_instructions: 711554910 + start_instructions: 700422898 calls: 1 - instructions: 366285316 + instructions: 360599988 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_4_128: total: - start_instructions: 683578434 + start_instructions: 683425633 calls: 1 - instructions: 398219526 + instructions: 412997574 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_512_128: total: - start_instructions: 2134044956 + start_instructions: 2081367474 calls: 1 - instructions: 1276595174 + instructions: 1252406684 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_64_128: total: - start_instructions: 961598179 + start_instructions: 942322408 calls: 1 - instructions: 512370493 + instructions: 506200298 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_contains_vec_8_128: total: - start_instructions: 746474463 + start_instructions: 746800143 calls: 1 - instructions: 398244282 + instructions: 402314967 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_10mib_values: total: - start_instructions: 14479293363 + start_instructions: 14485967088 calls: 1 - instructions: 388595745 + instructions: 388591799 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob8_u64: total: - start_instructions: 459630211 + start_instructions: 453873913 calls: 1 - instructions: 294497967 + instructions: 305721005 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_1024_128: total: - start_instructions: 6131895381 + start_instructions: 6106585973 calls: 1 - instructions: 4434041256 + instructions: 4425292182 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_128_128: total: - start_instructions: 1362339662 + start_instructions: 1343142775 calls: 1 - instructions: 874096447 + instructions: 866438618 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_16_128: total: - start_instructions: 587875096 + start_instructions: 582936916 calls: 1 - instructions: 313526182 + instructions: 314408612 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_256_128: total: - start_instructions: 2036711438 + start_instructions: 2016223113 calls: 1 - instructions: 1373148633 + instructions: 1364965205 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_1024: total: - start_instructions: 1238245580 + start_instructions: 1225152952 calls: 1 - instructions: 357155884 + instructions: 354108431 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_128: total: - start_instructions: 659339379 + start_instructions: 647671599 calls: 1 - instructions: 351535575 + instructions: 349135022 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_16: total: - start_instructions: 572198169 + start_instructions: 559722634 calls: 1 - instructions: 340461041 + instructions: 338382934 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_256: total: - start_instructions: 749396807 + start_instructions: 736916035 calls: 1 - instructions: 351061580 + instructions: 348736211 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_32: total: - start_instructions: 594146104 + start_instructions: 580919298 calls: 1 - instructions: 353942162 + instructions: 350096821 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_4: total: - start_instructions: 556169406 + start_instructions: 543466976 calls: 1 - instructions: 343418315 + instructions: 340412929 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_512: total: - start_instructions: 910873891 + start_instructions: 898832441 calls: 1 - instructions: 350194700 + instructions: 347642367 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_64: total: - start_instructions: 618881021 + start_instructions: 605611965 calls: 1 - instructions: 350423639 + instructions: 346801711 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_32_8: total: - start_instructions: 566704183 + start_instructions: 553652829 calls: 1 - instructions: 345686337 + instructions: 343068561 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_4_128: total: - start_instructions: 500930654 + start_instructions: 496586041 calls: 1 - instructions: 262413923 + instructions: 264255339 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_512_128: total: - start_instructions: 3423432805 + start_instructions: 3400962940 calls: 1 - instructions: 2375697190 + instructions: 2367049397 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_64_128: total: - start_instructions: 804812720 + start_instructions: 787924438 calls: 1 - instructions: 443018389 + instructions: 436964615 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_blob_8_128: total: - start_instructions: 555383524 + start_instructions: 549947436 calls: 1 - instructions: 286466153 + instructions: 287796664 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_u64_blob8: total: - start_instructions: 433090833 + start_instructions: 427844055 calls: 1 - instructions: 235941210 + instructions: 237235810 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_u64_u64: total: - start_instructions: 434693266 + start_instructions: 429391869 calls: 1 - instructions: 242257570 + instructions: 243863622 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_u64_vec8: total: - start_instructions: 442791595 + start_instructions: 437943978 calls: 1 - instructions: 236688734 + instructions: 237991855 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec8_u64: total: - start_instructions: 606342608 + start_instructions: 609571867 calls: 1 - instructions: 383633049 + instructions: 388751749 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_1024_128: total: - start_instructions: 3192363458 + start_instructions: 3139139615 calls: 1 - instructions: 1895892024 + instructions: 1841512517 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_128_128: total: - start_instructions: 1152132995 + start_instructions: 1122931818 calls: 1 - instructions: 575182494 + instructions: 583901097 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_16_128: total: - start_instructions: 788123774 + start_instructions: 789675873 calls: 1 - instructions: 442328783 + instructions: 456729380 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_256_128: total: - start_instructions: 1570435457 + start_instructions: 1532479798 calls: 1 - instructions: 929706182 + instructions: 912188250 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_1024: total: - start_instructions: 1628350867 + start_instructions: 1602777496 calls: 1 - instructions: 558668781 + instructions: 552829333 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_128: total: - start_instructions: 857561793 + start_instructions: 841581401 calls: 1 - instructions: 447698382 + instructions: 437331843 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_16: total: - start_instructions: 722884550 + start_instructions: 711050685 calls: 1 - instructions: 374638995 + instructions: 381657978 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_256: total: - start_instructions: 1007673020 + start_instructions: 987481510 calls: 1 - instructions: 463244752 + instructions: 457027785 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_32: total: - start_instructions: 725399616 + start_instructions: 713894096 calls: 1 - instructions: 374845458 + instructions: 370072286 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_4: total: - start_instructions: 711759047 + start_instructions: 700624986 calls: 1 - instructions: 374022132 + instructions: 374915815 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_512: total: - start_instructions: 1225599518 + start_instructions: 1199394096 calls: 1 - instructions: 502894643 + instructions: 480046390 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_64: total: - start_instructions: 769411650 + start_instructions: 757545427 calls: 1 - instructions: 415510256 + instructions: 414392804 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_32_8: total: - start_instructions: 711554910 + start_instructions: 700422898 calls: 1 - instructions: 374044544 + instructions: 367113868 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_4_128: total: - start_instructions: 683578434 + start_instructions: 683425633 calls: 1 - instructions: 407171454 + instructions: 421113113 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_512_128: total: - start_instructions: 2134044956 + start_instructions: 2081367474 calls: 1 - instructions: 1289217058 + instructions: 1262553245 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_64_128: total: - start_instructions: 961598179 + start_instructions: 942322408 calls: 1 - instructions: 523089686 + instructions: 514950924 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_get_vec_8_128: total: - start_instructions: 746474463 + start_instructions: 746800143 calls: 1 - instructions: 407684839 + instructions: 410396744 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_insert_10mib_values: total: - start_instructions: 9227500944 + start_instructions: 9227501071 calls: 1 - instructions: 5251792571 + instructions: 5258466149 heap_increase: 322 stable_memory_increase: 3613 scopes: {} btreemap_v2_insert_blob8_u64: total: - start_instructions: 7169136 + start_instructions: 7169153 calls: 1 - instructions: 451301662 + instructions: 445545231 heap_increase: 0 stable_memory_increase: 4 scopes: {} btreemap_v2_insert_blob_1024_128: total: - start_instructions: 517497045 + start_instructions: 517497062 calls: 1 - instructions: 5525867839 + instructions: 5500538282 heap_increase: 0 stable_memory_increase: 196 scopes: {} btreemap_v2_insert_blob_128_128: total: - start_instructions: 136717328 + start_instructions: 136717345 calls: 1 - instructions: 1208772051 + instructions: 1189575035 heap_increase: 0 stable_memory_increase: 46 scopes: {} btreemap_v2_insert_blob_16_128: total: - start_instructions: 80779238 + start_instructions: 80779255 calls: 1 - instructions: 500630568 + instructions: 495692271 heap_increase: 0 stable_memory_increase: 24 scopes: {} btreemap_v2_insert_blob_256_128: total: - start_instructions: 192187819 + start_instructions: 192187836 calls: 1 - instructions: 1817433122 + instructions: 1796924648 heap_increase: 0 stable_memory_increase: 67 scopes: {} btreemap_v2_insert_blob_32_1024: total: - start_instructions: 470117592 + start_instructions: 470117609 calls: 1 - instructions: 724942513 + instructions: 711849768 heap_increase: 0 stable_memory_increase: 173 scopes: {} btreemap_v2_insert_blob_32_128: total: - start_instructions: 88387550 + start_instructions: 88387567 calls: 1 - instructions: 563606354 + instructions: 551938457 heap_increase: 0 stable_memory_increase: 28 scopes: {} btreemap_v2_insert_blob_32_16: total: - start_instructions: 30061361 + start_instructions: 30061378 calls: 1 - instructions: 539351331 + instructions: 526875649 heap_increase: 0 stable_memory_increase: 11 scopes: {} btreemap_v2_insert_blob_32_256: total: - start_instructions: 143910761 + start_instructions: 143910778 calls: 1 - instructions: 593020647 + instructions: 580539758 heap_increase: 0 stable_memory_increase: 49 scopes: {} btreemap_v2_insert_blob_32_32: total: - start_instructions: 40587614 + start_instructions: 40587631 calls: 1 - instructions: 550133225 + instructions: 536926292 heap_increase: 0 stable_memory_increase: 13 scopes: {} btreemap_v2_insert_blob_32_4: total: - start_instructions: 23796426 + start_instructions: 23796443 calls: 1 - instructions: 529987583 + instructions: 517265000 heap_increase: 0 stable_memory_increase: 8 scopes: {} btreemap_v2_insert_blob_32_512: total: - start_instructions: 256737407 + start_instructions: 256737424 calls: 1 - instructions: 631431009 + instructions: 619389442 heap_increase: 0 stable_memory_increase: 91 scopes: {} btreemap_v2_insert_blob_32_64: total: - start_instructions: 57727518 + start_instructions: 57727535 calls: 1 - instructions: 556368028 + instructions: 543098855 heap_increase: 0 stable_memory_increase: 18 scopes: {} btreemap_v2_insert_blob_32_8: total: - start_instructions: 25614610 + start_instructions: 25614627 calls: 1 - instructions: 538624096 + instructions: 525592615 heap_increase: 0 stable_memory_increase: 9 scopes: {} btreemap_v2_insert_blob_4_128: total: - start_instructions: 74069325 + start_instructions: 74069342 calls: 1 - instructions: 421116046 + instructions: 416771302 heap_increase: 0 stable_memory_increase: 13 scopes: {} btreemap_v2_insert_blob_512_128: total: - start_instructions: 305481815 + start_instructions: 305481832 calls: 1 - instructions: 3070380493 + instructions: 3047890479 heap_increase: 0 stable_memory_increase: 111 scopes: {} btreemap_v2_insert_blob_64_128: total: - start_instructions: 105964306 + start_instructions: 105964323 calls: 1 - instructions: 687117865 + instructions: 670229454 heap_increase: 0 stable_memory_increase: 34 scopes: {} btreemap_v2_insert_blob_8_128: total: - start_instructions: 75793633 + start_instructions: 75793650 calls: 1 - instructions: 473584626 + instructions: 468148407 heap_increase: 0 stable_memory_increase: 20 scopes: {} btreemap_v2_insert_u64_blob8: total: - start_instructions: 7129069 + start_instructions: 7129086 calls: 1 - instructions: 424856499 + instructions: 419629594 heap_increase: 0 stable_memory_increase: 5 scopes: {} btreemap_v2_insert_u64_u64: total: - start_instructions: 829613 + start_instructions: 829630 calls: 1 - instructions: 433078331 + instructions: 427776801 heap_increase: 0 stable_memory_increase: 6 scopes: {} btreemap_v2_insert_u64_vec8: total: - start_instructions: 9522886 + start_instructions: 9522903 calls: 1 - instructions: 433606283 + instructions: 426996021 heap_increase: 0 stable_memory_increase: 21 scopes: {} btreemap_v2_insert_vec8_u64: total: - start_instructions: 9562943 + start_instructions: 9562960 calls: 1 - instructions: 596587028 + instructions: 600791438 heap_increase: 0 stable_memory_increase: 16 scopes: {} btreemap_v2_insert_vec_1024_128: total: - start_instructions: 379511514 + start_instructions: 379511531 calls: 1 - instructions: 2791397144 + instructions: 2736605218 heap_increase: 0 stable_memory_increase: 193 scopes: {} btreemap_v2_insert_vec_128_128: total: - start_instructions: 95272673 + start_instructions: 95272690 calls: 1 - instructions: 1043221381 + instructions: 1014513313 heap_increase: 0 stable_memory_increase: 51 scopes: {} btreemap_v2_insert_vec_16_128: total: - start_instructions: 60116338 + start_instructions: 60116355 calls: 1 - instructions: 719642459 + instructions: 723411193 heap_increase: 0 stable_memory_increase: 31 scopes: {} btreemap_v2_insert_vec_256_128: total: - start_instructions: 136230866 + start_instructions: 136230883 calls: 1 - instructions: 1425377808 + instructions: 1398080888 heap_increase: 0 stable_memory_increase: 71 scopes: {} btreemap_v2_insert_vec_32_1024: total: - start_instructions: 350270983 + start_instructions: 350271000 calls: 1 - instructions: 1245277354 + instructions: 1222003721 heap_increase: 0 stable_memory_increase: 171 scopes: {} btreemap_v2_insert_vec_32_128: total: - start_instructions: 65011644 + start_instructions: 65011661 calls: 1 - instructions: 783718795 + instructions: 768255876 heap_increase: 0 stable_memory_increase: 33 scopes: {} btreemap_v2_insert_vec_32_16: total: - start_instructions: 29511099 + start_instructions: 29511116 calls: 1 - instructions: 688803553 + instructions: 677660006 heap_increase: 0 stable_memory_increase: 20 scopes: {} btreemap_v2_insert_vec_32_256: total: - start_instructions: 105678341 + start_instructions: 105678358 calls: 1 - instructions: 908178268 + instructions: 884422721 heap_increase: 0 stable_memory_increase: 54 scopes: {} btreemap_v2_insert_vec_32_32: total: - start_instructions: 34810511 + start_instructions: 34810528 calls: 1 - instructions: 684535944 + instructions: 673498279 heap_increase: 0 stable_memory_increase: 20 scopes: {} btreemap_v2_insert_vec_32_4: total: - start_instructions: 24405775 + start_instructions: 24405792 calls: 1 - instructions: 683481507 + instructions: 673498951 heap_increase: 0 stable_memory_increase: 20 scopes: {} btreemap_v2_insert_vec_32_512: total: - start_instructions: 187810073 + start_instructions: 187810090 calls: 1 - instructions: 1026516421 + instructions: 998460442 heap_increase: 0 stable_memory_increase: 91 scopes: {} btreemap_v2_insert_vec_32_64: total: - start_instructions: 45127718 + start_instructions: 45127735 calls: 1 - instructions: 717228200 + instructions: 706175746 heap_increase: 0 stable_memory_increase: 24 scopes: {} btreemap_v2_insert_vec_32_8: total: - start_instructions: 26556733 + start_instructions: 26556750 calls: 1 - instructions: 682794357 + instructions: 672527457 heap_increase: 0 stable_memory_increase: 20 scopes: {} btreemap_v2_insert_vec_4_128: total: - start_instructions: 55036634 + start_instructions: 55036651 calls: 1 - instructions: 620372828 + instructions: 619760403 heap_increase: 0 stable_memory_increase: 16 scopes: {} btreemap_v2_insert_vec_512_128: total: - start_instructions: 218009758 + start_instructions: 218009775 calls: 1 - instructions: 1903055435 + instructions: 1852718375 heap_increase: 0 stable_memory_increase: 112 scopes: {} btreemap_v2_insert_vec_64_128: total: - start_instructions: 75683463 + start_instructions: 75683480 calls: 1 - instructions: 874551603 + instructions: 855970283 heap_increase: 0 stable_memory_increase: 41 scopes: {} btreemap_v2_insert_vec_8_128: total: - start_instructions: 56821869 + start_instructions: 56821886 calls: 1 - instructions: 680032261 + instructions: 680099401 heap_increase: 0 stable_memory_increase: 23 scopes: {} btreemap_v2_mem_manager_contains_blob512_u64: total: - start_instructions: 3469743467 + start_instructions: 3425972505 calls: 1 - instructions: 2393561734 + instructions: 2376508249 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_contains_u64_blob512: total: - start_instructions: 906214177 + start_instructions: 893434231 calls: 1 - instructions: 301490933 + instructions: 304790874 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_contains_u64_u64: total: - start_instructions: 562145728 + start_instructions: 549286638 calls: 1 - instructions: 306627819 + instructions: 309491912 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_contains_u64_vec512: total: - start_instructions: 1133468498 + start_instructions: 1103884834 calls: 1 - instructions: 389757741 + instructions: 393000500 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_contains_vec512_u64: total: - start_instructions: 2269022769 + start_instructions: 2193954962 calls: 1 - instructions: 1263289439 + instructions: 1228107788 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_blob512_u64: total: - start_instructions: 3469743467 + start_instructions: 3425972505 calls: 1 - instructions: 2480010680 + instructions: 2461116385 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_u64_blob512: total: - start_instructions: 906214177 + start_instructions: 893434231 calls: 1 - instructions: 318984425 + instructions: 320423970 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_u64_u64: total: - start_instructions: 562145728 + start_instructions: 549286638 calls: 1 - instructions: 319753696 + instructions: 320421256 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_u64_vec512: total: - start_instructions: 1133468498 + start_instructions: 1103884834 calls: 1 - instructions: 416829260 + instructions: 416742623 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_get_vec512_u64: total: - start_instructions: 2269022769 + start_instructions: 2193954962 calls: 1 - instructions: 1307093932 + instructions: 1268826318 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_blob512_u64: total: - start_instructions: 237916525 + start_instructions: 237916537 calls: 1 - instructions: 3189112354 + instructions: 3145341380 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_u64_blob512: total: - start_instructions: 237807828 + start_instructions: 237807840 calls: 1 - instructions: 647090919 + instructions: 634310961 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_u64_u64: total: - start_instructions: 924281 + start_instructions: 924293 calls: 1 - instructions: 560416021 + instructions: 547556919 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_u64_vec512: total: - start_instructions: 172593854 + start_instructions: 172593866 calls: 1 - instructions: 900560616 + instructions: 875570980 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_insert_vec512_u64: total: - start_instructions: 172504187 + start_instructions: 172504199 calls: 1 - instructions: 2032279621 + instructions: 1961516482 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_blob512_u64: total: - start_instructions: 3469743467 + start_instructions: 3425972505 calls: 1 - instructions: 4412188238 + instructions: 4345562795 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_u64_blob512: total: - start_instructions: 906214177 + start_instructions: 893434231 calls: 1 - instructions: 950509468 + instructions: 927125026 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_u64_u64: total: - start_instructions: 562145728 + start_instructions: 549286638 calls: 1 - instructions: 808272560 + instructions: 783432094 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_u64_vec512: total: - start_instructions: 1133468498 + start_instructions: 1103884834 calls: 1 - instructions: 1289646678 + instructions: 1245826755 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_mem_manager_remove_vec512_u64: total: - start_instructions: 2269022769 + start_instructions: 2193954962 calls: 1 - instructions: 3183910606 + instructions: 3075940124 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob8_u64: total: - start_instructions: 458470554 + start_instructions: 452714120 calls: 1 - instructions: 622200618 + instructions: 617552323 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_1024_128: total: - start_instructions: 6043414642 + start_instructions: 6018085082 calls: 1 - instructions: 8431485313 + instructions: 8407393950 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_128_128: total: - start_instructions: 1345539135 + start_instructions: 1326342116 calls: 1 - instructions: 1868788900 + instructions: 1847105512 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_16_128: total: - start_instructions: 581469562 + start_instructions: 576531262 calls: 1 - instructions: 765976336 + instructions: 759917153 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_256_128: total: - start_instructions: 2009670699 + start_instructions: 1989162222 calls: 1 - instructions: 2807125764 + instructions: 2784099869 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_1024: total: - start_instructions: 1195159861 + start_instructions: 1182067113 calls: 1 - instructions: 1151786007 + instructions: 1137118059 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_128: total: - start_instructions: 652093660 + start_instructions: 640425760 calls: 1 - instructions: 895271317 + instructions: 881420618 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_16: total: - start_instructions: 569412448 + start_instructions: 556936763 calls: 1 - instructions: 830179008 + instructions: 816200950 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_256: total: - start_instructions: 737031164 + start_instructions: 724550272 calls: 1 - instructions: 924008116 + instructions: 909758918 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_32: total: - start_instructions: 590720595 + start_instructions: 577513659 calls: 1 - instructions: 844939944 + instructions: 830061314 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_4: total: - start_instructions: 553883767 + start_instructions: 541161181 calls: 1 - instructions: 813445765 + instructions: 799101496 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_512: total: - start_instructions: 888268172 + start_instructions: 876226602 calls: 1 - instructions: 988660811 + instructions: 974145443 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_64: total: - start_instructions: 614195302 + start_instructions: 600926126 calls: 1 - instructions: 853670235 + instructions: 839453950 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_32_8: total: - start_instructions: 564238462 + start_instructions: 551206978 calls: 1 - instructions: 831827211 + instructions: 817715657 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_4_128: total: - start_instructions: 495185127 + start_instructions: 490840380 calls: 1 - instructions: 382997171 + instructions: 381495140 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_512_128: total: - start_instructions: 3375912066 + start_instructions: 3353422049 calls: 1 - instructions: 4656589104 + instructions: 4633015950 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_64_128: total: - start_instructions: 793131927 + start_instructions: 776243513 calls: 1 - instructions: 1070297885 + instructions: 1051383957 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_blob_8_128: total: - start_instructions: 549378015 + start_instructions: 543941793 calls: 1 - instructions: 626229711 + instructions: 621633420 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_u64_blob8: total: - start_instructions: 431985324 + start_instructions: 426758416 calls: 1 - instructions: 704655935 + instructions: 699801824 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_u64_u64: total: - start_instructions: 433927702 + start_instructions: 428626169 calls: 1 - instructions: 716277150 + instructions: 711281843 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_u64_vec8: total: - start_instructions: 443148927 + start_instructions: 436538662 calls: 1 - instructions: 707209321 + instructions: 702348004 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec8_u64: total: - start_instructions: 606169729 + start_instructions: 610374136 calls: 1 - instructions: 798415681 + instructions: 799659346 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_1024_128: total: - start_instructions: 3170928416 + start_instructions: 3116136487 calls: 1 - instructions: 4088132409 + instructions: 4021467872 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_128_128: total: - start_instructions: 1138513812 + start_instructions: 1109805741 calls: 1 - instructions: 1540235596 + instructions: 1503839970 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_16_128: total: - start_instructions: 779778555 + start_instructions: 783547286 calls: 1 - instructions: 1038779445 + instructions: 1041501412 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_256_128: total: - start_instructions: 1561628432 + start_instructions: 1534331509 calls: 1 - instructions: 2058259565 + instructions: 2004716789 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_1024: total: - start_instructions: 1595568095 + start_instructions: 1572294459 calls: 1 - instructions: 1720412117 + instructions: 1686400511 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_128: total: - start_instructions: 848750197 + start_instructions: 833287275 calls: 1 - instructions: 1121742441 + instructions: 1103728682 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_16: total: - start_instructions: 718334410 + start_instructions: 707190860 calls: 1 - instructions: 965011202 + instructions: 952540614 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_256: total: - start_instructions: 1013876367 + start_instructions: 990120817 calls: 1 - instructions: 1248136182 + instructions: 1223270589 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_32: total: - start_instructions: 719366213 + start_instructions: 708328545 calls: 1 - instructions: 961152873 + instructions: 948692304 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_4: total: - start_instructions: 707907040 + start_instructions: 697924481 calls: 1 - instructions: 954455313 + instructions: 940976424 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_512: total: - start_instructions: 1214346252 + start_instructions: 1186290270 calls: 1 - instructions: 1404132609 + instructions: 1373219640 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_64: total: - start_instructions: 762375676 + start_instructions: 751323219 calls: 1 - instructions: 1005109169 + instructions: 989996561 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_32_8: total: - start_instructions: 709370848 + start_instructions: 699103945 calls: 1 - instructions: 965763857 + instructions: 951913482 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_4_128: total: - start_instructions: 675429220 + start_instructions: 674816792 calls: 1 - instructions: 546598476 + instructions: 548663812 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_512_128: total: - start_instructions: 2121084951 + start_instructions: 2070747888 calls: 1 - instructions: 2756486262 + instructions: 2693639900 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_64_128: total: - start_instructions: 950254824 + start_instructions: 931673501 calls: 1 - instructions: 1266073867 + instructions: 1242491831 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_first_vec_8_128: total: - start_instructions: 736873888 + start_instructions: 736941025 calls: 1 - instructions: 859841371 + instructions: 862886022 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob8_u64: total: - start_instructions: 458470554 + start_instructions: 452714120 calls: 1 - instructions: 602347046 + instructions: 595853650 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_1024_128: total: - start_instructions: 6043414642 + start_instructions: 6018085082 calls: 1 - instructions: 8114668996 + instructions: 8074544989 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_128_128: total: - start_instructions: 1345539135 + start_instructions: 1326342116 calls: 1 - instructions: 1802553215 + instructions: 1777146016 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_16_128: total: - start_instructions: 581469562 + start_instructions: 576531262 calls: 1 - instructions: 742006774 + instructions: 733631612 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_256_128: total: - start_instructions: 2009670699 + start_instructions: 1989162222 calls: 1 - instructions: 2718413557 + instructions: 2689902063 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_1024: total: - start_instructions: 1195159861 + start_instructions: 1182067113 calls: 1 - instructions: 1117676362 + instructions: 1101403637 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_128: total: - start_instructions: 652093660 + start_instructions: 640425760 calls: 1 - instructions: 862736785 + instructions: 846620593 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_16: total: - start_instructions: 569412448 + start_instructions: 556936763 calls: 1 - instructions: 805611952 + instructions: 789994077 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_256: total: - start_instructions: 737031164 + start_instructions: 724550272 calls: 1 - instructions: 895496996 + instructions: 878909767 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_32: total: - start_instructions: 590720595 + start_instructions: 577513659 calls: 1 - instructions: 815542521 + instructions: 798906060 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_4: total: - start_instructions: 553883767 + start_instructions: 541161181 calls: 1 - instructions: 793647237 + instructions: 776952625 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_512: total: - start_instructions: 888268172 + start_instructions: 876226602 calls: 1 - instructions: 965231969 + instructions: 948839218 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_64: total: - start_instructions: 614195302 + start_instructions: 600926126 calls: 1 - instructions: 829955000 + instructions: 813853999 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_32_8: total: - start_instructions: 564238462 + start_instructions: 551206978 calls: 1 - instructions: 807341795 + instructions: 790946612 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_4_128: total: - start_instructions: 495185127 + start_instructions: 490840380 calls: 1 - instructions: 371628600 + instructions: 367470487 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_512_128: total: - start_instructions: 3375912066 + start_instructions: 3353422049 calls: 1 - instructions: 4497163456 + instructions: 4464466766 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_64_128: total: - start_instructions: 793131927 + start_instructions: 776243513 calls: 1 - instructions: 1041943730 + instructions: 1019568181 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_blob_8_128: total: - start_instructions: 549378015 + start_instructions: 543941793 calls: 1 - instructions: 622232889 + instructions: 615779072 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_u64_blob8: total: - start_instructions: 431985324 + start_instructions: 426758416 calls: 1 - instructions: 685762805 + instructions: 678338311 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_u64_u64: total: - start_instructions: 433927702 + start_instructions: 428626169 calls: 1 - instructions: 697134667 + instructions: 689260406 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_u64_vec8: total: - start_instructions: 443148927 + start_instructions: 436538662 calls: 1 - instructions: 688048696 + instructions: 680731670 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec8_u64: total: - start_instructions: 606169729 + start_instructions: 610374136 calls: 1 - instructions: 775814598 + instructions: 774006744 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_1024_128: total: - start_instructions: 3170928416 + start_instructions: 3116136487 calls: 1 - instructions: 4314793486 + instructions: 4239103678 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_128_128: total: - start_instructions: 1138513812 + start_instructions: 1109805741 calls: 1 - instructions: 1554207926 + instructions: 1509202441 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_16_128: total: - start_instructions: 779778555 + start_instructions: 783547286 calls: 1 - instructions: 1026108710 + instructions: 1022271784 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_256_128: total: - start_instructions: 1561628432 + start_instructions: 1534331509 calls: 1 - instructions: 2131957978 + instructions: 2065405266 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_1024: total: - start_instructions: 1595568095 + start_instructions: 1572294459 calls: 1 - instructions: 1703124981 + instructions: 1660630531 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_128: total: - start_instructions: 848750197 + start_instructions: 833287275 calls: 1 - instructions: 1102777842 + instructions: 1078545812 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_16: total: - start_instructions: 718334410 + start_instructions: 707190860 calls: 1 - instructions: 944211583 + instructions: 925174032 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_256: total: - start_instructions: 1013876367 + start_instructions: 990120817 calls: 1 - instructions: 1231083618 + instructions: 1199037864 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_32: total: - start_instructions: 719366213 + start_instructions: 708328545 calls: 1 - instructions: 943092702 + instructions: 925759644 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_4: total: - start_instructions: 707907040 + start_instructions: 697924481 calls: 1 - instructions: 940356602 + instructions: 921398030 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_512: total: - start_instructions: 1214346252 + start_instructions: 1186290270 calls: 1 - instructions: 1394468408 + instructions: 1357630038 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_64: total: - start_instructions: 762375676 + start_instructions: 751323219 calls: 1 - instructions: 986545825 + instructions: 968549933 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_32_8: total: - start_instructions: 709370848 + start_instructions: 699103945 calls: 1 - instructions: 943858689 + instructions: 925007422 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_4_128: total: - start_instructions: 675429220 + start_instructions: 674816792 calls: 1 - instructions: 536437381 + instructions: 534270275 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_512_128: total: - start_instructions: 2121084951 + start_instructions: 2070747888 calls: 1 - instructions: 2876049571 + instructions: 2793078250 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_64_128: total: - start_instructions: 950254824 + start_instructions: 931673501 calls: 1 - instructions: 1258690707 + instructions: 1230553236 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_pop_last_vec_8_128: total: - start_instructions: 736873888 + start_instructions: 736941025 calls: 1 - instructions: 865694098 + instructions: 862573318 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_count_1k_0b: total: - start_instructions: 35917797 + start_instructions: 35147069 calls: 1 - instructions: 16748 + instructions: 17325 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_count_1k_10kib: total: - start_instructions: 891302430 + start_instructions: 889241453 calls: 1 - instructions: 2599674 + instructions: 2651810 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_count_20_10mib: total: - start_instructions: 14479293737 + start_instructions: 14485967462 calls: 1 - instructions: 20576288 + instructions: 20577329 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_key_sum_1k_0b: total: - start_instructions: 35917894 + start_instructions: 35147166 calls: 1 - instructions: 17104 + instructions: 17568 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_key_sum_1k_10kib: total: - start_instructions: 891302527 + start_instructions: 889241550 calls: 1 - instructions: 57215658 + instructions: 57016599 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_key_sum_20_10mib: total: - start_instructions: 14479293834 + start_instructions: 14485967559 calls: 1 - instructions: 1105826200 + instructions: 1105821929 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_value_sum_1k_0b: total: - start_instructions: 35917894 + start_instructions: 35147166 calls: 1 - instructions: 17118 + instructions: 17582 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_value_sum_1k_10kib: total: - start_instructions: 891302527 + start_instructions: 889241550 calls: 1 - instructions: 57227654 + instructions: 57028595 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_range_value_sum_20_10mib: total: - start_instructions: 14479293834 + start_instructions: 14485967559 calls: 1 - instructions: 1105826436 + instructions: 1105822165 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_10mib_values: total: - start_instructions: 14479293363 + start_instructions: 14485967088 calls: 1 - instructions: 4737371953 + instructions: 4745601915 heap_increase: 0 stable_memory_increase: 657 scopes: {} btreemap_v2_remove_blob8_u64: total: - start_instructions: 459630211 + start_instructions: 453873913 calls: 1 - instructions: 606056713 + instructions: 596923489 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_1024_128: total: - start_instructions: 6131895381 + start_instructions: 6106585973 calls: 1 - instructions: 7421888866 + instructions: 7379667533 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_128_128: total: - start_instructions: 1362339662 + start_instructions: 1343142775 calls: 1 - instructions: 1635342147 + instructions: 1607396974 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_16_128: total: - start_instructions: 587875096 + start_instructions: 582936916 calls: 1 - instructions: 690775090 + instructions: 680207079 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_256_128: total: - start_instructions: 2036711438 + start_instructions: 2016223113 calls: 1 - instructions: 2469317749 + instructions: 2438118148 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_1024: total: - start_instructions: 1238245580 + start_instructions: 1225152952 calls: 1 - instructions: 1018120608 + instructions: 998591487 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_128: total: - start_instructions: 659339379 + start_instructions: 647671599 calls: 1 - instructions: 782398058 + instructions: 762964209 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_16: total: - start_instructions: 572198169 + start_instructions: 559722634 calls: 1 - instructions: 735719722 + instructions: 716725409 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_256: total: - start_instructions: 749396807 + start_instructions: 736916035 calls: 1 - instructions: 818891034 + instructions: 799332932 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_32: total: - start_instructions: 594146104 + start_instructions: 580919298 calls: 1 - instructions: 747183767 + instructions: 727478442 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_4: total: - start_instructions: 556169406 + start_instructions: 543466976 calls: 1 - instructions: 732221314 + instructions: 712636348 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_512: total: - start_instructions: 910873891 + start_instructions: 898832441 calls: 1 - instructions: 891432153 + instructions: 872035087 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_64: total: - start_instructions: 618881021 + start_instructions: 605611965 calls: 1 - instructions: 774120265 + instructions: 754165218 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_32_8: total: - start_instructions: 566704183 + start_instructions: 553652829 calls: 1 - instructions: 732105858 + instructions: 712282515 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_4_128: total: - start_instructions: 500930654 + start_instructions: 496586041 calls: 1 - instructions: 468000929 + instructions: 464428206 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_512_128: total: - start_instructions: 3423432805 + start_instructions: 3400962940 calls: 1 - instructions: 4122884700 + instructions: 4087442000 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_64_128: total: - start_instructions: 804812720 + start_instructions: 787924438 calls: 1 - instructions: 950218279 + instructions: 925857474 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_blob_8_128: total: - start_instructions: 555383524 + start_instructions: 549947436 calls: 1 - instructions: 623528286 + instructions: 614717488 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_u64_blob8: total: - start_instructions: 433090833 + start_instructions: 427844055 calls: 1 - instructions: 601729366 + instructions: 591289239 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_u64_u64: total: - start_instructions: 434693266 + start_instructions: 429391869 calls: 1 - instructions: 623942725 + instructions: 612365815 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_u64_vec8: total: - start_instructions: 442791595 + start_instructions: 437943978 calls: 1 - instructions: 607719710 + instructions: 596864262 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec8_u64: total: - start_instructions: 606342608 + start_instructions: 609571867 calls: 1 - instructions: 767231408 + instructions: 768226682 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_1024_128: total: - start_instructions: 3192363458 + start_instructions: 3139139615 calls: 1 - instructions: 4558259614 + instructions: 4442411301 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_128_128: total: - start_instructions: 1152132995 + start_instructions: 1122931818 calls: 1 - instructions: 1461626998 + instructions: 1419451891 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_16_128: total: - start_instructions: 788123774 + start_instructions: 789675873 calls: 1 - instructions: 929190133 + instructions: 926959674 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_256_128: total: - start_instructions: 1570435457 + start_instructions: 1532479798 calls: 1 - instructions: 2290487526 + instructions: 2218247229 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_1024: total: - start_instructions: 1628350867 + start_instructions: 1602777496 calls: 1 - instructions: 1731690542 + instructions: 1693369366 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_128: total: - start_instructions: 857561793 + start_instructions: 841581401 calls: 1 - instructions: 1068571020 + instructions: 1039023877 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_16: total: - start_instructions: 722884550 + start_instructions: 711050685 calls: 1 - instructions: 891426404 + instructions: 885753205 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_256: total: - start_instructions: 1007673020 + start_instructions: 987481510 calls: 1 - instructions: 1279117443 + instructions: 1244959919 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_32: total: - start_instructions: 725399616 + start_instructions: 713894096 calls: 1 - instructions: 898887525 + instructions: 879000017 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_4: total: - start_instructions: 711759047 + start_instructions: 700624986 calls: 1 - instructions: 897962104 + instructions: 875841946 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_512: total: - start_instructions: 1225599518 + start_instructions: 1199394096 calls: 1 - instructions: 1443964176 + instructions: 1402127540 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_64: total: - start_instructions: 769411650 + start_instructions: 757545427 calls: 1 - instructions: 979405973 + instructions: 981819352 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_32_8: total: - start_instructions: 711554910 + start_instructions: 700422898 calls: 1 - instructions: 892013376 + instructions: 869697896 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_4_128: total: - start_instructions: 683578434 + start_instructions: 683425633 calls: 1 - instructions: 669117022 + instructions: 668639448 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_512_128: total: - start_instructions: 2134044956 + start_instructions: 2081367474 calls: 1 - instructions: 3127395742 + instructions: 3050432567 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_64_128: total: - start_instructions: 961598179 + start_instructions: 942322408 calls: 1 - instructions: 1188794441 + instructions: 1191118695 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_remove_vec_8_128: total: - start_instructions: 746474463 + start_instructions: 746800143 calls: 1 - instructions: 837942736 + instructions: 831170274 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_iter_1k_0b: total: - start_instructions: 35812492 + start_instructions: 35039744 calls: 1 - instructions: 1539251 + instructions: 1456527 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_iter_1k_10kib: total: - start_instructions: 468774582 + start_instructions: 466615217 calls: 1 - instructions: 57053253 + instructions: 56819350 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_iter_20_10mib: total: - start_instructions: 5833732430 + start_instructions: 5840407332 calls: 1 - instructions: 1103719341 + instructions: 1103714527 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_iter_rev_1k_0b: total: - start_instructions: 35812492 + start_instructions: 35039744 calls: 1 - instructions: 1540246 + instructions: 1457035 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_iter_rev_1k_10kib: total: - start_instructions: 468774582 + start_instructions: 466615217 calls: 1 - instructions: 57034272 + instructions: 56796290 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_iter_rev_20_10mib: total: - start_instructions: 5833732430 + start_instructions: 5840407332 calls: 1 - instructions: 1103718906 + instructions: 1103714086 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_keys_1k_0b: total: - start_instructions: 35812479 + start_instructions: 35039731 calls: 1 - instructions: 1179999 + instructions: 1193507 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_keys_1k_10kib: total: - start_instructions: 468774569 + start_instructions: 466615204 calls: 1 - instructions: 2586986 + instructions: 2603081 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_keys_20_10mib: total: - start_instructions: 5833732417 + start_instructions: 5840407319 calls: 1 - instructions: 18469915 + instructions: 18470081 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_keys_rev_1k_0b: total: - start_instructions: 35812479 + start_instructions: 35039731 calls: 1 - instructions: 1179914 + instructions: 1193329 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_keys_rev_1k_10kib: total: - start_instructions: 468774569 + start_instructions: 466615204 calls: 1 - instructions: 2568041 + instructions: 2581341 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_keys_rev_20_10mib: total: - start_instructions: 5833732417 + start_instructions: 5840407319 calls: 1 - instructions: 18469901 + instructions: 18470067 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_values_1k_0b: total: - start_instructions: 35812494 + start_instructions: 35039746 calls: 1 - instructions: 1515589 + instructions: 1433865 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_values_1k_10kib: total: - start_instructions: 468774584 + start_instructions: 466615219 calls: 1 - instructions: 57029591 + instructions: 56796688 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_values_20_10mib: total: - start_instructions: 5833732432 + start_instructions: 5840407334 calls: 1 - instructions: 1103718871 + instructions: 1103714077 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_values_rev_1k_0b: total: - start_instructions: 35812492 + start_instructions: 35039744 calls: 1 - instructions: 1517248 + instructions: 1435037 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_values_rev_1k_10kib: total: - start_instructions: 468774582 + start_instructions: 466615217 calls: 1 - instructions: 57011274 + instructions: 56774292 heap_increase: 0 stable_memory_increase: 0 scopes: {} btreemap_v2_scan_values_rev_20_10mib: total: - start_instructions: 5833732430 + start_instructions: 5840407332 calls: 1 - instructions: 1103718448 + instructions: 1103713648 heap_increase: 0 stable_memory_increase: 0 scopes: {} diff --git a/benchmarks/compare/canbench_results.yml b/benchmarks/compare/canbench_results.yml index 2fca330d..372290c0 100644 --- a/benchmarks/compare/canbench_results.yml +++ b/benchmarks/compare/canbench_results.yml @@ -3,7 +3,7 @@ benches: total: start_instructions: 17235 calls: 1 - instructions: 1219162271 + instructions: 1222164385 heap_increase: 3233 stable_memory_increase: 1665 scopes: {} @@ -11,7 +11,7 @@ benches: total: start_instructions: 17235 calls: 1 - instructions: 5414899705 + instructions: 5422715344 heap_increase: 1604 stable_memory_increase: 1665 scopes: {} @@ -19,7 +19,7 @@ benches: total: start_instructions: 17235 calls: 1 - instructions: 133641869551 + instructions: 134635899996 heap_increase: 1892 stable_memory_increase: 3201 scopes: {} @@ -75,7 +75,7 @@ benches: total: start_instructions: 17235 calls: 1 - instructions: 1069802821 + instructions: 1072804865 heap_increase: 3233 stable_memory_increase: 1665 scopes: {} @@ -83,7 +83,7 @@ benches: total: start_instructions: 17235 calls: 1 - instructions: 4914910816 + instructions: 4922635433 heap_increase: 1604 stable_memory_increase: 1665 scopes: {} @@ -91,7 +91,7 @@ benches: total: start_instructions: 17235 calls: 1 - instructions: 89875477354 + instructions: 90689822199 heap_increase: 1892 stable_memory_increase: 3201 scopes: {} diff --git a/scripts/ci_run_benchmark.sh b/scripts/ci_run_benchmark.sh index b07b251c..0afab45f 100644 --- a/scripts/ci_run_benchmark.sh +++ b/scripts/ci_run_benchmark.sh @@ -34,7 +34,8 @@ fi # Check if the canbench results file is up to date. pushd "$CANISTER_PATH" -canbench --less-verbose --hide-results --show-summary --csv > "$CANBENCH_OUTPUT" +# (!) Do not use `--hide-results` here, as it breaks the up-to-date check. +canbench --less-verbose --show-summary --csv > "$CANBENCH_OUTPUT" cp "./canbench_results.csv" "$CANBENCH_RESULTS_CSV_FILE" if grep -q "(regress\|(improved by \|(new)" "$CANBENCH_OUTPUT"; then UPDATED_MSG="**❌ \`$CANBENCH_RESULTS_FILE\` is not up to date** diff --git a/src/btreemap/node.rs b/src/btreemap/node.rs index 45f60604..98114cb7 100644 --- a/src/btreemap/node.rs +++ b/src/btreemap/node.rs @@ -184,13 +184,13 @@ impl Node { #[inline(always)] 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)) + k.get_or_load(|offset, size| self.load_key_from_memory(offset, size, memory)) } /// Returns a reference to the cached value and loads it from memory if needed. #[inline(always)] 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)) + v.get_or_load(|offset, size| self.load_value_from_memory(offset, size, memory)) } /// Returns a reference to the key at the specified index. @@ -207,16 +207,21 @@ impl Node { /// 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)) + key.take_or_load(|offset, size| self.load_key_from_memory(offset, size, memory)) } /// Extracts the contents of value (by loading it first if it's not loaded yet). fn extract_value(&self, value: LazyValue, memory: &M) -> Vec { - value.take_or_load(|offset| self.load_value_from_memory(offset, memory)) + value.take_or_load(|offset, size| self.load_value_from_memory(offset, size, memory)) } /// Loads a key from stable memory at the given offset. - fn load_key_from_memory(&self, mut offset: Bytes, memory: &M) -> K { + fn load_key_from_memory( + &self, + mut offset: Bytes, + loaded_size: u32, + memory: &M, + ) -> K { let reader = NodeReader { address: self.address, overflows: &self.overflows, @@ -227,18 +232,16 @@ impl Node { let size = match self.version { Version::V1(_) => { // V1: key size is always stored in memory. - let size = read_u32(&reader, Address::from(offset.get())); offset += U32_SIZE; - size + loaded_size } Version::V2(_) => { - // V2: use fixed size if available, otherwise read from memory. + // V2: use fixed size if available, otherwise the one loaded from memory. if K::BOUND.is_fixed_size() { K::BOUND.max_size() } else { - let size = read_u32(&reader, Address::from(offset.get())); offset += U32_SIZE; - size + loaded_size } } } as usize; @@ -250,7 +253,12 @@ impl Node { } /// Loads a value from stable memory at the given offset. - fn load_value_from_memory(&self, offset: Bytes, memory: &M) -> Vec { + fn load_value_from_memory( + &self, + offset: Bytes, + loaded_size: u32, + memory: &M, + ) -> Vec { let reader = NodeReader { address: self.address, overflows: &self.overflows, @@ -258,7 +266,7 @@ impl Node { memory, }; - let size = read_u32(&reader, Address::from(offset.get())) as usize; + let size = loaded_size as usize; let mut bytes = Vec::with_capacity(size); read_to_vec( &reader, @@ -523,7 +531,11 @@ impl NodeHeader { #[derive(Debug)] enum LazyObject { ByVal(T), - ByRef { offset: Bytes, loaded: OnceCell }, + ByRef { + offset: Bytes, + size: u32, + loaded: OnceCell, + }, } impl LazyObject { @@ -533,28 +545,35 @@ impl LazyObject { } #[inline(always)] - pub fn by_ref(offset: Bytes) -> Self { + pub fn by_ref(offset: Bytes, size: u32) -> Self { LazyObject::ByRef { offset, + size, loaded: OnceCell::new(), } } #[inline(always)] - pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> T) -> &T { + pub fn get_or_load(&self, load: impl FnOnce(Bytes, u32) -> T) -> &T { match self { LazyObject::ByVal(value) => value, - LazyObject::ByRef { offset, loaded } => loaded.get_or_init(|| load(*offset)), + LazyObject::ByRef { + offset, + size, + loaded, + } => loaded.get_or_init(|| load(*offset, *size)), } } #[inline(always)] - pub fn take_or_load(self, load: impl FnOnce(Bytes) -> T) -> T { + pub fn take_or_load(self, load: impl FnOnce(Bytes, u32) -> T) -> T { match self { LazyObject::ByVal(value) => value, - LazyObject::ByRef { offset, loaded } => { - loaded.into_inner().unwrap_or_else(|| load(offset)) - } + LazyObject::ByRef { + offset, + size, + loaded, + } => loaded.into_inner().unwrap_or_else(|| load(offset, size)), } } } @@ -571,17 +590,17 @@ impl LazyValue { } #[inline(always)] - pub fn by_ref(offset: Bytes) -> Self { - Self(LazyObject::by_ref(offset)) + pub fn by_ref(offset: Bytes, size: u32) -> Self { + Self(LazyObject::by_ref(offset, size)) } #[inline(always)] - pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> Blob) -> &Blob { + pub fn get_or_load(&self, load: impl FnOnce(Bytes, u32) -> Blob) -> &Blob { self.0.get_or_load(load) } #[inline(always)] - pub fn take_or_load(self, load: impl FnOnce(Bytes) -> Blob) -> Blob { + pub fn take_or_load(self, load: impl FnOnce(Bytes, u32) -> Blob) -> Blob { self.0.take_or_load(load) } } @@ -596,17 +615,17 @@ impl LazyKey { } #[inline(always)] - pub fn by_ref(offset: Bytes) -> Self { - Self(LazyObject::by_ref(offset)) + pub fn by_ref(offset: Bytes, size: u32) -> Self { + Self(LazyObject::by_ref(offset, size)) } #[inline(always)] - pub fn get_or_load(&self, load: impl FnOnce(Bytes) -> K) -> &K { + pub fn get_or_load(&self, load: impl FnOnce(Bytes, u32) -> K) -> &K { self.0.get_or_load(load) } #[inline(always)] - pub fn take_or_load(self, load: impl FnOnce(Bytes) -> K) -> K { + pub fn take_or_load(self, load: impl FnOnce(Bytes, u32) -> K) -> K { self.0.take_or_load(load) } } diff --git a/src/btreemap/node/v1.rs b/src/btreemap/node/v1.rs index 2f9bcd05..698ffd67 100644 --- a/src/btreemap/node/v1.rs +++ b/src/btreemap/node/v1.rs @@ -70,15 +70,13 @@ impl Node { let mut entries = Vec::with_capacity(header.num_entries as usize); let mut offset = NodeHeader::size(); for _ in 0..header.num_entries { - let key_offset = offset; - offset += U32_SIZE; - let key = LazyKey::by_ref(key_offset); - offset += Bytes::from(max_key_size); + let size = read_u32(memory, address + offset); + let key = LazyKey::by_ref(offset, size); + offset += U32_SIZE + Bytes::from(max_key_size); - let value_offset = offset; - offset += U32_SIZE; - let value = LazyValue::by_ref(value_offset); - offset += Bytes::from(max_value_size); + let size = read_u32(memory, address + offset); + let value = LazyValue::by_ref(offset, size); + offset += U32_SIZE + Bytes::from(max_value_size); entries.push((key, value)); } diff --git a/src/btreemap/node/v2.rs b/src/btreemap/node/v2.rs index 6ff0099c..da24e1f5 100644 --- a/src/btreemap/node/v2.rs +++ b/src/btreemap/node/v2.rs @@ -176,18 +176,18 @@ impl Node { ); LazyKey::by_value(K::from_bytes(Cow::Borrowed(&buf))) } else { - LazyKey::by_ref(key_offset) + LazyKey::by_ref(key_offset, key_size) }; offset += Bytes::from(key_size); - entries.push((key, LazyValue::by_ref(Bytes::from(0_u64)))); + entries.push((key, LazyValue::by_ref(Bytes::from(0_u64), 0))); } // Load the values for (_key, value) in entries.iter_mut() { // Load the values lazily. - *value = LazyValue::by_ref(Bytes::from(offset.get())); - let value_size = read_u32(&reader, offset) as usize; + let value_size = read_u32(&reader, offset); + *value = LazyValue::by_ref(Bytes::from(offset.get()), value_size); offset += U32_SIZE + Bytes::from(value_size as u64); }