Percentage of allocs less than 48 bytes: 90.8 All allocations # A tibble: 22 × 4 obj_len n n_less_than percent 1 9 39 39 0.0244 2 10 2 41 0.0257 3 11 2005 2046 1.28 4 12 1 2047 1.28 5 16 14757 16804 10.5 6 18 312 17116 10.7 7 19 2366 19482 12.2 8 20 3615 23097 14.5 9 21 4076 27173 17.0 10 22 1036 28209 17.7 11 23 1025 29234 18.3 12 24 51147 80381 50.3 13 25 1058 81439 51.0 14 26 4045 85484 53.5 15 27 32 85516 53.5 16 28 26 85542 53.5 17 29 29 85571 53.6 18 30 26 85597 53.6 19 31 17 85614 53.6 20 32 14256 99870 62.5 21 33 10 99880 62.5 22 34 3 99883 62.5 # A tibble: 5 × 4 obj_len n n_less_than percent 1 1024 8 159744 100. 2 1032 6 159750 100. 3 1041 1 159751 100. 4 4096 2 159753 100. 5 4113 2 159755 100 Common Sizes # A tibble: 8 × 2 obj_len n 1 24 51147 2 48 42983 3 16 14757 4 32 14256 5 64 4165 6 21 4076 7 26 4045 8 20 3615 159,755 total allocations, total bytes = 6,336,012 Typed allocations # A tibble: 20 × 3 func_name n percent 1 List* Alloc>() 10090 11.3 2 List* Alloc* Alloc* Alloc>() 3021 3.38 8 mylib::BufWriter* Alloc() 3007 3.36 9 List*>* Alloc* Alloc>() 3004 3.36 11 List*>* Alloc* Alloc>() 3002 3.36 13 Tuple2* Alloc… 2004 2.24 18 runtime_asdl::Piece* Alloc 1 value_asdl::value__Proc* Alloc 55.99% of allocs are typed Str - NewStr() and OverAllocatedStr() # A tibble: 16 × 4 str_len n n_less_than percent 1 1 312 312 1.75 2 2 2366 2678 15.0 3 3 3615 6293 35.4 4 4 4076 10369 58.3 5 5 1036 11405 64.1 6 6 1025 12430 69.8 7 7 53 12483 70.1 8 8 1058 13541 76.1 9 9 4045 17586 98.8 10 10 32 17618 99.0 11 11 17 17635 99.1 12 12 29 17664 99.3 13 13 26 17690 99.4 14 14 17 17707 99.5 15 15 7 17714 99.5 16 16 10 17724 99.6 # A tibble: 5 × 4 str_len n n_less_than percent 1 134 1 17791 100. 2 202 1 17792 100. 3 255 1 17793 100. 4 1024 1 17794 100. 5 4096 2 17796 100 17,796 string allocations, total length = 102,498, total bytes = 405,030 11.14% of allocs are strings 6.39% of bytes are strings NewSlab() Lengths # A tibble: 6 × 4 slab_len n n_less_than percent 1 5 36659 36659 69.8 2 7 3076 39735 75.7 3 8 1042 40777 77.7 4 10 3153 43930 83.7 5 14 78 44008 83.8 6 15 2064 46072 87.7 # A tibble: 5 × 4 slab_len n n_less_than percent 1 127 11 52467 99.9 2 128 36 52503 100. 3 254 1 52504 100. 4 256 6 52510 100. 5 1022 2 52512 100 Slab Types # A tibble: 6 × 2 func_name n 1 Slab* NewSlab(int) 18190 2 Slab* NewSlab… 8010 3 Slab* NewSlab(int) 7693 4 Slab* NewSlab(i… 5033 5 Slab*>* NewSlab*>… 3004 6 Slab* NewSlab(int) 3003 # A tibble: 5 × 2 func_name n 1 Slab* NewSlab(int) 1 2 Slab* NewSlab(i… 1 3 Slab* NewSlab(int) 1 4 Slab* NewSlab(int) 1 5 Slab* NewSlab(int) 1 52,512 slabs, total items = 515,148 32.87% of allocs are slabs ::reserve(int n) Num Items # A tibble: 15 × 4 num_items n n_less_than percent 1 0 9 9 0.00954 2 1 46591 46600 49.4 3 2 13221 59821 63.4 4 3 10027 69848 74.1 5 4 11087 80935 85.8 6 5 5048 85983 91.2 7 6 3055 89038 94.4 8 7 1017 90055 95.5 9 8 2035 92090 97.7 10 9 1013 93103 98.7 11 10 8 93111 98.7 12 11 45 93156 98.8 13 12 7 93163 98.8 14 13 5 93168 98.8 15 14 6 93174 98.8 # A tibble: 5 × 4 num_items n n_less_than percent 1 63 1 94283 100. 2 64 5 94288 100. 3 111 2 94290 100. 4 179 1 94291 100. 5 1022 2 94293 100 94,293 reserve() calls, total items = 245,534 Untyped: 159,755 Typed + Str + Slab: 159,755