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 300 17098 10.7 7 19 2366 19464 12.2 8 20 3615 23079 14.4 9 21 4076 27155 17.0 10 22 1036 28191 17.6 11 23 1025 29216 18.3 12 24 51140 80356 50.3 13 25 1058 81414 51.0 14 26 4045 85459 53.5 15 27 32 85491 53.5 16 28 26 85517 53.5 17 29 29 85546 53.6 18 30 26 85572 53.6 19 31 17 85589 53.6 20 32 14255 99844 62.5 21 33 10 99854 62.5 22 34 3 99857 62.5 # A tibble: 5 × 4 obj_len n n_less_than percent 1 1024 8 159715 100. 2 1032 6 159721 100. 3 1041 1 159722 100. 4 4096 2 159724 100. 5 4113 2 159726 100 Common Sizes # A tibble: 8 × 2 obj_len n 1 24 51140 2 48 42983 3 16 14755 4 32 14255 5 64 4165 6 21 4076 7 26 4045 8 20 3615 159,726 total allocations, total bytes = 6,335,200 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 300 300 1.69 2 2 2366 2666 15.0 3 3 3615 6281 35.3 4 4 4076 10357 58.2 5 5 1036 11393 64.1 6 6 1025 12418 69.8 7 7 53 12471 70.1 8 8 1058 13529 76.1 9 9 4045 17574 98.8 10 10 32 17606 99.0 11 11 17 17623 99.1 12 12 29 17652 99.3 13 13 26 17678 99.4 14 14 17 17695 99.5 15 15 7 17702 99.5 16 16 10 17712 99.6 # A tibble: 5 × 4 str_len n n_less_than percent 1 134 1 17779 100. 2 202 1 17780 100. 3 255 1 17781 100. 4 1024 1 17782 100. 5 4096 2 17784 100 17,784 string allocations, total length = 102,486, total bytes = 404,814 11.13% 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 45 93151 98.8 13 12 7 93158 98.8 14 13 5 93163 98.8 15 14 6 93169 98.8 # A tibble: 5 × 4 num_items n n_less_than percent 1 63 1 94278 100. 2 64 5 94283 100. 3 108 2 94285 100. 4 179 1 94286 100. 5 1022 2 94288 100 94,288 reserve() calls, total items = 245,493 Untyped: 159,726 Typed + Str + Slab: 159,726