Percentage of allocs less than 48 bytes: 96.3 All allocations # A tibble: 22 × 4 obj_len n n_less_than percent 1 9 17 17 0.0167 2 12 62 79 0.0774 3 16 10720 10799 10.6 4 18 2916 13715 13.4 5 19 339 14054 13.8 6 20 411 14465 14.2 7 21 522 14987 14.7 8 22 648 15635 15.3 9 23 393 16028 15.7 10 24 31521 47549 46.6 11 25 283 47832 46.9 12 26 187 48019 47.1 13 27 218 48237 47.3 14 28 253 48490 47.5 15 29 131 48621 47.7 16 30 94 48715 47.7 17 31 85 48800 47.8 18 32 25024 73824 72.4 19 33 99 73923 72.5 20 34 70 73993 72.5 21 35 59 74052 72.6 22 36 72 74124 72.7 # A tibble: 5 × 4 obj_len n n_less_than percent 1 4096 3 102020 100. 2 4113 1 102021 100. 3 8192 1 102022 100. 4 16384 1 102023 100. 5 32768 1 102024 100 Common Sizes # A tibble: 8 × 2 obj_len n 1 24 31521 2 32 25024 3 48 22780 4 16 10720 5 18 2916 6 56 1246 7 40 823 8 64 764 102,024 total allocations, total bytes = 3,451,067 Typed allocations # A tibble: 20 × 3 func_name n percent 1 syntax_asdl::Token* Alloc* Alloc* Alloc>() 4523 6.44 5 List* Alloc* Alloc* Alloc>() 2634 3.75 8 syntax_asdl::SourceLine* Alloc* Alloc>() 1687 2.40 10 List* Alloc*>* Alloc*>… 1291 1.84 13 List* Alloc… 1202 1.71 14 syntax_asdl::command__Simple* Alloc* Alloc>() 910 1.30 18 syntax_asdl::command__CommandList* Alloc* Alloc>() 582 0.829 20 Tuple2* Alloc, int, int>(int&&, int… 560 0.798 # A tibble: 5 × 3 func_name n percent 1 value_asdl::value__Int* Alloc(int… 1 0.00142 2 value_asdl::value__List* Alloc 68.81% of allocs are typed Str - NewStr() and OverAllocatedStr() # A tibble: 16 × 4 str_len n n_less_than percent 1 1 2916 2916 33.6 2 2 339 3255 37.5 3 3 411 3666 42.3 4 4 522 4188 48.3 5 5 648 4836 55.8 6 6 393 5229 60.3 7 7 301 5530 63.8 8 8 283 5813 67.0 9 9 187 6000 69.2 10 10 218 6218 71.7 11 11 246 6464 74.5 12 12 131 6595 76.0 13 13 94 6689 77.1 14 14 85 6774 78.1 15 15 85 6859 79.1 16 16 99 6958 80.2 # A tibble: 5 × 4 str_len n n_less_than percent 1 202 1 8668 100. 2 255 1 8669 100. 3 358 1 8670 100. 4 1024 1 8671 100. 5 4096 1 8672 100 8,672 string allocations, total length = 102,386, total bytes = 249,810 8.50% of allocs are strings 7.24% of bytes are strings NewSlab() Lengths # A tibble: 6 × 4 slab_len n n_less_than percent 1 5 20826 20826 90.0 2 7 445 21271 91.9 3 8 40 21311 92.0 4 10 1049 22360 96.6 5 14 78 22438 96.9 6 15 226 22664 97.9 # A tibble: 5 × 4 slab_len n n_less_than percent 1 511 1 23147 100. 2 1022 2 23149 100. 3 1023 1 23150 100. 4 2047 1 23151 100. 5 4095 1 23152 100 Slab Types # A tibble: 6 × 2 func_name n 1 Slab* NewSlab(int) 7554 2 Slab* NewSlab(int) 3270 3 Slab* NewSlab(i… 3215 4 Slab* NewSlab(int) 3158 5 Slab* NewSlab(int) 2783 6 Slab* NewSlab(int) 1582 # A tibble: 5 × 2 func_name n 1 Slab* NewSlab(int) 1 2 Slab* NewSlab… 1 3 Slab* NewSlab(i… 1 4 Slab* NewSlab(int) 1 5 Slab* NewSlab(int) 1 23,152 slabs, total items = 157,047 22.69% of allocs are slabs ::reserve(int n) Num Items # A tibble: 15 × 4 num_items n n_less_than percent 1 0 2 2 0.00497 2 1 21378 21380 53.1 3 2 7613 28993 72.0 4 3 3016 32009 79.5 5 4 1926 33935 84.3 6 5 896 34831 86.5 7 6 1142 35973 89.4 8 7 258 36231 90.0 9 8 198 36429 90.5 10 9 147 36576 90.9 11 10 105 36681 91.1 12 11 124 36805 91.4 13 12 76 36881 91.6 14 13 63 36944 91.8 15 14 51 36995 91.9 # A tibble: 5 × 4 num_items n n_less_than percent 1 2508 1 40254 100. 2 2509 1 40255 100. 3 2510 1 40256 100. 4 2511 1 40257 100. 5 2512 1 40258 100 40,258 reserve() calls, total items = 3,265,052 Untyped: 102,024 Typed + Str + Slab: 102,024