Profile Report

Thread ID Fiber ID Total Time
70191321319120 70191284159980 43.65826200000006

Thread 70191321319120, Fiber: 70191284159980

%Total %Self Total Self Wait Child Calls Name Line
100.00% 0.00% 43.66 0.00 0.00 43.66 1 Global#[No method] 26
    43.66 0.00 0.00 43.66 1/669819 Array#each 30
    0.00 0.00 0.00 0.00 1/1 <Class::Searches>#series_for 30
    0.00 0.00 0.00 0.00 1/100012 Kernel#respond_to? 26
    0.00 0.00 0.00 0.00 62359/669819 Enumerable#sort_by
    0.00 0.00 0.00 0.00 50000/669819 Kernel#loop
    0.00 0.00 0.00 0.00 5/669819 Searches#each 12
    0.00 0.00 0.00 0.00 407449/669819 Enumerable#inject
    0.00 0.00 0.00 0.00 1/669819 Picky::Categories#each 1
    0.00 0.00 0.00 0.00 50000/669819 Picky::Query::Allocations#each 1
    0.00 0.00 0.00 0.00 50000/669819 Enumerable#any?
    0.00 0.00 0.00 0.00 50000/669819 Picky::Query::Allocations#calculate_score 32
    0.00 0.00 0.00 0.00 4/669819 Picky::QualifierMapper#add 19
    43.66 0.00 0.00 43.66 1/669819 Global#[No method] 30
100.00% 0.00% 43.66 0.00 0.00 43.66 669819 *Array#each
    41.20 0.00 0.00 41.20 5/5 Searches#each
    40.24 0.17 0.00 40.07 50000/50000 Picky::Search#search
    11.28 0.39 0.00 10.89 150000/150000 Picky::Query::Token#possible_combinations
    7.47 1.32 0.00 6.14 600000/600000 Picky::Query::Token#combination_for
    4.62 0.21 0.00 4.41 62359/62359 Picky::Query::Allocation#process!
    3.18 0.27 0.00 2.91 67010/67010 Picky::Query::Allocation#calculate_score
    2.46 0.00 0.00 2.46 5/5 Searches#prepare
    0.42 0.24 0.00 0.19 206529/206529 Picky::Query::Combination#ids
    0.21 0.21 0.00 0.00 211195/211195 Picky::Query::Combination#weight
    0.13 0.10 0.00 0.03 100000/100012 Kernel#respond_to?
    0.08 0.08 0.00 0.00 144185/144205 Symbol#==
    0.05 0.03 0.00 0.02 23332/772141 Class#new
    0.04 0.04 0.00 0.00 67010/167010 Fixnum#+
    0.04 0.04 0.00 0.00 66186/245555 Array#empty?
    0.03 0.03 0.00 0.00 55262/61783 Fixnum#zero?
    0.00 0.00 0.00 0.00 4/4 Picky::QualifierMapper#add
    0.00 0.00 0.00 0.00 5/5 Picky::Search#terminate_early
    0.00 0.00 0.00 0.00 4/4 Symbol#intern
    0.00 0.00 0.00 0.00 4/4 Hash#[]=
    0.00 0.00 0.00 0.00 4/4 Hash#has_key?
    0.00 0.00 0.00 0.00 300000/1100005 String#=~
    0.00 0.00 0.00 0.00 300000/300000 String#[]
    41.20 0.00 0.00 41.20 5/5 Array#each
94.36% 0.00% 41.20 0.00 0.00 41.20 5 Searches#each 11
    0.00 0.00 0.00 0.00 5/669819 Array#each 12
    40.24 0.17 0.00 40.07 50000/50000 Array#each
92.17% 0.40% 40.24 0.17 0.00 40.07 50000 Picky::Search#search 215
    28.22 1.12 0.00 27.10 50000/50000 Picky::Search#search_with 216
    11.79 0.23 0.00 11.57 50000/50000 Picky::Search#tokenized 216
    0.06 0.06 0.00 0.00 100000/100000 Integer#to_i 216
    28.22 1.12 0.00 27.10 50000/50000 Picky::Search#search 216
64.63% 2.56% 28.22 1.12 0.00 27.10 50000 Picky::Search#search_with 223
    27.05 0.26 0.00 26.78 50000/50000 Picky::Helpers::Measuring#timed 226
    0.05 0.05 0.00 0.00 50000/50000 Float#round 229
    27.05 0.26 0.00 26.78 50000/50000 Picky::Search#search_with 226
61.96% 0.61% 27.05 0.26 0.00 26.78 50000 Picky::Helpers::Measuring#timed 10
    25.09 0.11 0.00 24.98 50000/50000 Proc#call 13
    1.28 1.04 0.00 0.24 100000/772141 Class#new 15
    0.38 0.15 0.00 0.24 50000/50000 Time#- 15
    0.03 0.03 0.00 0.00 50000/50000 Float#to_f 15
    25.09 0.11 0.00 24.98 50000/50000 Picky::Helpers::Measuring#timed 13
57.47% 0.24% 25.09 0.11 0.00 24.98 50000 Proc#call
    24.98 0.12 0.00 24.86 50000/50000 Picky::Search#execute
    24.98 0.12 0.00 24.86 50000/50000 Proc#call
57.23% 0.29% 24.98 0.12 0.00 24.86 50000 Picky::Search#execute 238
    19.29 0.09 0.00 19.20 50000/50000 Picky::Search#sorted_allocations 239
    5.57 0.16 0.00 5.41 50000/50000 <Class::Picky::Results>#from 239
    19.29 0.09 0.00 19.20 50000/50000 Picky::Search#execute 239
44.18% 0.20% 19.29 0.09 0.00 19.20 50000 Picky::Search#sorted_allocations 270
    19.20 0.32 0.00 18.88 50000/50000 Picky::Query::Indexes#prepared_allocations_for 271
    19.20 0.32 0.00 18.88 50000/50000 Picky::Search#sorted_allocations 271
43.98% 0.74% 19.20 0.32 0.00 18.88 50000 Picky::Query::Indexes#prepared_allocations_for 65
    14.53 0.10 0.00 14.42 50000/50000 Picky::Query::Indexes#allocations_for 66
    3.37 0.08 0.00 3.29 50000/50000 Picky::Query::Allocations#calculate_score 72
    0.98 0.08 0.00 0.90 50000/50000 Picky::Query::Allocations#sort! 84
    0.00 0.00 0.00 0.00 150000/407449 Picky::Categories#possible_for 40
    0.01 0.01 0.00 0.01 4554/407449 Picky::Query::Indexes#expand_combinations_from 191
    0.09 0.01 0.00 0.08 6516/407449 Array#collect!
    0.66 0.09 0.00 0.57 67010/407449 Picky::Query::Combinations#score 30
    0.83 0.09 0.00 0.74 67010/407449 Array#clustered_uniq 11
    1.11 0.09 0.00 1.02 62359/407449 Picky::Query::Combinations#inject 1
    12.35 0.08 0.00 12.28 50000/407449 Picky::Query::Tokens#possible_combinations_in 47
34.49% 0.82% 15.06 0.36 0.00 14.70 407449 *Enumerable#inject
    0.00 0.00 0.00 0.00 407449/669819 Array#each
    0.00 0.00 0.00 0.00 5/117055 <Class::Picky::Query::Indexes::Check>#check_backends 22
    0.00 0.00 0.00 0.00 40/117055 CSV#encode_str 2255
    0.51 0.29 0.00 0.22 67010/117055 Picky::Query::Boosts#boost_for 63
    14.06 0.10 0.00 13.96 50000/117055 Picky::Query::Indexes#allocations_ary_for 106
33.38% 0.89% 14.57 0.39 0.00 14.18 117055 Array#map
    13.96 0.18 0.00 13.77 50000/50000 Picky::Query::Indexes#allocation_for
    0.22 0.22 0.00 0.00 211195/211195 Picky::Query::Combination#category_name
    0.00 0.00 0.00 0.00 5/67015 Picky::Index#backend
    0.00 0.00 0.00 0.00 95/120 String#encode
    0.00 0.00 0.00 0.00 95/95 Encoding#name
    14.53 0.10 0.00 14.42 50000/50000 Picky::Query::Indexes#prepared_allocations_for 66
33.28% 0.24% 14.53 0.10 0.00 14.42 50000 Picky::Query::Indexes#allocations_for 102
    14.28 0.11 0.00 14.17 50000/50000 Picky::Query::Indexes#allocations_ary_for 103
    0.14 0.08 0.00 0.06 50000/772141 Class#new 103
    14.28 0.11 0.00 14.17 50000/50000 Picky::Query::Indexes#allocations_for 103
32.72% 0.26% 14.28 0.11 0.00 14.17 50000 Picky::Query::Indexes#allocations_ary_for 105
    14.06 0.10 0.00 13.96 50000/117055 Array#map 106
    0.12 0.12 0.00 0.00 50000/50000 Array#flatten 106
    13.96 0.18 0.00 13.77 50000/50000 Array#map
