Percentage of allocs less than 48 bytes: 95.2 All allocations # A tibble: 22 × 4 obj_len n n_less_than percent <int> <int> <int> <dbl> 1 9 37 37 0.0592 2 10 10 47 0.0752 3 11 1814 1861 2.98 4 12 1 1862 2.98 5 16 8908 10770 17.2 6 18 590 11360 18.2 7 19 2451 13811 22.1 8 20 17 13828 22.1 9 21 60 13888 22.2 10 22 32 13920 22.3 11 23 27 13947 22.3 12 24 21747 35694 57.1 13 25 55 35749 57.2 14 26 50 35799 57.3 15 27 75 35874 57.4 16 28 24 35898 57.4 17 29 28 35926 57.5 18 30 24 35950 57.5 19 31 14 35964 57.5 20 32 7178 43142 69.0 21 33 12 43154 69.0 22 34 2 43156 69.0 # A tibble: 5 × 4 obj_len n n_less_than percent <int> <int> <int> <dbl> 1 1024 8 62496 100. 2 1032 6 62502 100. 3 1041 1 62503 100. 4 4096 2 62505 100. 5 4113 2 62507 100 Common Sizes # A tibble: 8 × 2 obj_len n <int> <int> 1 24 21747 2 48 15735 3 16 8908 4 32 7178 5 19 2451 6 11 1814 7 64 1074 8 49 892 62,507 total allocations, total bytes = 2,030,487 Typed allocations # A tibble: 20 × 3 func_name n percent <chr> <int> <dbl> 1 List<BigStr*>* Alloc<List<BigStr*>>() 4658 11.3 2 List<runtime_asdl::part_value_t*>* Alloc<List<runtime_asdl::pa… 4086 9.88 3 runtime_asdl::CommandStatus* Alloc<runtime_asdl::CommandStatus… 3186 7.70 4 value_asdl::value__Str* Alloc<value_asdl::value__Str, BigStr*>… 2227 5.38 5 syntax_asdl::word__String* Alloc<syntax_asdl::word__String, in… 1844 4.46 6 runtime_asdl::Piece* Alloc<runtime_asdl::Piece, BigStr*&, bool… 1814 4.39 7 runtime_asdl::VarSubState* Alloc<runtime_asdl::VarSubState, bo… 1814 4.39 8 value_asdl::LeftName* Alloc<value_asdl::LeftName, BigStr*&, sy… 1803 4.36 9 syntax_asdl::loc__Arith* Alloc<syntax_asdl::loc__Arith, syntax… 1780 4.30 10 value_asdl::value__Str* Alloc<value_asdl::value__Str, BigStr*&… 996 2.41 11 List<syntax_asdl::CompoundWord*>* Alloc<List<syntax_asdl::Comp… 981 2.37 12 List<int>* Alloc<List<int>>() 952 2.30 13 mylib::BufWriter* Alloc<mylib::BufWriter>() 945 2.28 14 List<List<runtime_asdl::Piece*>*>* Alloc<List<List<runtime_asd… 932 2.25 15 List<Tuple2<runtime_asdl::span_e, int>*>* Alloc<List<Tuple2<ru… 932 2.25 16 List<mylib::BufWriter*>* Alloc<List<mylib::BufWriter*>>() 932 2.25 17 List<runtime_asdl::Piece*>* Alloc<List<runtime_asdl::Piece*>>() 932 2.25 18 Tuple2<runtime_asdl::span_e, int>* Alloc<Tuple2<runtime_asdl::… 932 2.25 19 syntax_asdl::loc__Word* Alloc<syntax_asdl::loc__Word, syntax_a… 922 2.23 20 runtime_asdl::Piece* Alloc<runtime_asdl::Piece, BigStr*, bool&… 890 2.15 # A tibble: 5 × 3 func_name n percent <chr> <int> <dbl> 1 value_asdl::value__List* Alloc<value_asdl::value__List, List<va… 1 0.00242 2 word_eval::CompletionWordEvaluator* Alloc<word_eval::Completion… 1 0.00242 3 word_eval::NormalWordEvaluator* Alloc<word_eval::NormalWordEval… 1 0.00242 4 word_eval::TildeEvaluator* Alloc<word_eval::TildeEvaluator, sta… 1 0.00242 5 word_parse::WordParser* Alloc<word_parse::WordParser, parse_lib… 1 0.00242 41,361 typed allocs, including 16,381 List<T> 66.17% of allocs are typed Str - NewStr() and OverAllocatedStr() # A tibble: 16 × 4 str_len n n_less_than percent <int> <int> <int> <dbl> 1 1 590 590 13.2 2 2 2451 3041 67.9 3 3 17 3058 68.3 4 4 60 3118 69.6 5 5 32 3150 70.3 6 6 27 3177 70.9 7 7 54 3231 72.1 8 8 55 3286 73.3 9 9 50 3336 74.5 10 10 75 3411 76.1 11 11 17 3428 76.5 12 12 28 3456 77.1 13 13 24 3480 77.7 14 14 14 3494 78.0 15 15 9 3503 78.2 16 16 12 3515 78.5 # A tibble: 5 × 4 str_len n n_less_than percent <int> <int> <int> <dbl> 1 134 1 4475 99.9 2 202 1 4476 99.9 3 255 1 4477 99.9 4 1024 1 4478 100. 5 4096 2 4480 100 4,480 string allocations, total length = 50,064, total bytes = 126,224 7.17% of allocs are strings 6.22% of bytes are strings NewSlab() Lengths # A tibble: 6 × 4 slab_len n n_less_than percent <int> <int> <int> <dbl> 1 5 13984 13984 83.9 2 7 525 14509 87.1 3 8 49 14558 87.4 4 10 1086 15644 93.9 5 14 78 15722 94.3 6 15 53 15775 94.7 # A tibble: 5 × 4 slab_len n n_less_than percent <int> <int> <int> <dbl> 1 127 11 16621 99.7 2 128 36 16657 99.9 3 254 1 16658 100. 4 256 6 16664 100. 5 1022 2 16666 100 Slab Types # A tibble: 6 × 2 func_name n <chr> <int> 1 Slab<BigStr*>* NewSlab<BigStr*>(int) 4744 2 Slab<runtime_asdl::part_value_t*>* NewSlab<runtime_asdl::part_value_t*>… 4086 3 Slab<int>* NewSlab<int>(int) 1623 4 Slab<syntax_asdl::CompoundWord*>* NewSlab<syntax_asdl::CompoundWord*>(i… 1422 5 Slab<List<runtime_asdl::Piece*>*>* NewSlab<List<runtime_asdl::Piece*>*>… 932 6 Slab<Tuple2<runtime_asdl::span_e, int>*>* NewSlab<Tuple2<runtime_asdl::… 932 # A tibble: 5 × 2 func_name n <chr> <int> 1 Slab<syntax_asdl::debug_frame_t*>* NewSlab<syntax_asdl::debug_frame_t*>… 1 2 Slab<syntax_asdl::loc_t*>* NewSlab<syntax_asdl::loc_t*>(int) 1 3 Slab<value_asdl::regex_match_t*>* NewSlab<value_asdl::regex_match_t*>(i… 1 4 Slab<value_asdl::value__Dict*>* NewSlab<value_asdl::value__Dict*>(int) 1 5 Slab<vm::_AssignBuiltin*>* NewSlab<vm::_AssignBuiltin*>(int) 1 16,666 slabs, total items = 129,305 26.66% of allocs are slabs ::reserve(int n) Num Items # A tibble: 15 × 4 num_items n n_less_than percent <int> <int> <int> <dbl> 1 0 5 5 0.0154 2 1 20651 20656 63.5 3 2 4247 24903 76.6 4 3 1684 26587 81.8 5 4 2401 28988 89.2 6 5 2724 31712 97.5 7 6 519 32231 99.1 8 7 25 32256 99.2 9 8 39 32295 99.3 10 9 21 32316 99.4 11 10 19 32335 99.4 12 11 46 32381 99.6 13 12 8 32389 99.6 14 13 6 32395 99.6 15 14 7 32402 99.7 # A tibble: 5 × 4 num_items n n_less_than percent <int> <int> <int> <dbl> 1 63 1 32505 100. 2 64 5 32510 100. 3 107 2 32512 100. 4 179 1 32513 100. 5 1022 2 32515 100 32,515 reserve() calls, total items = 67,160 Untyped: 62,507 Typed + Str + Slab: 62,507