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.80 2 10 73 3261 2.86 3 11 1002 4263 3.74 4 12 9 4272 3.75 5 13 1 4273 3.75 6 16 7865 12138 10.6 7 18 16229 28367 24.9 8 19 1707 30074 26.4 9 20 1502 31576 27.7 10 21 2511 34087 29.9 11 22 519 34606 30.4 12 23 580 35186 30.9 13 24 30422 65608 57.5 14 25 1444 67052 58.8 15 26 1709 68761 60.3 16 27 184 68945 60.5 17 28 159 69104 60.6 18 29 157 69261 60.8 19 30 122 69383 60.9 20 31 104 69487 61.0 21 32 5307 74794 65.6 22 33 341 75135 65.9 # A tibble: 5 × 4 obj_len n n_less_than percent 1 1024 8 113995 100. 2 1032 6 114001 100. 3 1041 1 114002 100. 4 4096 2 114004 100. 5 4113 2 114006 100 Common Sizes # A tibble: 8 × 2 obj_len n 1 24 30422 2 48 21736 3 18 16229 4 16 7865 5 32 5307 6 40 4239 7 64 3868 8 9 3188 114,006 total allocations, total bytes = 4,344,507 Typed allocations # A tibble: 20 × 3 func_name n percent 1 List* Alloc>() 6457 12.0 2 runtime_asdl::Piece* Alloc* Alloc… 2884 5.34 6 Tuple2* Alloc* Alloc… 1647 3.05 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.68 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.33% 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 16229 16504 56.0 3 2 1707 18211 61.7 4 3 1429 19640 66.6 5 4 2511 22151 75.1 6 5 519 22670 76.9 7 6 580 23250 78.8 8 7 493 23743 80.5 9 8 1444 25187 85.4 10 9 1709 26896 91.2 11 10 184 27080 91.8 12 11 152 27232 92.3 13 12 157 27389 92.9 14 13 122 27511 93.3 15 14 104 27615 93.6 16 15 77 27692 93.9 # A tibble: 5 × 4 str_len n n_less_than percent 1 160 1 29489 100. 2 202 1 29490 100. 3 255 1 29491 100. 4 1024 1 29492 100. 5 4096 2 29494 100 29,494 string allocations, total length = 148,727, total bytes = 650,125 25.87% of allocs are strings 14.96% of bytes are strings NewSlab() Lengths # A tibble: 6 × 4 slab_len n n_less_than percent 1 5 16803 16803 54.5 2 7 3493 20296 65.8 3 8 1530 21826 70.8 4 10 1156 22982 74.5 5 14 349 23331 75.7 6 15 2271 25602 83.0 # A tibble: 5 × 4 slab_len n n_less_than percent 1 127 11 30783 99.9 2 128 36 30819 100. 3 254 1 30820 100. 4 256 6 30826 100. 5 1022 2 30828 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… 1778 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,828 slabs, total items = 361,403 27.04% 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.00758 2 1 18676 18681 28.3 3 2 7001 25682 38.9 4 3 5722 31404 47.6 5 4 3314 34718 52.6 6 5 3244 37962 57.5 7 6 3577 41539 63.0 8 7 2515 44054 66.8 9 8 2984 47038 71.3 10 9 1647 48685 73.8 11 10 1998 50683 76.8 12 11 1003 51686 78.3 13 12 857 52543 79.6 14 13 829 53372 80.9 15 14 740 54112 82.0 # A tibble: 5 × 4 num_items n n_less_than percent 1 77 15 65962 100. 2 78 8 65970 100. 3 109 2 65972 100. 4 179 1 65973 100. 5 1022 2 65975 100 65,975 reserve() calls, total items = 622,805 Untyped: 114,006 Typed + Str + Slab: 114,281