31.97% 0.42% 13.96 0.18 0.00 13.77 50000 Picky::Query::Indexes#allocation_for 111
    12.44 0.08 0.00 12.35 50000/50000 Picky::Query::Tokens#possible_combinations_in 114
    0.80 0.14 0.00 0.66 50000/50000 Array#map! 122
    0.54 0.15 0.00 0.39 50000/50000 Picky::Query::Indexes#expand_combinations_from 118
    12.44 0.08 0.00 12.35 50000/50000 Picky::Query::Indexes#allocation_for 114
28.49% 0.19% 12.44 0.08 0.00 12.35 50000 Picky::Query::Tokens#possible_combinations_in 46
    12.35 0.08 0.00 12.28 50000/407449 Enumerable#inject 47
    11.79 0.23 0.00 11.57 50000/50000 Picky::Search#search 216
27.01% 0.52% 11.79 0.23 0.00 11.57 50000 Picky::Search#tokenized 258
    6.75 0.13 0.00 6.62 50000/50000 <Class::Picky::Query::Tokens>#processed 260
    4.36 0.33 0.00 4.03 50000/50000 Picky::Tokenizer#tokenize 259
    0.46 0.16 0.00 0.29 50000/50000 Picky::Query::Tokens#partialize_last 262
    11.28 0.39 0.00 10.89 150000/150000 Array#each
25.83% 0.89% 11.28 0.39 0.00 10.89 150000 Picky::Query::Token#possible_combinations 250
    10.72 0.40 0.00 10.32 150000/150000 Picky::Categories#possible_for 251
    0.17 0.17 0.00 0.00 150000/150000 Picky::Query::Token#similar? 251
    10.72 0.40 0.00 10.32 150000/150000 Picky::Query::Token#possible_combinations 251
24.55% 0.91% 10.72 0.40 0.00 10.32 150000 Picky::Categories#possible_for 39
    1.52 0.33 0.00 1.19 150000/150000 Picky::Categories#possible_categories 40
    0.00 0.00 0.00 0.00 150000/407449 Enumerable#inject 40
    7.47 1.32 0.00 6.14 600000/600000 Array#each
17.10% 3.03% 7.47 1.32 0.00 6.14 600000 Picky::Query::Token#combination_for 258
    5.58 2.16 0.00 3.43 600000/600000 Picky::Category#weight 259
    0.56 0.22 0.00 0.34 164726/772141 Class#new 260
    0.14 0.03 0.00 0.10 4554/104554 Picky::Query::Indexes#expand_combinations_from 200
    0.36 0.27 0.00 0.09 50000/104554 Picky::Tokenizer#tokens_for 280
    6.38 0.52 0.00 5.86 50000/104554 <Class::Picky::Query::Tokens>#processed 29
15.76% 1.89% 6.88 0.83 0.00 6.05 104554 Array#collect!
    5.59 0.32 0.00 5.27 150000/150000 <Class::Picky::Query::Token>#processed
    0.27 0.27 0.00 0.00 150000/400000 String#split
    0.09 0.01 0.00 0.08 6516/407449 Enumerable#inject
    0.09 0.09 0.00 0.00 150000/150000 String#downcase!
    0.01 0.01 0.00 0.00 6516/6516 Array#*
    0.00 0.00 0.00 0.00 6516/61783 Fixnum#zero?
    6.75 0.13 0.00 6.62 50000/50000 Picky::Search#tokenized 260
15.46% 0.30% 6.75 0.13 0.00 6.62 50000 <Class::Picky::Query::Tokens>#processed 28
    6.38 0.52 0.00 5.86 50000/104554 Array#collect! 29
    0.16 0.08 0.00 0.08 50000/772141 Class#new 29
    0.07 0.07 0.00 0.00 50000/54554 Array#zip 29
    5.59 0.32 0.00 5.27 150000/150000 Array#collect!
12.80% 0.73% 5.59 0.32 0.00 5.27 150000 <Class::Picky::Query::Token>#processed 39
    4.73 0.92 0.00 3.81 150000/150000 Picky::Query::Token#process 40
    0.54 0.23 0.00 0.32 150000/772141 Class#new 40
    5.58 2.16 0.00 3.43 600000/600000 Picky::Query::Token#combination_for 259
12.79% 4.94% 5.58 2.16 0.00 3.43 600000 Picky::Category#weight 18
    1.77 0.95 0.00 0.83 600000/618685 Picky::Category#bundle_for 19
    1.00 1.00 0.00 0.00 600000/600000 Picky::Bundle#weight 28
    0.66 0.66 0.00 0.00 600000/618685 Picky::Query::Token#range 20
    5.57 0.16 0.00 5.41 50000/50000 Picky::Search#execute 239
12.76% 0.36% 5.57 0.16 0.00 5.41 50000 <Class::Picky::Results>#from 27
    5.21 0.11 0.00 5.10 50000/50000 Picky::Results#prepare! 29
    0.21 0.07 0.00 0.14 50000/772141 Class#new 28
    5.21 0.11 0.00 5.10 50000/50000 <Class::Picky::Results>#from 29
11.93% 0.25% 5.21 0.11 0.00 5.10 50000 Picky::Results#prepare! 38
    5.10 0.12 0.00 4.98 50000/50000 Picky::Query::Allocations#process! 41
    5.10 0.12 0.00 4.98 50000/50000 Picky::Results#prepare! 41
11.67% 0.27% 5.10 0.12 0.00 4.98 50000 Picky::Query::Allocations#process! 116
    4.98 0.09 0.00 4.89 50000/50000 Picky::Query::Allocations#each 117
    4.98 0.09 0.00 4.89 50000/50000 Picky::Query::Allocations#process! 117
11.40% 0.21% 4.98 0.09 0.00 4.89 50000 Picky::Query::Allocations#each 1
    0.00 0.00 0.00 0.00 50000/669819 Array#each 1
    4.73 0.92 0.00 3.81 150000/150000 <Class::Picky::Query::Token>#processed 40
10.83% 2.10% 4.73 0.92 0.00 3.81 150000 Picky::Query::Token#process 42
    1.15 1.00 0.00 0.16 150000/150000 Picky::Query::Token#qualify 43
    0.88 0.53 0.00 0.35 150000/150000 Picky::Query::Token#partialize 45
    0.84 0.45 0.00 0.39 150000/150000 Picky::Query::Token#similarize 44
    0.58 0.34 0.00 0.24 150000/150000 Picky::Query::Token#remove_illegals 47
    0.36 0.25 0.00 0.11 150000/150000 Picky::Query::Token#rangify 46
    4.62 0.21 0.00 4.41 62359/62359 Array#each
10.57% 0.48% 4.62 0.21 0.00 4.41 62359 Picky::Query::Allocation#process! 72
    4.36 0.19 0.00 4.18 62359/62359 Picky::Query::Allocation#calculate_ids 73
    0.04 0.04 0.00 0.00 62359/62359 Array#slice! 75
    4.36 0.19 0.00 4.18 62359/62359 Picky::Query::Allocation#process! 73
9.99% 0.43% 4.36 0.19 0.00 4.18 62359 Picky::Query::Allocation#calculate_ids 53
    4.04 0.52 0.00 3.52 62359/62359 Picky::Backends::Backend#ids 55
    0.14 0.10 0.00 0.03 62359/129369 Picky::Query::Combinations#empty? 54
    4.36 0.33 0.00 4.03 50000/50000 Picky::Search#tokenized 259
9.99% 0.76% 4.36 0.33 0.00 4.03 50000 Picky::Tokenizer#tokenize 235
    2.27 0.27 0.00 2.00 50000/50000 Picky::Tokenizer#pretokenize 238
    0.70 0.13 0.00 0.57 50000/200000 String#blank? 237
    0.58 0.16 0.00 0.42 50000/50000 Picky::Tokenizer#tokens_for 240
    0.44 0.21 0.00 0.23 50000/50000 Picky::Tokenizer#preprocess 236
    0.03 0.03 0.00 0.00 50000/50015 String#to_s 236
    4.04 0.52 0.00 3.52 62359/62359 Picky::Query::Allocation#calculate_ids 55
9.25% 1.19% 4.04 0.52 0.00 3.52 62359 Picky::Backends::Backend#ids 74
    2.30 0.85 0.00 1.45 62359/62359 <Class::Performant::Array>#memory_efficient_intersect 85
    1.22 0.11 0.00 1.11 62359/62359 Picky::Query::Combinations#inject 77
    0.00 0.00 0.00 0.00 1/772141 Picky::Tokenizer#splits_text_on 105
    0.00 0.00 0.00 0.00 1/772141 <Class::Picky::Tokenizer>#searching 24
    0.00 0.00 0.00 0.00 25/772141 CSV#encode_re 2247
    0.00 0.00 0.00 0.00 10/772141 CSV#init_converters 2083
    0.00 0.00 0.00 0.00 10/772141 Picky::Search#initialize 46
    0.00 0.00 0.00 0.00 5/772141 Range#each
    0.00 0.00 0.00 0.00 1/772141 Picky::Categories#qualifier_mapper 43
    0.00 0.00 0.00 0.00 10/772141 <Class::CSV>#open 1261
    0.03 0.03 0.00 0.00 50000/772141 CSV#shift 1772
    0.05 0.03 0.00 0.02 23332/772141 Array#each
    0.14 0.08 0.00 0.06 50000/772141 Picky::Query::Indexes#allocations_for 103
    0.16 0.08 0.00 0.08 50000/772141 <Class::Picky::Query::Tokens>#processed 29
    0.21 0.07 0.00 0.14 50000/772141 <Class::Picky::Results>#from 28
    0.54 0.23 0.00 0.32 150000/772141 <Class::Picky::Query::Token>#processed 40
    0.56 0.22 0.00 0.34 164726/772141 Picky::Query::Token#combination_for 260
    0.66 0.16 0.00 0.49 134020/772141 Array#map!
    1.28 1.04 0.00 0.24 100000/772141 Picky::Helpers::Measuring#timed 15
