Percentage of allocs less than 48 bytes: 92.0 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 14763 16810 10.5 6 18 314 17124 10.7 7 19 2366 19490 12.2 8 20 3615 23105 14.5 9 21 4076 27181 17.0 10 22 1036 28217 17.7 11 23 1025 29242 18.3 12 24 51158 80400 50.3 13 25 1059 81459 51.0 14 26 4045 85504 53.5 15 27 32 85536 53.5 16 28 26 85562 53.5 17 29 29 85591 53.6 18 30 26 85617 53.6 19 31 17 85634 53.6 20 32 14255 99889 62.5 21 33 10 99899 62.5 22 34 3 99902 62.5 # A tibble: 5 × 4 obj_len n n_less_than percent 1 1024 8 159771 100. 2 1032 6 159777 100. 3 1041 1 159778 100. 4 4096 2 159780 100. 5 4113 2 159782 100 Common Sizes # A tibble: 8 × 2 obj_len n 1 24 51158 2 48 42988 3 16 14763 4 32 14255 5 64 4165 6 40 4108 7 21 4076 8 26 4045 159,782 total allocations, total bytes = 6,304,689 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 314 314 1.76 2 2 2366 2680 15.1 3 3 3615 6295 35.4 4 4 4076 10371 58.3 5 5 1036 11407 64.1 6 6 1025 12432 69.8 7 7 53 12485 70.1 8 8 1059 13544 76.1 9 9 4045 17589 98.8 10 10 32 17621 99.0 11 11 17 17638 99.1 12 12 29 17667 99.3 13 13 26 17693 99.4 14 14 17 17710 99.5 15 15 7 17717 99.5 16 16 10 17727 99.6 # A tibble: 5 × 4 str_len n n_less_than percent 1 134 1 17794 100. 2 202 1 17795 100. 3 255 1 17796 100. 4 1024 1 17797 100. 5 4096 2 17799 100 17,799 string allocations, total length = 102,508, total bytes = 405,091 11.14% of allocs are strings 6.43% of bytes are strings NewSlab() Lengths # A tibble: 6 × 4 slab_len n n_less_than percent 1 5 36662 36662 69.8 2 7 3076 39738 75.7 3 8 1044 40782 77.7 4 10 3153 43935 83.7 5 14 78 44013 83.8 6 15 2064 46077 87.7 # A tibble: 5 × 4 slab_len n n_less_than percent 1 127 11 52472 99.9 2 128 36 52508 100. 3 254 1 52509 100. 4 256 6 52515 100. 5 1022 2 52517 100 Slab Types # A tibble: 6 × 2 func_name n 1 Slab* NewSlab(int) 18191 2 Slab* NewSlab… 8010 3 Slab* NewSlab(int) 7695 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,517 slabs, total items = 515,179 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 46592 46601 49.4 3 2 13221 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 2035 92091 97.7 10 9 1013 93104 98.7 11 10 8 93112 98.7 12 11 46 93158 98.8 13 12 7 93165 98.8 14 13 5 93170 98.8 15 14 6 93176 98.8 # A tibble: 5 × 4 num_items n n_less_than percent 1 63 1 94285 100. 2 64 5 94290 100. 3 113 2 94292 100. 4 179 1 94293 100. 5 1022 2 94295 100 94,295 reserve() calls, total items = 245,550 Untyped: 159,782 Typed + Str + Slab: 159,782