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 25023 73822 72.4 19 33 99 73921 72.5 20 34 70 73991 72.5 21 35 59 74050 72.6 22 36 72 74122 72.7 # A tibble: 5 × 4 obj_len n n_less_than percent 1 4096 3 102018 100. 2 4113 1 102019 100. 3 8192 1 102020 100. 4 16384 1 102021 100. 5 32768 1 102022 100 Common Sizes # A tibble: 8 × 2 obj_len n 1 24 31521 2 32 25023 3 48 22778 4 16 10719 5 18 2916 6 56 1247 7 40 825 8 64 763 102,022 total allocations, total bytes = 3,450,867 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 5 5 0.0124 2 1 21378 21383 53.1 3 2 7613 28996 72.0 4 3 3016 32012 79.5 5 4 1926 33938 84.3 6 5 896 34834 86.5 7 6 1142 35976 89.4 8 7 258 36234 90.0 9 8 198 36432 90.5 10 9 147 36579 90.9 11 10 105 36684 91.1 12 11 124 36808 91.4 13 12 76 36884 91.6 14 13 63 36947 91.8 15 14 51 36998 91.9 # A tibble: 5 × 4 num_items n n_less_than percent 1 2508 1 40257 100. 2 2509 1 40258 100. 3 2510 1 40259 100. 4 2511 1 40260 100. 5 2512 1 40261 100 40,261 reserve() calls, total items = 3,265,044 Untyped: 102,022 Typed + Str + Slab: 102,022