8.30% 4.43% 3.62 1.94 0.00 1.69 772141 *Class#new
    0.42 0.21 0.00 0.21 67010/67010 Picky::Query::Allocation#initialize
    0.34 0.34 0.00 0.00 164726/164726 Picky::Query::Combination#initialize
    0.32 0.32 0.00 0.00 150000/150000 Picky::Query::Token#initialize
    0.24 0.17 0.00 0.06 100000/100000 Time#initialize
    0.14 0.14 0.00 0.00 50000/50000 Picky::Results#initialize
    0.08 0.08 0.00 0.00 50000/50000 Picky::Query::Tokens#initialize
    0.07 0.07 0.00 0.00 67010/67010 Picky::Query::Combinations#initialize
    0.06 0.06 0.00 0.00 50000/50000 Picky::Query::Allocations#initialize
    0.02 0.02 0.00 0.00 73337/73337 Array#initialize
    0.00 0.00 0.00 0.00 5/5 CSV#initialize
    0.00 0.00 0.00 0.00 5/5 Picky::Search#initialize
    0.00 0.00 0.00 0.00 1/1 Picky::QualifierMapper#initialize
    0.00 0.00 0.00 0.00 5/5 Picky::Query::Indexes#initialize
    0.00 0.00 0.00 0.00 1/1 Picky::Tokenizer#initialize
    0.00 0.00 0.00 0.00 1/1 RegexpWrapper#initialize
    0.00 0.00 0.00 0.00 25/25 Regexp#initialize
    0.00 0.00 0.00 0.00 5/5 Picky::Query::Boosts#initialize
    0.00 0.00 0.00 0.00 5/5 Hash#initialize
    0.00 0.00 0.00 0.00 5/5 Searches#initialize
    3.37 0.08 0.00 3.29 50000/50000 Picky::Query::Indexes#prepared_allocations_for 72
7.72% 0.19% 3.37 0.08 0.00 3.29 50000 Picky::Query::Allocations#calculate_score 31
    0.00 0.00 0.00 0.00 50000/669819 Array#each 32
    3.18 0.27 0.00 2.91 67010/67010 Array#each
7.29% 0.62% 3.18 0.27 0.00 2.91 67010 Picky::Query::Allocation#calculate_score 39
    1.86 0.10 0.00 1.76 67010/67010 Picky::Query::Combinations#boost_for 43
    0.86 0.10 0.00 0.76 67010/67010 Picky::Backends::Backend#weight 43
    0.15 0.11 0.00 0.04 67010/129369 Picky::Query::Combinations#empty? 44
    0.04 0.04 0.00 0.00 67010/67010 Float#+ 43
    2.46 0.00 0.00 2.46 5/5 Array#each
5.63% 0.00% 2.46 0.00 0.00 2.46 5 Searches#prepare 15
    2.46 0.74 0.00 1.72 5/5 CSV#each 19
    0.00 0.00 0.00 0.00 5/5 <Class::CSV>#open 19
    2.46 0.74 0.00 1.72 5/5 Searches#prepare 19
5.63% 1.70% 2.46 0.74 0.00 1.72 5 CSV#each 1714
    1.62 0.15 0.00 1.47 50000/50000 CSV#shift 28
    0.10 0.10 0.00 0.00 50000/50000 Integer#times 23
    0.00 0.00 0.00 0.00 50000/50040 Array#join 27
    0.00 0.00 0.00 0.00 50000/50000 Array#first 21
    0.00 0.00 0.00 0.00 50000/154554 Array#shift 26
    0.00 0.00 0.00 0.00 5/15 Kernel#block_given? 1715
    2.30 0.85 0.00 1.45 62359/62359 Picky::Backends::Backend#ids 85
5.27% 1.96% 2.30 0.85 0.00 1.45 62359 <Class::Performant::Array>#memory_efficient_intersect
    1.45 0.09 0.00 1.36 62359/62359 Array#sort_by!
    2.27 0.27 0.00 2.00 50000/50000 Picky::Tokenizer#tokenize 238
5.19% 0.62% 2.27 0.27 0.00 2.00 50000 Picky::Tokenizer#pretokenize 269
    1.23 0.08 0.00 1.14 50000/50000 Picky::Tokenizer#reject 272
    0.64 0.08 0.00 0.56 50000/50000 Picky::Tokenizer#split 270
    0.06 0.06 0.00 0.00 50000/50000 Picky::Tokenizer#cap? 273
    0.06 0.06 0.00 0.00 50000/50000 Picky::Tokenizer#normalize_with_patterns? 271
    1.86 0.10 0.00 1.76 67010/67010 Picky::Query::Allocation#calculate_score 43
4.27% 0.24% 1.86 0.10 0.00 1.76 67010 Picky::Query::Combinations#boost_for 32
    1.76 0.14 0.00 1.62 67010/67010 Picky::Query::Boosts#boost_for 33
    0.05 0.03 0.00 0.02 18685/618685 Picky::Category#ids 35
    1.77 0.95 0.00 0.83 600000/618685 Picky::Category#weight 19
4.18% 2.24% 1.83 0.98 0.00 0.85 618685 Picky::Category#bundle_for 54
    0.85 0.85 0.00 0.00 618685/618685 Picky::Query::Token#select_bundle 56
    1.76 0.14 0.00 1.62 67010/67010 Picky::Query::Combinations#boost_for 33
4.03% 0.31% 1.76 0.14 0.00 1.62 67010 Picky::Query::Boosts#boost_for 62
    1.11 0.11 0.00 1.00 67010/67010 Picky::Query::Boosts#boost_for_categories 63
    0.51 0.29 0.00 0.22 67010/117055 Array#map 63
    0.70 0.13 0.00 0.57 50000/200000 Picky::Tokenizer#tokenize 237
    1.00 0.39 0.00 0.61 150000/200000 Array#reject!
3.90% 1.19% 1.70 0.52 0.00 1.18 200000 String#blank? 102
    0.98 0.26 0.00 0.72 200000/200000 Kernel#!~ 105
    0.20 0.20 0.00 0.00 200000/200000 String#encoding_aware? 104
    1.62 0.15 0.00 1.47 50000/50000 CSV#each 28
3.70% 0.35% 1.62 0.15 0.00 1.47 50000 CSV#shift 1751
    1.44 0.55 0.00 0.89 50000/50000 Kernel#loop 1774
    0.03 0.03 0.00 0.00 50000/772141 Class#new 1772
    0.00 0.00 0.00 0.00 50000/50000 CSV#header_row? 1758
    1.52 0.33 0.00 1.19 150000/150000 Picky::Categories#possible_for 40
3.48% 0.75% 1.52 0.33 0.00 1.19 150000 Picky::Categories#possible_categories 53
    1.02 0.24 0.00 0.78 150000/150000 Picky::Query::Token#predefined_categories 54
    0.17 0.17 0.00 0.00 150000/150000 Picky::Categories#qualifier_mapper 54
    0.00 0.00 0.00 0.00 5/1100005 CSV#init_separators 1985
    0.00 0.00 0.00 0.00 300000/1100005 Array#each
    0.35 0.35 0.00 0.00 300000/1100005 Picky::Query::Token#partialize 125
    0.39 0.39 0.00 0.00 300000/1100005 Picky::Query::Token#similarize 170
    0.72 0.72 0.00 0.00 200000/1100005 Kernel#!~
3.35% 3.35% 1.46 1.46 0.00 0.00 1100005 String#=~
    1.45 0.09 0.00 1.36 62359/62359 <Class::Performant::Array>#memory_efficient_intersect
3.31% 0.21% 1.45 0.09 0.00 1.36 62359 Array#sort_by!
    1.36 1.19 0.00 0.17 62359/62359 Enumerable#sort_by
    1.44 0.55 0.00 0.89 50000/50000 CSV#shift 1774
3.30% 1.26% 1.44 0.55 0.00 0.89 50000 Kernel#loop
    0.00 0.00 0.00 0.00 50000/669819 Array#each
    0.00 0.00 0.00 0.00 50000/400000 String#split
    0.00 0.00 0.00 0.00 50000/50000 String#sub!
    0.00 0.00 0.00 0.00 50000/50005 IO#gets
    1.36 1.19 0.00 0.17 62359/62359 Array#sort_by!
