Percentage of allocs less than 48 bytes: 90.7 All allocations # A tibble: 22 × 4 obj_len n n_less_than percent 1 9 3042 3042 2.74 2 10 73 3115 2.81 3 11 1002 4117 3.71 4 12 9 4126 3.72 5 13 1 4127 3.72 6 16 7867 11994 10.8 7 18 17139 29133 26.3 8 19 807 29940 27.0 9 20 1502 31442 28.4 10 21 711 32153 29.0 11 22 519 32672 29.5 12 23 580 33252 30.0 13 24 29978 63230 57.0 14 25 2568 65798 59.3 15 26 1709 67507 60.9 16 27 184 67691 61.0 17 28 159 67850 61.2 18 29 157 68007 61.3 19 30 122 68129 61.4 20 31 104 68233 61.5 21 32 5308 73541 66.3 22 33 341 73882 66.6 # A tibble: 5 × 4 obj_len n n_less_than percent 1 1024 8 110870 100. 2 1032 6 110876 100. 3 1041 1 110877 100. 4 4096 2 110879 100. 5 4113 2 110881 100 Common Sizes # A tibble: 8 × 2 obj_len n 1 24 29978 2 48 21586 3 18 17139 4 16 7867 5 32 5308 6 40 4238 7 64 3418 8 9 3042 110,881 total allocations, total bytes = 3,946,909 Typed allocations # A tibble: 20 × 3 func_name n percent 1 List* Alloc>() 6458 12.1 2 runtime_asdl::Piece* Alloc* Alloc… 2738 5.13 6 Tuple2* Alloc* Alloc… 1647 3.09 10 List* Alloc>() 1080 2.02 11 runtime_asdl::VarSubState* Alloc* Alloc>() 956 1.79 13 runtime_asdl::Piece* Alloc* Alloc* Alloc*>* Alloc… 906 1.70 17 args::SetToInt* Alloc(BigStr*&&) 901 1.69 18 value_asdl::value__Int* Alloc(in… 901 1.69 19 value_asdl::value__Str* Alloc 1 value_asdl::value__List* Alloc 48.13% of allocs are typed Str - NewStr() and OverAllocatedStr() # A tibble: 16 × 4 str_len n n_less_than percent 1 0 275 275 0.954 2 1 17139 17414 60.4 3 2 807 18221 63.2 4 3 1429 19650 68.2 5 4 711 20361 70.6 6 5 519 20880 72.4 7 6 580 21460 74.4 8 7 493 21953 76.2 9 8 2568 24521 85.1 10 9 1709 26230 91.0 11 10 184 26414 91.6 12 11 152 26566 92.2 13 12 157 26723 92.7 14 13 122 26845 93.1 15 14 104 26949 93.5 16 15 77 27026 93.7 # A tibble: 5 × 4 str_len n n_less_than percent 1 160 1 28823 100. 2 202 1 28824 100. 3 255 1 28825 100. 4 1024 1 28826 100. 5 4096 2 28828 100 28,828 string allocations, total length = 149,629, total bytes = 639,705 26.00% of allocs are strings 16.21% of bytes are strings NewSlab() Lengths # A tibble: 6 × 4 slab_len n n_less_than percent 1 5 16804 16804 58.0 2 7 3043 19847 68.5 3 8 1530 21377 73.8 4 10 1156 22533 77.8 5 14 349 22882 79.0 6 15 2423 25305 87.4 # A tibble: 5 × 4 slab_len n n_less_than percent 1 127 11 28911 99.8 2 128 36 28947 100. 3 254 1 28948 100. 4 256 6 28954 100. 5 1022 2 28956 100 Slab Types # A tibble: 6 × 2 func_name n 1 Slab* NewSlab(int) 9575 2 Slab* NewSlab(int) 5675 3 Slab* NewSlab… 4129 4 Slab* NewSlab(int) 2430 5 Slab* NewSlab(i… 1778 6 Slab* NewSlab(int) 956 # A tibble: 5 × 2 func_name n 1 Slab* NewSlab… 1 2 Slab* NewSlab(i… 1 3 Slab* NewSlab(int) 1 4 Slab* NewSlab(int) 1 5 Slab* NewSlab(int) 1 28,956 slabs, total items = 300,238 26.11% of allocs are slabs ::reserve(int n) Num Items # A tibble: 15 × 4 num_items n n_less_than percent 1 0 5 5 0.00762 2 1 18677 18682 28.5 3 2 7002 25684 39.1 4 3 5723 31407 47.9 5 4 3315 34722 52.9 6 5 3245 37967 57.9 7 6 3352 41319 63.0 8 7 2515 43834 66.8 9 8 3136 46970 71.6 10 9 1799 48769 74.3 11 10 1998 50767 77.4 12 11 1002 51769 78.9 13 12 857 52626 80.2 14 13 829 53455 81.5 15 14 740 54195 82.6 # A tibble: 5 × 4 num_items n n_less_than percent 1 77 15 65595 100. 2 78 8 65603 100. 3 111 2 65605 100. 4 179 1 65606 100. 5 1022 2 65608 100 65,608 reserve() calls, total items = 616,847 Untyped: 110,881 Typed + Str + Slab: 111,156