Class: RailsVitals::Scorers::NPlusOneScorer

Inherits:
BaseScorer
  • Object
show all
Defined in:
lib/rails_vitals/scorers/n_plus_one_scorer.rb

Constant Summary collapse

REPEAT_THRESHOLD =

Minimum times the same query must repeat to be flagged

3

Constants inherited from BaseScorer

BaseScorer::ACCEPTABLE, BaseScorer::CRITICAL, BaseScorer::HEALTHY, BaseScorer::WARNING

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseScorer

color_for, #initialize, label_for

Constructor Details

This class inherits a constructor from RailsVitals::Scorers::BaseScorer

Class Method Details

.score_for(pattern_count) ⇒ Object



7
8
9
# File 'lib/rails_vitals/scorers/n_plus_one_scorer.rb', line 7

def self.score_for(pattern_count)
  [ 100 - (pattern_count * 25), 0 ].max
end

Instance Method Details

#n_plus_one_patternsObject



15
16
17
18
# File 'lib/rails_vitals/scorers/n_plus_one_scorer.rb', line 15

def n_plus_one_patterns
  query_fingerprints
    .select { |_fingerprint, count| count >= REPEAT_THRESHOLD }
end

#scoreObject



11
12
13
# File 'lib/rails_vitals/scorers/n_plus_one_scorer.rb', line 11

def score
  self.class.score_for(n_plus_one_count)
end