3.11% 2.72% 1.36 1.19 0.00 0.17 62359 Enumerable#sort_by
    0.12 0.12 0.00 0.00 218626/218626 Fixnum#<=>
    0.00 0.00 0.00 0.00 62359/669819 Array#each
    1.23 0.08 0.00 1.14 50000/50000 Picky::Tokenizer#pretokenize 272
2.81% 0.19% 1.23 0.08 0.00 1.14 50000 Picky::Tokenizer#reject 163
    1.14 0.15 0.00 1.00 50000/50000 Array#reject! 164
    1.22 0.11 0.00 1.11 62359/62359 Picky::Backends::Backend#ids 77
2.79% 0.25% 1.22 0.11 0.00 1.11 62359 Picky::Query::Combinations#inject 1
    1.11 0.09 0.00 1.02 62359/407449 Enumerable#inject 1
    1.15 1.00 0.00 0.16 150000/150000 Picky::Query::Token#process 43
2.65% 2.28% 1.15 1.00 0.00 0.16 150000 Picky::Query::Token#qualify 278
    0.16 0.16 0.00 0.00 150000/400000 String#split 279
    1.14 0.15 0.00 1.00 50000/50000 Picky::Tokenizer#reject 164
2.62% 0.34% 1.14 0.15 0.00 1.00 50000 Array#reject!
    1.00 0.39 0.00 0.61 150000/200000 String#blank?
    1.11 0.11 0.00 1.00 67010/67010 Picky::Query::Boosts#boost_for 63
2.55% 0.25% 1.11 0.11 0.00 1.00 67010 Picky::Query::Boosts#boost_for_categories 49
    1.00 0.17 0.00 0.83 67010/67010 Array#clustered_uniq 50
    1.02 0.24 0.00 0.78 150000/150000 Picky::Categories#possible_categories 54
2.34% 0.55% 1.02 0.24 0.00 0.78 150000 Picky::Query::Token#predefined_categories 67
    0.78 0.38 0.00 0.40 150000/150000 Picky::Query::Token#extract_predefined 68
    1.00 0.17 0.00 0.83 67010/67010 Picky::Query::Boosts#boost_for_categories 50
2.29% 0.39% 1.00 0.17 0.00 0.83 67010 Array#clustered_uniq 9
    0.83 0.09 0.00 0.74 67010/407449 Enumerable#inject 11
    1.00 1.00 0.00 0.00 600000/600000 Picky::Category#weight 28
2.28% 2.28% 1.00 1.00 0.00 0.00 600000 Picky::Bundle#weight 49
    0.98 0.08 0.00 0.90 50000/50000 Picky::Query::Indexes#prepared_allocations_for 84
2.25% 0.18% 0.98 0.08 0.00 0.90 50000 Picky::Query::Allocations#sort! 39
    0.90 0.23 0.00 0.67 50000/50000 Array#sort! 40
    0.98 0.26 0.00 0.72 200000/200000 String#blank? 105
2.24% 0.59% 0.98 0.26 0.00 0.72 200000 Kernel#!~
    0.72 0.72 0.00 0.00 200000/1100005 String#=~
    0.00 0.00 0.00 0.00 50000/400000 Kernel#loop
    0.16 0.16 0.00 0.00 150000/400000 Picky::Query::Token#qualify 279
    0.27 0.27 0.00 0.00 150000/400000 Array#collect!
    0.47 0.47 0.00 0.00 50000/400000 RegexpWrapper#split 8
2.07% 2.07% 0.90 0.90 0.00 0.00 400000 String#split
    0.90 0.23 0.00 0.67 50000/50000 Picky::Query::Allocations#sort! 40
2.06% 0.53% 0.90 0.23 0.00 0.67 50000 Array#sort!
    0.67 0.49 0.00 0.17 325497/325497 Picky::Query::Allocation#<=>
    0.88 0.53 0.00 0.35 150000/150000 Picky::Query::Token#process 45
2.01% 1.21% 0.88 0.53 0.00 0.35 150000 Picky::Query::Token#partialize 117
    0.35 0.35 0.00 0.00 300000/1100005 String#=~ 125
    0.86 0.10 0.00 0.76 67010/67010 Picky::Query::Allocation#calculate_score 43
1.97% 0.24% 0.86 0.10 0.00 0.76 67010 Picky::Backends::Backend#weight 55
    0.76 0.10 0.00 0.66 67010/67010 Picky::Query::Combinations#score 56
    0.85 0.85 0.00 0.00 618685/618685 Picky::Category#bundle_for 56
1.95% 1.95% 0.85 0.85 0.00 0.00 618685 Picky::Query::Token#select_bundle 82
    0.84 0.45 0.00 0.39 150000/150000 Picky::Query::Token#process 44
1.92% 1.02% 0.84 0.45 0.00 0.39 150000 Picky::Query::Token#similarize 168
    0.39 0.39 0.00 0.00 300000/1100005 String#=~ 170
    0.80 0.14 0.00 0.66 50000/50000 Picky::Query::Indexes#allocation_for 122
1.83% 0.32% 0.80 0.14 0.00 0.66 50000 Array#map!
    0.66 0.16 0.00 0.49 134020/772141 Class#new
    0.78 0.38 0.00 0.40 150000/150000 Picky::Query::Token#predefined_categories 68
1.80% 0.88% 0.78 0.38 0.00 0.40 150000 Picky::Query::Token#extract_predefined 70
    0.24 0.24 0.00 0.00 150000/150000 Picky::QualifierMapper#restrict 72
    0.16 0.16 0.00 0.00 150000/150000 Picky::Query::Token#categorize_with 71
    0.76 0.10 0.00 0.66 67010/67010 Picky::Backends::Backend#weight 56
1.73% 0.23% 0.76 0.10 0.00 0.66 67010 Picky::Query::Combinations#score 29
    0.66 0.09 0.00 0.57 67010/407449 Enumerable#inject 30
    0.02 0.02 0.00 0.00 18685/618685 Picky::Category#ids 36
    0.66 0.66 0.00 0.00 600000/618685 Picky::Category#weight 20
1.56% 1.56% 0.68 0.68 0.00 0.00 618685 Picky::Query::Token#range 222
    0.67 0.49 0.00 0.17 325497/325497 Array#sort!
1.53% 1.13% 0.67 0.49 0.00 0.17 325497 Picky::Query::Allocation#<=> 99
    0.17 0.17 0.00 0.00 325497/325497 Float#<=> 100
    0.64 0.08 0.00 0.56 50000/50000 Picky::Tokenizer#pretokenize 270
1.47% 0.19% 0.64 0.08 0.00 0.56 50000 Picky::Tokenizer#split 108
    0.56 0.09 0.00 0.47 50000/50000 RegexpWrapper#split 109
    0.58 0.16 0.00 0.42 50000/50000 Picky::Tokenizer#tokenize 240
1.33% 0.37% 0.58 0.16 0.00 0.42 50000 Picky::Tokenizer#tokens_for 279
    0.36 0.27 0.00 0.09 50000/104554 Array#collect! 280
    0.06 0.06 0.00 0.00 50000/50000 Picky::Tokenizer#downcase? 280
    0.58 0.34 0.00 0.24 150000/150000 Picky::Query::Token#process 47
1.33% 0.78% 0.58 0.34 0.00 0.24 150000 Picky::Query::Token#remove_illegals 234
    0.24 0.24 0.00 0.00 150000/150000 String#gsub! 237
    0.56 0.09 0.00 0.47 50000/50000 Picky::Tokenizer#split 109
1.28% 0.20% 0.56 0.09 0.00 0.47 50000 RegexpWrapper#split 7
    0.47 0.47 0.00 0.00 50000/400000 String#split 8
    0.54 0.15 0.00 0.39 50000/50000 Picky::Query::Indexes#allocation_for 118
1.23% 0.35% 0.54 0.15 0.00 0.39 50000 Picky::Query::Indexes#expand_combinations_from 183
    0.18 0.07 0.00 0.12 50000/50000 Enumerable#any? 187
    0.14 0.03 0.00 0.10 4554/104554 Array#collect! 200
    0.03 0.03 0.00 0.00 50000/50011 Symbol#to_proc 187
    0.01 0.01 0.00 0.00 4554/54554 Array#zip 237
    0.01 0.01 0.00 0.01 4554/407449 Enumerable#inject 191
    0.00 0.00 0.00 0.00 4554/154554 Array#shift 237
    0.46 0.16 0.00 0.29 50000/50000 Picky::Search#tokenized 262
1.05% 0.37% 0.46 0.16 0.00 0.29 50000 Picky::Query::Tokens#partialize_last 71
    0.14 0.11 0.00 0.03 50000/50000 Picky::Query::Token#partial= 72
    0.12 0.09 0.00 0.03 50000/50000 Picky::Query::Tokens#empty? 72
    0.03 0.03 0.00 0.00 50000/50005 Array#last 72
    0.44 0.21 0.00 0.23 50000/50000 Picky::Tokenizer#tokenize 236
