Percentage of allocs less than 48 bytes: 89.6 All allocations # A tibble: 22 × 4 obj_len n n_less_than percent 1 9 3413 3413 2.95 2 10 73 3486 3.01 3 11 1002 4488 3.87 4 12 9 4497 3.88 5 13 1 4498 3.88 6 16 7865 12363 10.7 7 18 16227 28590 24.7 8 19 1707 30297 26.1 9 20 1502 31799 27.4 10 21 2511 34310 29.6 11 22 519 34829 30.1 12 23 580 35409 30.6 13 24 30798 66207 57.1 14 25 2568 68775 59.3 15 26 1709 70484 60.8 16 27 184 70668 61.0 17 28 159 70827 61.1 18 29 157 70984 61.3 19 30 122 71106 61.4 20 31 104 71210 61.5 21 32 5307 76517 66.0 22 33 341 76858 66.3 # A tibble: 5 × 4 obj_len n n_less_than percent 1 1024 8 115870 100. 2 1032 6 115876 100. 3 1041 1 115877 100. 4 4096 2 115879 100. 5 4113 2 115881 100 Common Sizes # A tibble: 8 × 2 obj_len n 1 24 30798 2 48 21888 3 18 16227 4 16 7865 5 32 5307 6 40 4239 7 64 3868 8 9 3413 115,881 total allocations, total bytes = 4,390,916 Typed allocations # A tibble: 20 × 3 func_name n percent 1 List* Alloc>() 6457 11.8 2 runtime_asdl::Piece* Alloc* Alloc… 3109 5.70 5 runtime_asdl::CommandStatus* Alloc* Alloc* Alloc… 1647 3.02 10 List* Alloc>() 1080 1.98 11 runtime_asdl::VarSubState* Alloc* Alloc>() 956 1.75 13 runtime_asdl::Piece* Alloc(BigStr*&&) 917 1.68 15 Dict* Alloc* Alloc*>* Alloc… 906 1.66 18 args::SetToInt* Alloc(BigStr*&&) 901 1.65 19 value_asdl::value__Int* Alloc(in… 901 1.65 20 value_asdl::value__Str* Alloc 1 value_asdl::value__List* Alloc 47.08% of allocs are typed Str - NewStr() and OverAllocatedStr() # A tibble: 16 × 4 str_len n n_less_than percent 1 0 275 275 0.898 2 1 16227 16502 53.9 3 2 1707 18209 59.5 4 3 1429 19638 64.1 5 4 2511 22149 72.3 6 5 519 22668 74.0 7 6 580 23248 75.9 8 7 493 23741 77.5 9 8 2568 26309 85.9 10 9 1709 28018 91.5 11 10 184 28202 92.1 12 11 152 28354 92.6 13 12 157 28511 93.1 14 13 122 28633 93.5 15 14 104 28737 93.9 16 15 77 28814 94.1 # A tibble: 5 × 4 str_len n n_less_than percent 1 160 1 30611 100. 2 202 1 30612 100. 3 255 1 30613 100. 4 1024 1 30614 100. 5 4096 2 30616 100 30,616 string allocations, total length = 157,717, total bytes = 678,189 26.42% of allocs are strings 15.45% of bytes are strings NewSlab() Lengths # A tibble: 6 × 4 slab_len n n_less_than percent 1 5 16955 16955 54.7 2 7 3493 20448 66.0 3 8 1530 21978 70.9 4 10 1156 23134 74.7 5 14 349 23483 75.8 6 15 2271 25754 83.1 # A tibble: 5 × 4 slab_len n n_less_than percent 1 127 11 30935 99.9 2 128 36 30971 100. 3 254 1 30972 100. 4 256 6 30978 100. 5 1022 2 30980 100 Slab Types # A tibble: 6 × 2 func_name n 1 Slab* NewSlab(int) 10097 2 Slab* NewSlab(int) 6350 3 Slab* NewSlab… 4129 4 Slab* NewSlab(int) 2880 5 Slab* NewSlab(i… 1930 6 Slab* NewSlab(int) 988 # 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 30,980 slabs, total items = 362,163 26.73% 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.00756 2 1 18676 18681 28.3 3 2 7001 25682 38.8 4 3 5798 31480 47.6 5 4 3314 34794 52.6 6 5 3320 38114 57.6 7 6 3577 41691 63.0 8 7 2515 44206 66.9 9 8 2984 47190 71.4 10 9 1647 48837 73.9 11 10 1998 50835 76.9 12 11 1002 51837 78.4 13 12 857 52694 79.7 14 13 829 53523 80.9 15 14 740 54263 82.1 # A tibble: 5 × 4 num_items n n_less_than percent 1 77 15 66113 100. 2 78 8 66121 100. 3 108 2 66123 100. 4 179 1 66124 100. 5 1022 2 66126 100 66,126 reserve() calls, total items = 623,400 Untyped: 115,881 Typed + Str + Slab: 116,156