Percentage of allocs less than 48 bytes: 90.8 All allocations # A tibble: 22 × 4 obj_len n n_less_than percent 1 9 2738 2738 2.50 2 10 73 2811 2.57 3 11 1002 3813 3.48 4 12 9 3822 3.49 5 13 1 3823 3.49 6 16 7865 11688 10.7 7 18 16227 27915 25.5 8 19 807 28722 26.2 9 20 1502 30224 27.6 10 21 711 30935 28.3 11 22 519 31454 28.7 12 23 580 32034 29.3 13 24 29971 62005 56.6 14 25 2568 64573 59.0 15 26 1709 66282 60.5 16 27 184 66466 60.7 17 28 159 66625 60.8 18 29 157 66782 61.0 19 30 122 66904 61.1 20 31 104 67008 61.2 21 32 5307 72315 66.0 22 33 341 72656 66.4 # A tibble: 5 × 4 obj_len n n_less_than percent 1 1024 8 109491 100. 2 1032 6 109497 100. 3 1041 1 109498 100. 4 4096 2 109500 100. 5 4113 2 109502 100 Common Sizes # A tibble: 8 × 2 obj_len n 1 24 29971 2 48 21736 3 18 16227 4 16 7865 5 32 5307 6 40 4239 7 64 3418 8 9 2738 109,502 total allocations, total bytes = 3,906,797 Typed allocations # A tibble: 20 × 3 func_name n percent 1 List* Alloc>() 6457 12.2 2 runtime_asdl::Piece* Alloc* Alloc* Alloc… 2434 4.59 7 runtime_asdl::Piece* Alloc* Alloc… 1647 3.10 10 List* Alloc>() 1080 2.04 11 runtime_asdl::VarSubState* Alloc* Alloc>() 956 1.80 13 runtime_asdl::Piece* Alloc* Alloc* Alloc*>* Alloc… 906 1.71 17 args::SetToInt* Alloc(BigStr*&&) 901 1.70 18 value_asdl::value__Int* Alloc(in… 901 1.70 19 value_asdl::value__Str* Alloc 1 value_asdl::value__List* Alloc 48.45% of allocs are typed Str - NewStr() and OverAllocatedStr() # A tibble: 16 × 4 str_len n n_less_than percent 1 0 275 275 0.985 2 1 16227 16502 59.1 3 2 807 17309 62.0 4 3 1429 18738 67.1 5 4 711 19449 69.7 6 5 519 19968 71.5 7 6 580 20548 73.6 8 7 493 21041 75.4 9 8 2568 23609 84.6 10 9 1709 25318 90.7 11 10 184 25502 91.4 12 11 152 25654 91.9 13 12 157 25811 92.5 14 13 122 25933 92.9 15 14 104 26037 93.3 16 15 77 26114 93.5 # A tibble: 5 × 4 str_len n n_less_than percent 1 160 1 27911 100. 2 202 1 27912 100. 3 255 1 27913 100. 4 1024 1 27914 100. 5 4096 2 27916 100 27,916 string allocations, total length = 148,717, total bytes = 623,289 25.49% of allocs are strings 15.95% of bytes are strings NewSlab() Lengths # A tibble: 6 × 4 slab_len n n_less_than percent 1 5 16803 16803 58.3 2 7 3043 19846 68.9 3 8 1530 21376 74.2 4 10 1156 22532 78.2 5 14 349 22881 79.4 6 15 2271 25152 87.3 # A tibble: 5 × 4 slab_len n n_less_than percent 1 127 11 28758 99.8 2 128 36 28794 100. 3 254 1 28795 100. 4 256 6 28801 100. 5 1022 2 28803 100 Slab Types # A tibble: 6 × 2 func_name n 1 Slab* NewSlab(int) 9422 2 Slab* NewSlab(int) 5675 3 Slab* NewSlab… 4129 4 Slab* NewSlab(int) 2430 5 Slab* NewSlab(i… 1778 6 Slab* NewSlab(int) 956 # A tibble: 5 × 2 func_name n 1 Slab* NewSlab… 1 2 Slab* NewSlab(i… 1 3 Slab* NewSlab(int) 1 4 Slab* NewSlab(int) 1 5 Slab* NewSlab(int) 1 28,803 slabs, total items = 297,953 26.30% of allocs are slabs ::reserve(int n) Num Items # A tibble: 15 × 4 num_items n n_less_than percent 1 0 5 5 0.00766 2 1 18676 18681 28.6 3 2 7001 25682 39.3 4 3 5722 31404 48.1 5 4 3314 34718 53.2 6 5 3244 37962 58.1 7 6 3352 41314 63.3 8 7 2515 43829 67.1 9 8 2984 46813 71.7 10 9 1647 48460 74.2 11 10 1998 50458 77.3 12 11 1002 51460 78.8 13 12 857 52317 80.1 14 13 829 53146 81.4 15 14 740 53886 82.5 # A tibble: 5 × 4 num_items n n_less_than percent 1 77 15 65286 100. 2 78 8 65294 100. 3 108 2 65296 100. 4 179 1 65297 100. 5 1022 2 65299 100 65,299 reserve() calls, total items = 614,242 Untyped: 109,502 Typed + Str + Slab: 109,777