1.01% 0.49% 0.44 0.21 0.00 0.23 50000 Picky::Tokenizer#preprocess 251
    0.09 0.09 0.00 0.00 50000/50000 Picky::Tokenizer#remove_illegals 253
    0.08 0.08 0.00 0.00 50000/50000 Picky::Tokenizer#substitute_characters 252
    0.06 0.06 0.00 0.00 50000/50000 Picky::Tokenizer#remove_non_single_stopwords 259
    0.42 0.24 0.00 0.19 206529/206529 Array#each
0.97% 0.54% 0.42 0.24 0.00 0.19 206529 Picky::Query::Combination#ids 47
    0.19 0.07 0.00 0.12 18685/18685 Picky::Category#ids 48
    0.42 0.21 0.00 0.21 67010/67010 Class#new
0.97% 0.48% 0.42 0.21 0.00 0.21 67010 Picky::Query::Allocation#initialize 23
    0.11 0.11 0.00 0.00 67010/67010 Picky::Index#result_identifier 28
    0.10 0.10 0.00 0.00 67010/67015 Picky::Index#backend 29
    0.38 0.15 0.00 0.24 50000/50000 Picky::Helpers::Measuring#timed 15
0.88% 0.34% 0.38 0.15 0.00 0.24 50000 Time#-
    0.11 0.06 0.00 0.05 50000/50000 Numeric#quo
    0.09 0.06 0.00 0.03 50000/50000 Rational#to_f
    0.03 0.03 0.00 0.00 50000/50000 Fixnum#-
    0.36 0.25 0.00 0.11 150000/150000 Picky::Query::Token#process 46
0.83% 0.58% 0.36 0.25 0.00 0.11 150000 Picky::Query::Token#rangify 217
    0.11 0.11 0.00 0.00 150000/150000 String#include? 218
    0.34 0.34 0.00 0.00 164726/164726 Class#new
0.78% 0.78% 0.34 0.34 0.00 0.00 164726 Picky::Query::Combination#initialize 18
    0.32 0.32 0.00 0.00 150000/150000 Class#new
0.73% 0.73% 0.32 0.32 0.00 0.00 150000 Picky::Query::Token#initialize 27
    0.14 0.10 0.00 0.03 62359/129369 Picky::Query::Allocation#calculate_ids 54
    0.15 0.11 0.00 0.04 67010/129369 Picky::Query::Allocation#calculate_score 44
0.65% 0.49% 0.28 0.21 0.00 0.07 129369 Picky::Query::Combinations#empty? 1
    0.07 0.07 0.00 0.00 129369/245555 Array#empty? 1
    0.24 0.24 0.00 0.00 150000/150000 Picky::Query::Token#extract_predefined 72
0.56% 0.56% 0.24 0.24 0.00 0.00 150000 Picky::QualifierMapper#restrict 38
    0.24 0.24 0.00 0.00 150000/150000 Picky::Query::Token#remove_illegals 237
0.54% 0.54% 0.24 0.24 0.00 0.00 150000 String#gsub!
    0.24 0.17 0.00 0.06 100000/100000 Class#new
0.54% 0.40% 0.24 0.17 0.00 0.06 100000 Time#initialize
    0.06 0.06 0.00 0.00 100000/167010 Fixnum#+
    0.22 0.22 0.00 0.00 211195/211195 Array#map
0.52% 0.52% 0.22 0.22 0.00 0.00 211195 Picky::Query::Combination#category_name 27
    0.21 0.21 0.00 0.00 211195/211195 Array#each
0.48% 0.48% 0.21 0.21 0.00 0.00 211195 Picky::Query::Combination#weight 39
    0.20 0.20 0.00 0.00 200000/200000 String#blank? 104
0.46% 0.46% 0.20 0.20 0.00 0.00 200000 String#encoding_aware? 3
    0.19 0.07 0.00 0.12 18685/18685 Picky::Query::Combination#ids 48
0.43% 0.16% 0.19 0.07 0.00 0.12 18685 Picky::Category#ids 34
    0.05 0.03 0.00 0.02 18685/618685 Picky::Category#bundle_for 35
    0.04 0.04 0.00 0.00 18685/18685 Picky::Bundle#ids 48
    0.02 0.02 0.00 0.00 18685/618685 Picky::Query::Token#range 36
    0.18 0.07 0.00 0.12 50000/50000 Picky::Query::Indexes#expand_combinations_from 187
0.42% 0.15% 0.18 0.07 0.00 0.12 50000 Enumerable#any?
    0.00 0.00 0.00 0.00 50000/669819 Array#each
    0.17 0.17 0.00 0.00 325497/325497 Picky::Query::Allocation#<=> 100
0.40% 0.40% 0.17 0.17 0.00 0.00 325497 Float#<=>
    0.17 0.17 0.00 0.00 150000/150000 Picky::Categories#possible_categories 54
0.38% 0.38% 0.17 0.17 0.00 0.00 150000 Picky::Categories#qualifier_mapper 42
    0.00 0.00 0.00 0.00 1/772141 Class#new 43
    0.17 0.17 0.00 0.00 150000/150000 Picky::Query::Token#possible_combinations 251
0.38% 0.38% 0.17 0.17 0.00 0.00 150000 Picky::Query::Token#similar? 228
    0.16 0.16 0.00 0.00 150000/150000 Picky::Query::Token#extract_predefined 71
0.36% 0.36% 0.16 0.16 0.00 0.00 150000 Picky::Query::Token#categorize_with 74
    0.14 0.11 0.00 0.03 50000/50000 Picky::Query::Tokens#partialize_last 72
0.33% 0.26% 0.14 0.11 0.00 0.03 50000 Picky::Query::Token#partial= 90
    0.03 0.03 0.00 0.00 50000/50010 NilClass#nil? 91
    0.03 0.03 0.00 0.00 50000/245555 Picky::Query::Tokens#empty? 1
    0.04 0.04 0.00 0.00 66186/245555 Array#each
    0.07 0.07 0.00 0.00 129369/245555 Picky::Query::Combinations#empty? 1
0.32% 0.32% 0.14 0.14 0.00 0.00 245555 Array#empty?
    0.14 0.14 0.00 0.00 50000/50000 Class#new
0.32% 0.32% 0.14 0.14 0.00 0.00 50000 Picky::Results#initialize 18
    0.00 0.00 0.00 0.00 5/100012 CSV#raw_encoding 2265
    0.00 0.00 0.00 0.00 1/100012 Picky::Tokenizer#splits_text_on 102
    0.00 0.00 0.00 0.00 5/100012 Picky::Search#terminate_early 110
    0.00 0.00 0.00 0.00 1/100012 Global#[No method] 26
    0.13 0.10 0.00 0.03 100000/100012 Array#each
0.29% 0.22% 0.13 0.10 0.00 0.03 100012 Kernel#respond_to?
    0.03 0.03 0.00 0.00 100007/100012 Kernel#respond_to_missing?
    0.12 0.09 0.00 0.03 50000/50000 Picky::Query::Tokens#partialize_last 72
0.27% 0.21% 0.12 0.09 0.00 0.03 50000 Picky::Query::Tokens#empty? 1
    0.03 0.03 0.00 0.00 50000/245555 Array#empty? 1
    0.12 0.12 0.00 0.00 218626/218626 Enumerable#sort_by
0.27% 0.27% 0.12 0.12 0.00 0.00 218626 Fixnum#<=>
    0.12 0.12 0.00 0.00 50000/50000 Picky::Query::Indexes#allocations_ary_for 106
0.26% 0.26% 0.12 0.12 0.00 0.00 50000 Array#flatten
    0.11 0.06 0.00 0.05 50000/50000 Time#-
0.26% 0.14% 0.11 0.06 0.00 0.05 50000 Numeric#quo
    0.05 0.05 0.00 0.00 50000/50000 Rational#/
    0.11 0.11 0.00 0.00 150000/150000 Picky::Query::Token#rangify 218
0.25% 0.25% 0.11 0.11 0.00 0.00 150000 String#include?
    0.11 0.11 0.00 0.00 67010/67010 Picky::Query::Allocation#initialize 28
0.24% 0.24% 0.11 0.11 0.00 0.00 67010 Picky::Index#result_identifier 17
    0.00 0.00 0.00 0.00 5/67015 Array#map
    0.10 0.10 0.00 0.00 67010/67015 Picky::Query::Allocation#initialize 29
0.24% 0.24% 0.10 0.10 0.00 0.00 67015 Picky::Index#backend 135
    0.04 0.04 0.00 0.00 67010/167010 Array#each
    0.06 0.06 0.00 0.00 100000/167010 Time#initialize
0.23% 0.23% 0.10 0.10 0.00 0.00 167010 Fixnum#+
    0.10 0.10 0.00 0.00 50000/50000 CSV#each 23
0.22% 0.22% 0.10 0.10 0.00 0.00 50000 Integer#times
    0.00 0.00 0.00 0.00 100000/154554 Array#shift
    0.09 0.06 0.00 0.03 50000/50000 Time#-
0.21% 0.14% 0.09 0.06 0.00 0.03 50000 Rational#to_f
    0.03 0.03 0.00 0.00 50000/50000 Fixnum#fdiv
    0.09 0.09 0.00 0.00 150000/150000 Array#collect!
