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 10719 10798 10.6 4 18 2916 13714 13.4 5 19 339 14053 13.8 6 20 411 14464 14.2 7 21 522 14986 14.7 8 22 648 15634 15.3 9 23 393 16027 15.7 10 24 31521 47548 46.6 11 25 283 47831 46.9 12 26 187 48018 47.1 13 27 218 48236 47.3 14 28 253 48489 47.5 15 29 131 48620 47.7 16 30 94 48714 47.7 17 31 85 48799 47.8 18 32 25024 73823 72.4 19 33 99 73922 72.5 20 34 70 73992 72.5 21 35 59 74051 72.6 22 36 72 74123 72.7 # A tibble: 5 × 4 obj_len n n_less_than percent 1 4096 3 102019 100. 2 4113 1 102020 100. 3 8192 1 102021 100. 4 16384 1 102022 100. 5 32768 1 102023 100 Common Sizes # A tibble: 8 × 2 obj_len n 1 24 31521 2 32 25024 3 48 22780 4 16 10719 5 18 2916 6 56 1245 7 40 824 8 64 764 102,023 total allocations, total bytes = 3,450,907 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 = 156,919 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,046 Untyped: 102,023 Typed + Str + Slab: 102,023