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 254 48491 47.5 15 29 131 48622 47.7 16 30 94 48716 47.7 17 31 85 48801 47.8 18 32 25024 73825 72.4 19 33 99 73924 72.5 20 34 70 73994 72.5 21 35 59 74053 72.6 22 36 72 74125 72.7 # A tibble: 5 × 4 obj_len n n_less_than percent 1 4096 3 102024 100. 2 4113 1 102025 100. 3 8192 1 102026 100. 4 16384 1 102027 100. 5 32768 1 102028 100 Common Sizes # A tibble: 8 × 2 obj_len n 1 24 31521 2 32 25024 3 48 22782 4 16 10720 5 18 2916 6 56 1245 7 40 825 8 64 764 102,028 total allocations, total bytes = 3,451,103 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 20828 20828 90.0 2 7 445 21273 91.9 3 8 41 21314 92.0 4 10 1049 22363 96.6 5 14 78 22441 96.9 6 15 226 22667 97.9 # A tibble: 5 × 4 slab_len n n_less_than percent 1 511 1 23150 100. 2 1022 2 23152 100. 3 1023 1 23153 100. 4 2047 1 23154 100. 5 4095 1 23155 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) 1584 # 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,155 slabs, total items = 156,937 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 21379 21381 53.1 3 2 7613 28994 72.0 4 3 3016 32010 79.5 5 4 1926 33936 84.3 6 5 896 34832 86.5 7 6 1142 35974 89.4 8 7 258 36232 90.0 9 8 198 36430 90.5 10 9 147 36577 90.9 11 10 105 36682 91.1 12 11 124 36806 91.4 13 12 76 36882 91.6 14 13 63 36945 91.8 15 14 51 36996 91.9 # A tibble: 5 × 4 num_items n n_less_than percent 1 2508 1 40255 100. 2 2509 1 40256 100. 3 2510 1 40257 100. 4 2511 1 40258 100. 5 2512 1 40259 100 40,259 reserve() calls, total items = 3,265,051 Untyped: 102,028 Typed + Str + Slab: 102,028