0.20% 0.20% 0.09 0.09 0.00 0.00 150000 String#downcase!
    0.09 0.09 0.00 0.00 50000/50000 Picky::Tokenizer#preprocess 253
0.20% 0.20% 0.09 0.09 0.00 0.00 50000 Picky::Tokenizer#remove_illegals 89
    0.01 0.01 0.00 0.00 4554/54554 Picky::Query::Indexes#expand_combinations_from 237
    0.07 0.07 0.00 0.00 50000/54554 <Class::Picky::Query::Tokens>#processed 29
0.20% 0.20% 0.09 0.09 0.00 0.00 54554 Array#zip
    0.08 0.08 0.00 0.00 50000/50000 Class#new
0.19% 0.19% 0.08 0.08 0.00 0.00 50000 Picky::Query::Tokens#initialize 21
    0.08 0.08 0.00 0.00 50000/50000 Picky::Tokenizer#preprocess 252
0.18% 0.18% 0.08 0.08 0.00 0.00 50000 Picky::Tokenizer#substitute_characters 145
    0.00 0.00 0.00 0.00 10/144205 CSV#init_separators 1973
    0.00 0.00 0.00 0.00 10/144205 CSV#init_converters 2079
    0.08 0.08 0.00 0.00 144185/144205 Array#each
0.18% 0.18% 0.08 0.08 0.00 0.00 144205 Symbol#==
    0.07 0.07 0.00 0.00 67010/67010 Class#new
0.16% 0.16% 0.07 0.07 0.00 0.00 67010 Picky::Query::Combinations#initialize 21
    0.06 0.06 0.00 0.00 50000/50000 Picky::Tokenizer#pretokenize 273
0.15% 0.15% 0.06 0.06 0.00 0.00 50000 Picky::Tokenizer#cap? 187
    0.06 0.06 0.00 0.00 50000/50000 Picky::Tokenizer#pretokenize 271
0.15% 0.15% 0.06 0.06 0.00 0.00 50000 Picky::Tokenizer#normalize_with_patterns? 134
    0.06 0.06 0.00 0.00 50000/50000 Class#new
0.14% 0.14% 0.06 0.06 0.00 0.00 50000 Picky::Query::Allocations#initialize 25
    0.06 0.06 0.00 0.00 50000/50000 Picky::Tokenizer#preprocess 259
0.13% 0.13% 0.06 0.06 0.00 0.00 50000 Picky::Tokenizer#remove_non_single_stopwords 74
    0.06 0.06 0.00 0.00 100000/100000 Picky::Search#search 216
0.13% 0.13% 0.06 0.06 0.00 0.00 100000 Integer#to_i
    0.06 0.06 0.00 0.00 50000/50000 Picky::Tokenizer#tokens_for 280
0.13% 0.13% 0.06 0.06 0.00 0.00 50000 Picky::Tokenizer#downcase? 174
    0.05 0.05 0.00 0.00 50000/50000 Numeric#quo
0.12% 0.12% 0.05 0.05 0.00 0.00 50000 Rational#/
    0.05 0.05 0.00 0.00 50000/50000 Picky::Search#search_with 229
0.11% 0.11% 0.05 0.05 0.00 0.00 50000 Float#round
    0.04 0.04 0.00 0.00 62359/62359 Picky::Query::Allocation#process! 75
0.10% 0.10% 0.04 0.04 0.00 0.00 62359 Array#slice!
    0.04 0.04 0.00 0.00 18685/18685 Picky::Category#ids 48
0.10% 0.10% 0.04 0.04 0.00 0.00 18685 Picky::Bundle#ids 26
    0.04 0.04 0.00 0.00 67010/67010 Picky::Query::Allocation#calculate_score 43
0.09% 0.09% 0.04 0.04 0.00 0.00 67010 Float#+
    0.00 0.00 0.00 0.00 5/61783 Numeric#nonzero?
    0.00 0.00 0.00 0.00 6516/61783 Array#collect!
    0.03 0.03 0.00 0.00 55262/61783 Array#each
0.08% 0.08% 0.04 0.04 0.00 0.00 61783 Fixnum#zero?
    0.00 0.00 0.00 0.00 10/50011 <Class::Picky::Query::Indexes::Check>#check_backends 23
    0.00 0.00 0.00 0.00 1/50011 Picky::Tokenizer#default_options 226
    0.03 0.03 0.00 0.00 50000/50011 Picky::Query::Indexes#expand_combinations_from 187
0.08% 0.08% 0.03 0.03 0.00 0.00 50011 Symbol#to_proc
    0.00 0.00 0.00 0.00 15/50015 CSV#init_separators 2014
    0.03 0.03 0.00 0.00 50000/50015 Picky::Tokenizer#tokenize 236
0.08% 0.08% 0.03 0.03 0.00 0.00 50015 String#to_s
    0.03 0.03 0.00 0.00 50000/50000 Rational#to_f
0.07% 0.07% 0.03 0.03 0.00 0.00 50000 Fixnum#fdiv
    0.00 0.00 0.00 0.00 5/50005 <Class::CSV>#open 1249
    0.03 0.03 0.00 0.00 50000/50005 Picky::Query::Tokens#partialize_last 72
0.07% 0.07% 0.03 0.03 0.00 0.00 50005 Array#last
    0.00 0.00 0.00 0.00 10/50010 CSV#init_converters 2089
    0.03 0.03 0.00 0.00 50000/50010 Picky::Query::Token#partial= 91
0.07% 0.07% 0.03 0.03 0.00 0.00 50010 NilClass#nil?
    0.00 0.00 0.00 0.00 5/100012 String#==
    0.03 0.03 0.00 0.00 100007/100012 Kernel#respond_to?
0.07% 0.07% 0.03 0.03 0.00 0.00 100012 Kernel#respond_to_missing?
    0.03 0.03 0.00 0.00 50000/50000 Time#-
0.07% 0.07% 0.03 0.03 0.00 0.00 50000 Fixnum#-
    0.03 0.03 0.00 0.00 50000/50000 Picky::Helpers::Measuring#timed 15
0.07% 0.07% 0.03 0.03 0.00 0.00 50000 Float#to_f
    0.02 0.02 0.00 0.00 73337/73337 Class#new
0.04% 0.04% 0.02 0.02 0.00 0.00 73337 Array#initialize
    0.01 0.01 0.00 0.00 6516/6516 Array#collect!
0.02% 0.02% 0.01 0.01 0.00 0.00 6516 Array#*
    0.00 0.00 0.00 0.00 50000/154554 CSV#each 26
    0.00 0.00 0.00 0.00 100000/154554 Integer#times
    0.00 0.00 0.00 0.00 4554/154554 Picky::Query::Indexes#expand_combinations_from 237
0.01% 0.01% 0.00 0.00 0.00 0.00 154554 Array#shift
    0.00 0.00 0.00 0.00 5/5 Searches#prepare 19
0.00% 0.00% 0.00 0.00 0.00 0.00 5 <Class::CSV>#open 1247
    0.00 0.00 0.00 0.00 10/772141 Class#new 1261
    0.00 0.00 0.00 0.00 5/11 Hash#merge 1252
    0.00 0.00 0.00 0.00 5/5 <Class::IO>#open 1254
    0.00 0.00 0.00 0.00 5/15 Kernel#block_given? 1264
    0.00 0.00 0.00 0.00 5/10 Kernel#is_a? 1249
    0.00 0.00 0.00 0.00 5/50005 Array#last 1249
    0.00 0.00 0.00 0.00 5/5 Class#new
0.00% 0.00% 0.00 0.00 0.00 0.00 5 CSV#initialize 1483
    0.00 0.00 0.00 0.00 5/5 CSV#init_separators 1510
    0.00 0.00 0.00 0.00 5/5 CSV#init_parsers 1511
    0.00 0.00 0.00 0.00 5/5 CSV#init_headers 1513
    0.00 0.00 0.00 0.00 5/10 CSV#init_converters 1512
    0.00 0.00 0.00 0.00 5/5 CSV#raw_encoding 1490
    0.00 0.00 0.00 0.00 5/5 CSV#init_comments 1514
    0.00 0.00 0.00 0.00 5/11 Hash#merge 1485
    0.00 0.00 0.00 0.00 10/120 String#encode 1507
    0.00 0.00 0.00 0.00 5/10 Kernel#is_a? 1488
    0.00 0.00 0.00 0.00 15/80 Hash#delete 1518
    0.00 0.00 0.00 0.00 5/5 CSV#initialize 1510
