Percentage of allocs less than 48 bytes: 89.4 All allocations # A tibble: 22 × 4 obj_len n n_less_than percent 1 9 3188 3188 2.79 2 10 73 3261 2.85 3 11 1002 4263 3.73 4 12 9 4272 3.74 5 13 1 4273 3.74 6 16 7865 12138 10.6 7 18 16227 28365 24.8 8 19 1707 30072 26.3 9 20 1502 31574 27.6 10 21 2511 34085 29.8 11 22 519 34604 30.3 12 23 580 35184 30.8 13 24 30573 65757 57.5 14 25 1443 67200 58.8 15 26 1709 68909 60.3 16 27 184 69093 60.4 17 28 159 69252 60.6 18 29 157 69409 60.7 19 30 122 69531 60.8 20 31 104 69635 60.9 21 32 5307 74942 65.6 22 33 341 75283 65.9 # A tibble: 5 × 4 obj_len n n_less_than percent 1 1024 8 114295 100. 2 1032 6 114301 100. 3 1041 1 114302 100. 4 4096 2 114304 100. 5 4113 2 114306 100 Common Sizes # A tibble: 8 × 2 obj_len n 1 24 30573 2 48 21888 3 18 16227 4 16 7865 5 32 5307 6 40 4239 7 64 3868 8 9 3188 114,306 total allocations, total bytes = 4,355,366 Typed allocations # A tibble: 20 × 3 func_name n percent 1 List* Alloc>() 6457 11.9 2 runtime_asdl::Piece* Alloc* Alloc… 2884 5.33 6 Tuple2* Alloc* Alloc… 1647 3.04 10 List* Alloc>() 1080 2.00 11 runtime_asdl::VarSubState* Alloc* Alloc>() 956 1.77 13 runtime_asdl::Piece* Alloc* Alloc* Alloc*>* Alloc… 906 1.67 17 args::SetToInt* Alloc(BigStr*&&) 901 1.67 18 value_asdl::value__Int* Alloc(in… 901 1.67 19 value_asdl::value__Str* Alloc 1 value_asdl::value__List* Alloc 47.34% of allocs are typed Str - NewStr() and OverAllocatedStr() # A tibble: 16 × 4 str_len n n_less_than percent 1 0 275 275 0.932 2 1 16227 16502 56.0 3 2 1707 18209 61.7 4 3 1429 19638 66.6 5 4 2511 22149 75.1 6 5 519 22668 76.9 7 6 580 23248 78.8 8 7 493 23741 80.5 9 8 1443 25184 85.4 10 9 1709 26893 91.2 11 10 184 27077 91.8 12 11 152 27229 92.3 13 12 157 27386 92.9 14 13 122 27508 93.3 15 14 104 27612 93.6 16 15 77 27689 93.9 # A tibble: 5 × 4 str_len n n_less_than percent 1 160 1 29486 100. 2 202 1 29487 100. 3 255 1 29488 100. 4 1024 1 29489 100. 5 4096 2 29491 100 29,491 string allocations, total length = 148,717, total bytes = 650,064 25.80% of allocs are strings 14.93% 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 27.10% 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: 114,306 Typed + Str + Slab: 114,581