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 51142 80358 50.3 13 25 1058 81416 51.0 14 26 4045 85461 53.5 15 27 32 85493 53.5 16 28 26 85519 53.5 17 29 29 85548 53.6 18 30 26 85574 53.6 19 31 17 85591 53.6 20 32 14255 99846 62.5 21 33 10 99856 62.5 22 34 3 99859 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 51142 2 48 42985 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,344 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 36660 36660 69.8 2 7 3076 39736 75.7 3 8 1042 40778 77.7 4 10 3153 43931 83.7 5 14 78 44009 83.8 6 15 2062 46071 87.7 # A tibble: 5 × 4 slab_len n n_less_than percent 1 127 11 52466 99.9 2 128 36 52502 100. 3 254 1 52503 100. 4 256 6 52509 100. 5 1022 2 52511 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… 5035 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,511 slabs, total items = 515,123 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 13223 59822 63.4 4 3 10027 69849 74.1 5 4 11087 80936 85.8 6 5 5048 85984 91.2 7 6 3055 89039 94.4 8 7 1017 90056 95.5 9 8 2033 92089 97.7 10 9 1011 93100 98.7 11 10 8 93108 98.7 12 11 45 93153 98.8 13 12 7 93160 98.8 14 13 5 93165 98.8 15 14 6 93171 98.8 # A tibble: 5 × 4 num_items n n_less_than percent 1 63 1 94280 100. 2 64 5 94285 100. 3 108 2 94287 100. 4 179 1 94288 100. 5 1022 2 94290 100 94,290 reserve() calls, total items = 245,497 Untyped: 159,730 Typed + Str + Slab: 159,730