0.00% 0.00% 0.00 0.00 0.00 0.00 5 CSV#init_separators 1948
    0.00 0.00 0.00 0.00 10/40 CSV#encode_str 2025
    0.00 0.00 0.00 0.00 5/25 CSV#encode_re 1985
    0.00 0.00 0.00 0.00 5/5 Array#include? 1964
    0.00 0.00 0.00 0.00 5/5 Numeric#nonzero? 1998
    0.00 0.00 0.00 0.00 5/5 String#== 2010
    0.00 0.00 0.00 0.00 10/10 Kernel#lambda 2029
    0.00 0.00 0.00 0.00 5/5 String#end_with? 1980
    0.00 0.00 0.00 0.00 5/1100005 String#=~ 1985
    0.00 0.00 0.00 0.00 5/50005 IO#gets 1978
    0.00 0.00 0.00 0.00 5/5 IO#pos 1972
    0.00 0.00 0.00 0.00 5/5 IO#rewind 1992
    0.00 0.00 0.00 0.00 10/144205 Symbol#== 1973
    0.00 0.00 0.00 0.00 15/120 String#encode 2014
    0.00 0.00 0.00 0.00 15/50015 String#to_s 2014
    0.00 0.00 0.00 0.00 20/80 Hash#delete 2017
    0.00 0.00 0.00 0.00 5/5 CSV#initialize 1511
0.00% 0.00% 0.00 0.00 0.00 0.00 5 CSV#init_parsers 2047
    0.00 0.00 0.00 0.00 20/25 CSV#encode_re 2055
    0.00 0.00 0.00 0.00 5/40 CSV#encode_str 2055
    0.00 0.00 0.00 0.00 10/10 CSV#escape_re 2054
    0.00 0.00 0.00 0.00 10/80 Hash#delete 2050
    0.00 0.00 0.00 0.00 5/40 CSV#init_parsers 2055
    0.00 0.00 0.00 0.00 10/40 CSV#init_separators 2025
    0.00 0.00 0.00 0.00 25/40 CSV#encode_re 2247
0.00% 0.00% 0.00 0.00 0.00 0.00 40 CSV#encode_str 2254
    0.00 0.00 0.00 0.00 40/117055 Array#map 2255
    0.00 0.00 0.00 0.00 40/50040 Array#join 2255
    0.00 0.00 0.00 0.00 5/25 CSV#init_separators 1985
    0.00 0.00 0.00 0.00 20/25 CSV#init_parsers 2055
0.00% 0.00% 0.00 0.00 0.00 0.00 25 CSV#encode_re 2246
    0.00 0.00 0.00 0.00 25/40 CSV#encode_str 2247
    0.00 0.00 0.00 0.00 25/772141 Class#new 2247
    0.00 0.00 0.00 0.00 5/10 CSV#init_headers 2116
    0.00 0.00 0.00 0.00 5/10 CSV#initialize 1512
0.00% 0.00% 0.00 0.00 0.00 0.00 10 CSV#init_converters 2078
    0.00 0.00 0.00 0.00 10/50010 NilClass#nil? 2089
    0.00 0.00 0.00 0.00 10/10 Kernel#method 2086
    0.00 0.00 0.00 0.00 10/10 String#sub 2086
    0.00 0.00 0.00 0.00 10/10 Kernel#instance_variable_set 2083
    0.00 0.00 0.00 0.00 10/772141 Class#new 2083
    0.00 0.00 0.00 0.00 20/20 Symbol#to_s 2086
    0.00 0.00 0.00 0.00 15/80 Hash#delete 2104
    0.00 0.00 0.00 0.00 10/144205 Symbol#== 2079
    0.00 0.00 0.00 0.00 5/5 Class#new
0.00% 0.00% 0.00 0.00 0.00 0.00 5 Picky::Search#initialize 40
    0.00 0.00 0.00 0.00 5/5 <Class::Picky::Tokenizer>#searching 45
    0.00 0.00 0.00 0.00 5/15 Kernel#block_given? 43
    0.00 0.00 0.00 0.00 10/772141 Class#new 46
    0.00 0.00 0.00 0.00 5/5 CSV#initialize 1513
0.00% 0.00% 0.00 0.00 0.00 0.00 5 CSV#init_headers 2108
    0.00 0.00 0.00 0.00 5/10 CSV#init_converters 2116
    0.00 0.00 0.00 0.00 15/80 Hash#delete 2111
    0.00 0.00 0.00 0.00 1/1 Class#new
0.00% 0.00% 0.00 0.00 0.00 0.00 1 Picky::QualifierMapper#initialize 11
    0.00 0.00 0.00 0.00 1/1 Picky::Categories#each 13
    0.00 0.00 0.00 0.00 1/1 Picky::QualifierMapper#initialize 13
0.00% 0.00% 0.00 0.00 0.00 0.00 1 Picky::Categories#each 1
    0.00 0.00 0.00 0.00 1/669819 Array#each 1
    0.00 0.00 0.00 0.00 4/4 Array#each
0.00% 0.00% 0.00 0.00 0.00 0.00 4 Picky::QualifierMapper#add 18
    0.00 0.00 0.00 0.00 4/4 Picky::Category#qualifiers 19
    0.00 0.00 0.00 0.00 4/669819 Array#each 19
    0.00 0.00 0.00 0.00 5/5 Class#new
0.00% 0.00% 0.00 0.00 0.00 0.00 5 Picky::Query::Indexes#initialize 28
    0.00 0.00 0.00 0.00 5/5 <Class::Picky::Query::Indexes::Check>#check_backends 29
    0.00 0.00 0.00 0.00 5/5 Picky::Query::Indexes#initialize 29
0.00% 0.00% 0.00 0.00 0.00 0.00 5 <Class::Picky::Query::Indexes::Check>#check_backends 21
    0.00 0.00 0.00 0.00 5/117055 Array#map 22
    0.00 0.00 0.00 0.00 5/5 Array#uniq! 23
    0.00 0.00 0.00 0.00 10/50011 Symbol#to_proc 23
    0.00 0.00 0.00 0.00 5/5 Picky::Search#initialize 45
0.00% 0.00% 0.00 0.00 0.00 0.00 5 <Class::Picky::Tokenizer>#searching 23
    0.00 0.00 0.00 0.00 1/772141 Class#new 24
    0.00 0.00 0.00 0.00 1/1 Class#new
0.00% 0.00% 0.00 0.00 0.00 0.00 1 Picky::Tokenizer#initialize 201
    0.00 0.00 0.00 0.00 1/1 Hash#each 203
    0.00 0.00 0.00 0.00 1/1 Picky::Tokenizer#default_options 202
    0.00 0.00 0.00 0.00 1/11 Hash#merge 202
    0.00 0.00 0.00 0.00 1/11 Picky::Tokenizer#initialize 202
    0.00 0.00 0.00 0.00 5/11 CSV#initialize 1485
    0.00 0.00 0.00 0.00 5/11 <Class::CSV>#open 1252
0.00% 0.00% 0.00 0.00 0.00 0.00 11 Hash#merge
    0.00 0.00 0.00 0.00 11/11 Kernel#initialize_dup
    0.00 0.00 0.00 0.00 1/1 Picky::Tokenizer#initialize 203
0.00% 0.00% 0.00 0.00 0.00 0.00 1 Hash#each
    0.00 0.00 0.00 0.00 1/1 Picky::Tokenizer#splits_text_on
    0.00 0.00 0.00 0.00 1/1 Picky::Tokenizer#rejects_token_if
    0.00 0.00 0.00 0.00 2/2 Kernel#nil?
    0.00 0.00 0.00 0.00 5/5 CSV#initialize 1490
0.00% 0.00% 0.00 0.00 0.00 0.00 5 CSV#raw_encoding 2264
    0.00 0.00 0.00 0.00 5/5 IO#external_encoding 2266
    0.00 0.00 0.00 0.00 5/5 IO#internal_encoding 2266
    0.00 0.00 0.00 0.00 5/100012 Kernel#respond_to? 2265
    0.00 0.00 0.00 0.00 5/5 CSV#init_separators 1964
0.00% 0.00% 0.00 0.00 0.00 0.00 5 Array#include?
    0.00 0.00 0.00 0.00 20/20 BasicObject#==
    0.00 0.00 0.00 0.00 1/1 Global#[No method] 30
0.00% 0.00% 0.00 0.00 0.00 0.00 1 <Class::Searches>#series_for 3
    0.00 0.00 0.00 0.00 1/1 Enumerable#map 4
    0.00 0.00 0.00 0.00 1/1 <Class::Searches>#series_for 4
0.00% 0.00% 0.00 0.00 0.00 0.00 1 Enumerable#map
    0.00 0.00 0.00 0.00 1/1 Range#each
    0.00 0.00 0.00 0.00 1/1 Enumerable#map
0.00% 0.00% 0.00 0.00 0.00 0.00 1 Range#each
    0.00 0.00 0.00 0.00 5/772141 Class#new
    0.00 0.00 0.00 0.00 5/5 Array#each
0.00% 0.00% 0.00 0.00 0.00 0.00 5 Picky::Search#terminate_early 109
    0.00 0.00 0.00 0.00 5/100012 Kernel#respond_to? 110
    0.00 0.00 0.00 0.00 11/11 Hash#merge
0.00% 0.00% 0.00 0.00 0.00 0.00 11 Kernel#initialize_dup
    0.00 0.00 0.00 0.00 11/11 Hash#initialize_copy
    0.00 0.00 0.00 0.00 10/10 CSV#init_parsers 2054
0.00% 0.00% 0.00 0.00 0.00 0.00 10 CSV#escape_re 2238
    0.00 0.00 0.00 0.00 10/10 String#gsub 2239
    0.00 0.00 0.00 0.00 1/1 Hash#each
