Percentage of allocs less than 48 bytes: 90.8 All allocations # A tibble: 22 × 4 obj_len n n_less_than percent 1 9 35 35 0.0219 2 10 2 37 0.0232 3 11 2005 2042 1.28 4 12 1 2043 1.28 5 16 14755 16798 10.5 6 18 302 17100 10.7 7 19 2366 19466 12.2 8 20 3615 23081 14.5 9 21 4076 27157 17.0 10 22 1036 28193 17.7 11 23 1025 29218 18.3 12 24 51141 80359 50.3 13 25 1059 81418 51.0 14 26 4045 85463 53.5 15 27 32 85495 53.5 16 28 26 85521 53.5 17 29 29 85550 53.6 18 30 26 85576 53.6 19 31 17 85593 53.6 20 32 14255 99848 62.5 21 33 10 99858 62.5 22 34 3 99861 62.5 # A tibble: 5 × 4 obj_len n n_less_than percent 1 1024 8 159719 100. 2 1032 6 159725 100. 3 1041 1 159726 100. 4 4096 2 159728 100. 5 4113 2 159730 100 Common Sizes # A tibble: 8 × 2 obj_len n 1 24 51141 2 48 42983 3 16 14755 4 32 14255 5 64 4165 6 21 4076 7 26 4045 8 20 3615 159,730 total allocations, total bytes = 6,335,285 Typed allocations # A tibble: 20 × 3 func_name n percent 1 List* Alloc>() 10089 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 302 302 1.70 2 2 2366 2668 15.0 3 3 3615 6283 35.3 4 4 4076 10359 58.2 5 5 1036 11395 64.1 6 6 1025 12420 69.8 7 7 53 12473 70.1 8 8 1059 13532 76.1 9 9 4045 17577 98.8 10 10 32 17609 99.0 11 11 17 17626 99.1 12 12 29 17655 99.3 13 13 26 17681 99.4 14 14 17 17698 99.5 15 15 7 17705 99.5 16 16 10 17715 99.6 # A tibble: 5 × 4 str_len n n_less_than percent 1 134 1 17782 100. 2 202 1 17783 100. 3 255 1 17784 100. 4 1024 1 17785 100. 5 4096 2 17787 100 17,787 string allocations, total length = 102,496, total bytes = 404,875 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 36658 36658 69.8 2 7 3076 39734 75.7 3 8 1042 40776 77.7 4 10 3153 43929 83.7 5 14 78 44007 83.8 6 15 2062 46069 87.7 # A tibble: 5 × 4 slab_len n n_less_than percent 1 127 11 52464 99.9 2 128 36 52500 100. 3 254 1 52501 100. 4 256 6 52507 100. 5 1022 2 52509 100 Slab Types # A tibble: 6 × 2 func_name n 1 Slab* NewSlab(int) 18187 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,509 slabs, total items = 515,113 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.00955 2 1 46590 46599 49.4 3 2 13221 59820 63.4 4 3 10027 69847 74.1 5 4 11087 80934 85.8 6 5 5048 85982 91.2 7 6 3055 89037 94.4 8 7 1017 90054 95.5 9 8 2033 92087 97.7 10 9 1011 93098 98.7 11 10 8 93106 98.7 12 11 46 93152 98.8 13 12 7 93159 98.8 14 13 5 93164 98.8 15 14 6 93170 98.8 # A tibble: 5 × 4 num_items n n_less_than percent 1 63 1 94279 100. 2 64 5 94284 100. 3 109 2 94286 100. 4 179 1 94287 100. 5 1022 2 94289 100 94,289 reserve() calls, total items = 245,506 Untyped: 159,730 Typed + Str + Slab: 159,730