Percentage of allocs less than 48 bytes: 96.3

All allocations
# A tibble: 22 × 4
   obj_len     n n_less_than percent
     <int> <int>       <int>   <dbl>
 1       9    17          17  0.0167
 2      12    62          79  0.0775
 3      16 10831       10910 10.7   
 4      18  2916       13826 13.6   
 5      19   339       14165 13.9   
 6      20   408       14573 14.3   
 7      21   518       15091 14.8   
 8      22   648       15739 15.4   
 9      23   392       16131 15.8   
10      24 31424       47555 46.7   
11      25   283       47838 46.9   
12      26   184       48022 47.1   
13      27   218       48240 47.3   
14      28   254       48494 47.6   
15      29   131       48625 47.7   
16      30    94       48719 47.8   
17      31    83       48802 47.9   
18      32 25032       73834 72.4   
19      33    99       73933 72.5   
20      34    70       74003 72.6   
21      35    59       74062 72.7   
22      36    72       74134 72.7   
# A tibble: 5 × 4
  obj_len     n n_less_than percent
    <int> <int>       <int>   <dbl>
1    4096     3      101931    100.
2    4113     1      101932    100.
3    8192     1      101933    100.
4   16384     1      101934    100.
5   32768     1      101935    100 

Common Sizes
# A tibble: 8 × 2
  obj_len     n
    <int> <int>
1      24 31424
2      32 25032
3      48 22725
4      16 10831
5      18  2916
6      56  1243
7      40   799
8      64   761

    101,935 total allocations, total bytes = 3,445,842

Typed allocations
# A tibble: 20 × 3
   func_name                                                           n percent
   <chr>                                                           <int>   <dbl>
 1 syntax_asdl::Token* Alloc<syntax_asdl::Token, int&, int&, int&… 20862  29.7  
 2 List<syntax_asdl::word_part_t*>* Alloc<List<syntax_asdl::word_…  7358  10.5  
 3 syntax_asdl::CompoundWord* Alloc<syntax_asdl::CompoundWord, Li…  6143   8.75 
 4 List<BigStr*>* Alloc<List<BigStr*>>()                            4521   6.44 
 5 List<syntax_asdl::CompoundWord*>* Alloc<List<syntax_asdl::Comp…  3271   4.66 
 6 List<syntax_asdl::command_t*>* Alloc<List<syntax_asdl::command…  3227   4.60 
 7 List<syntax_asdl::word_t*>* Alloc<List<syntax_asdl::word_t*>>()  2634   3.75 
 8 syntax_asdl::SourceLine* Alloc<syntax_asdl::SourceLine, int&, …  2512   3.58 
 9 List<syntax_asdl::Redir*>* Alloc<List<syntax_asdl::Redir*>>()    1687   2.40 