0.00% 0.00% 0.00 0.00 0.00 0.00 1 Picky::Tokenizer#splits_text_on 100
    0.00 0.00 0.00 0.00 1/100012 Kernel#respond_to? 102
    0.00 0.00 0.00 0.00 1/772141 Class#new 105
    0.00 0.00 0.00 0.00 1/1 Module#=== 101
    0.00 0.00 0.00 0.00 4/4 Picky::QualifierMapper#add 19
0.00% 0.00% 0.00 0.00 0.00 0.00 4 Picky::Category#qualifiers 152
    0.00 0.00 0.00 0.00 5/5 CSV#initialize 1514
0.00% 0.00% 0.00 0.00 0.00 0.00 5 CSV#init_comments 2124
    0.00 0.00 0.00 0.00 5/80 Hash#delete 2125
    0.00 0.00 0.00 0.00 5/5 <Class::CSV>#open 1254
0.00% 0.00% 0.00 0.00 0.00 0.00 5 <Class::IO>#open
    0.00 0.00 0.00 0.00 5/5 File#initialize
    0.00 0.00 0.00 0.00 5/5 CSV#init_separators 1998
0.00% 0.00% 0.00 0.00 0.00 0.00 5 Numeric#nonzero?
    0.00 0.00 0.00 0.00 5/61783 Fixnum#zero?
    0.00 0.00 0.00 0.00 4/4 Array#each
0.00% 0.00% 0.00 0.00 0.00 0.00 4 Symbol#intern
    0.00 0.00 0.00 0.00 5/5 CSV#init_separators 2010
0.00% 0.00% 0.00 0.00 0.00 0.00 5 String#==
    0.00 0.00 0.00 0.00 5/100012 Kernel#respond_to_missing?
    0.00 0.00 0.00 0.00 4/4 Array#each
0.00% 0.00% 0.00 0.00 0.00 0.00 4 Hash#[]=
    0.00 0.00 0.00 0.00 1/1 Picky::Tokenizer#initialize 202
0.00% 0.00% 0.00 0.00 0.00 0.00 1 Picky::Tokenizer#default_options 222
    0.00 0.00 0.00 0.00 1/50011 Symbol#to_proc 226
    0.00 0.00 0.00 0.00 4/4 Array#each
0.00% 0.00% 0.00 0.00 0.00 0.00 4 Hash#has_key?
    0.00 0.00 0.00 0.00 20/20 Array#include?
0.00% 0.00% 0.00 0.00 0.00 0.00 20 BasicObject#==
    0.00 0.00 0.00 0.00 40/50040 CSV#encode_str 2255
    0.00 0.00 0.00 0.00 50000/50040 CSV#each 27
0.00% 0.00% 0.00 0.00 0.00 0.00 50040 Array#join
    0.00 0.00 0.00 0.00 5/50005 CSV#init_separators 1978
    0.00 0.00 0.00 0.00 50000/50005 Kernel#loop
0.00% 0.00% 0.00 0.00 0.00 0.00 50005 IO#gets
    0.00 0.00 0.00 0.00 5/5 CSV#init_separators 1972
0.00% 0.00% 0.00 0.00 0.00 0.00 5 IO#pos
    0.00 0.00 0.00 0.00 95/95 Array#map
0.00% 0.00% 0.00 0.00 0.00 0.00 95 Encoding#name
    0.00 0.00 0.00 0.00 50000/50000 CSV#shift 1758
0.00% 0.00% 0.00 0.00 0.00 0.00 50000 CSV#header_row? 1740
    0.00 0.00 0.00 0.00 2/2 Hash#each
0.00% 0.00% 0.00 0.00 0.00 0.00 2 Kernel#nil?
    0.00 0.00 0.00 0.00 25/25 Class#new
0.00% 0.00% 0.00 0.00 0.00 0.00 25 Regexp#initialize
    0.00 0.00 0.00 0.00 20/80 CSV#init_separators 2017
    0.00 0.00 0.00 0.00 10/80 CSV#init_parsers 2050
    0.00 0.00 0.00 0.00 15/80 CSV#init_converters 2104
    0.00 0.00 0.00 0.00 15/80 CSV#init_headers 2111
    0.00 0.00 0.00 0.00 5/80 CSV#init_comments 2125
    0.00 0.00 0.00 0.00 15/80 CSV#initialize 1518
0.00% 0.00% 0.00 0.00 0.00 0.00 80 Hash#delete
    0.00 0.00 0.00 0.00 1/1 Picky::Tokenizer#splits_text_on 101
0.00% 0.00% 0.00 0.00 0.00 0.00 1 Module#===
    0.00 0.00 0.00 0.00 10/120 CSV#initialize 1507
    0.00 0.00 0.00 0.00 15/120 CSV#init_separators 2014
    0.00 0.00 0.00 0.00 95/120 Array#map
0.00% 0.00% 0.00 0.00 0.00 0.00 120 String#encode
    0.00 0.00 0.00 0.00 5/5 CSV#raw_encoding 2266
0.00% 0.00% 0.00 0.00 0.00 0.00 5 IO#external_encoding
    0.00 0.00 0.00 0.00 5/5 CSV#raw_encoding 2266
0.00% 0.00% 0.00 0.00 0.00 0.00 5 IO#internal_encoding
    0.00 0.00 0.00 0.00 5/5 CSV#init_separators 1992
0.00% 0.00% 0.00 0.00 0.00 0.00 5 IO#rewind
    0.00 0.00 0.00 0.00 1/1 Class#new
0.00% 0.00% 0.00 0.00 0.00 0.00 1 RegexpWrapper#initialize 3
    0.00 0.00 0.00 0.00 5/5 <Class::IO>#open
0.00% 0.00% 0.00 0.00 0.00 0.00 5 File#initialize
    0.00 0.00 0.00 0.00 5/5 <Class::Picky::Query::Indexes::Check>#check_backends 23
0.00% 0.00% 0.00 0.00 0.00 0.00 5 Array#uniq!
    0.00 0.00 0.00 0.00 11/11 Kernel#initialize_dup
0.00% 0.00% 0.00 0.00 0.00 0.00 11 Hash#initialize_copy
    0.00 0.00 0.00 0.00 10/10 CSV#init_separators 2029
0.00% 0.00% 0.00 0.00 0.00 0.00 10 Kernel#lambda
    0.00 0.00 0.00 0.00 10/10 CSV#escape_re 2239
0.00% 0.00% 0.00 0.00 0.00 0.00 10 String#gsub
    0.00 0.00 0.00 0.00 5/5 Class#new
0.00% 0.00% 0.00 0.00 0.00 0.00 5 Hash#initialize
    0.00 0.00 0.00 0.00 5/10 <Class::CSV>#open 1249
    0.00 0.00 0.00 0.00 5/10 CSV#initialize 1488
0.00% 0.00% 0.00 0.00 0.00 0.00 10 Kernel#is_a?
    0.00 0.00 0.00 0.00 1/1 Hash#each
0.00% 0.00% 0.00 0.00 0.00 0.00 1 Picky::Tokenizer#rejects_token_if 160
    0.00 0.00 0.00 0.00 5/5 Class#new
0.00% 0.00% 0.00 0.00 0.00 0.00 5 Picky::Query::Boosts#initialize 34
    0.00 0.00 0.00 0.00 20/20 CSV#init_converters 2086
0.00% 0.00% 0.00 0.00 0.00 0.00 20 Symbol#to_s
    0.00 0.00 0.00 0.00 50000/50000 CSV#each 21
0.00% 0.00% 0.00 0.00 0.00 0.00 50000 Array#first
    0.00 0.00 0.00 0.00 5/5 Class#new
0.00% 0.00% 0.00 0.00 0.00 0.00 5 Searches#initialize 7
    0.00 0.00 0.00 0.00 10/10 CSV#init_converters 2083
0.00% 0.00% 0.00 0.00 0.00 0.00 10 Kernel#instance_variable_set
    0.00 0.00 0.00 0.00 10/10 CSV#init_converters 2086
0.00% 0.00% 0.00 0.00 0.00 0.00 10 String#sub
    0.00 0.00 0.00 0.00 10/10 CSV#init_converters 2086
0.00% 0.00% 0.00 0.00 0.00 0.00 10 Kernel#method
    0.00 0.00 0.00 0.00 300000/300000 Array#each
0.00% 0.00% 0.00 0.00 0.00 0.00 300000 String#[]
    0.00 0.00 0.00 0.00 50000/50000 Kernel#loop
0.00% 0.00% 0.00 0.00 0.00 0.00 50000 String#sub!
    0.00 0.00 0.00 0.00 5/15 <Class::CSV>#open 1264
    0.00 0.00 0.00 0.00 5/15 CSV#each 1715
    0.00 0.00 0.00 0.00 5/15 Picky::Search#initialize 43
0.00% 0.00% 0.00 0.00 0.00 0.00 15 Kernel#block_given?
    0.00 0.00 0.00 0.00 5/5 CSV#init_separators 1980
0.00% 0.00% 0.00 0.00 0.00 0.00 5 String#end_with?
* indicates recursively called methods