10 List<syntax_asdl::ParsedAssignment*>* Alloc<List<syntax_asdl::…  1589   2.26 
11 syntax_asdl::SimpleVarSub* Alloc<syntax_asdl::SimpleVarSub, sy…  1327   1.89 
12 List<Tuple2<BigStr*, int>*>* Alloc<List<Tuple2<BigStr*, int>*>…  1291   1.84 
13 List<syntax_asdl::EnvPair*>* Alloc<List<syntax_asdl::EnvPair*>…  1202   1.71 
14 syntax_asdl::command__Simple* Alloc<syntax_asdl::command__Simp…  1202   1.71 
15 syntax_asdl::loc__Word* Alloc<syntax_asdl::loc__Word, syntax_a…  1202   1.71 
16 syntax_asdl::DoubleQuoted* Alloc<syntax_asdl::DoubleQuoted, sy…  1072   1.53 
17 List<int>* Alloc<List<int>>()                                     909   1.30 
18 syntax_asdl::command__CommandList* Alloc<syntax_asdl::command_…   723   1.03 
19 List<syntax_asdl::Token*>* Alloc<List<syntax_asdl::Token*>>()     582   0.829
20 Tuple2<int, int>* Alloc<Tuple2<int, int>, int, int>(int&&, int…   559   0.797
# A tibble: 5 × 3
  func_name                                                            n percent
  <chr>                                                            <int>   <dbl>
1 value_asdl::value__List* Alloc<value_asdl::value__List, List<va…     1 0.00143
2 value_asdl::value__List* Alloc<value_asdl::value__List, List<va…     1 0.00143
3 word_eval::CompletionWordEvaluator* Alloc<word_eval::Completion…     1 0.00143
4 word_eval::NormalWordEvaluator* Alloc<word_eval::NormalWordEval…     1 0.00143
5 word_eval::TildeEvaluator* Alloc<word_eval::TildeEvaluator, sta…     1 0.00143

70,175 typed allocs, including 29,371 List<T>
68.84% of allocs are typed

Str - NewStr() and OverAllocatedStr()
# A tibble: 16 × 4
   str_len     n n_less_than percent
     <int> <int>       <int>   <dbl>
 1       1  2916        2916    33.7
 2       2   339        3255    37.6
 3       3   408        3663    42.3
 4       4   518        4181    48.3
 5       5   648        4829    55.8
 6       6   392        5221    60.3
 7       7   300        5521    63.7
 8       8   283        5804    67.0
 9       9   184        5988    69.1
10      10   218        6206    71.7
11      11   247        6453    74.5
12      12   131        6584    76.0
13      13    94        6678    77.1
14      14    83        6761    78.1
15      15    85        6846    79.0
16      16    99        6945    80.2
# A tibble: 5 × 4
  str_len     n n_less_than percent
    <int> <int>       <int>   <dbl>
1     202     1        8657    100.
2     255     1        8658    100.
3     358     1        8659    100.
4    1024     1        8660    100.
5    4096     1        8661    100 

8,661 string allocations, total length = 102,372, total bytes = 249,609

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
     <int> <int>       <int>   <dbl>
1        5 20800       20800    90.0
2        7   442       21242    92.0
3        8    28       21270    92.1
4       10  1048       22318    96.6
5       14    78       22396    97.0
6       15   222       22618    97.9
# A tibble: 5 × 4
  slab_len     n n_less_than percent
     <int> <int>       <int>   <dbl>
1      511     1       23094    100.
2     1022     2       23096    100.
3     1023     1       23097    100.
4     2047     1       23098    100.
5     4095     1       23099    100 

  Slab Types
# A tibble: 6 × 2
  func_name                                                                    n
  <chr>                                                                    <int>
1 Slab<syntax_asdl::word_part_t*>* NewSlab<syntax_asdl::word_part_t*>(int)  7554
2 Slab<BigStr*>* NewSlab<BigStr*>(int)                                      3252
3 Slab<syntax_asdl::CompoundWord*>* NewSlab<syntax_asdl::CompoundWord*>(i…  3215
4 Slab<syntax_asdl::command_t*>* NewSlab<syntax_asdl::command_t*>(int)      3158
5 Slab<syntax_asdl::word_t*>* NewSlab<syntax_asdl::word_t*>(int)            2783
6 Slab<int>* NewSlab<int>(int)                                              1564
# A tibble: 5 × 2
  func_name                                                                    n
  <chr>                                                                    <int>
1 Slab<state::_ArgFrame*>* NewSlab<state::_ArgFrame*>(int)                     1
2 Slab<syntax_asdl::debug_frame_t*>* NewSlab<syntax_asdl::debug_frame_t*>…     1
3 Slab<value_asdl::regex_match_t*>* NewSlab<value_asdl::regex_match_t*>(i…     1
4 Slab<value_asdl::value__Dict*>* NewSlab<value_asdl::value__Dict*>(int)       1
5 Slab<vm::_AssignBuiltin*>* NewSlab<vm::_AssignBuiltin*>(int)                 1

23,099 slabs, total items = 156,636
22.66% of allocs are slabs

::reserve(int n)

  Num Items
# A tibble: 15 × 4
   num_items     n n_less_than percent
       <int> <int>       <int>   <dbl>
 1         0     5           5  0.0124
 2         1 21365       21370 53.1   
 3         2  7613       28983 72.0   
 4         3  3015       31998 79.5   
 5         4  1926       33924 84.3   
 6         5   895       34819 86.5   
 7         6  1140       35959 89.4   
 8         7   258       36217 90.0   
 9         8   196       36413 90.5   
10         9   146       36559 90.9   
11        10   105       36664 91.1   
12        11   124       36788 91.4   
13        12    76       36864 91.6   
14        13    63       36927 91.8   
15        14    51       36978 91.9   
# A tibble: 5 × 4
  num_items     n n_less_than percent
      <int> <int>       <int>   <dbl>
1      2508     1       40236    100.
2      2509     1       40237    100.
3      2510     1       40238    100.
4      2511     1       40239    100.
5      2512     1       40240    100 

40,240 reserve() calls, total items = 3,264,991

Untyped: 101,935
Typed + Str + Slab: 101,935