class GroongaQueryLog::PerformanceVerifier
Public Class Methods
new(command, old_responses, new_responses, options)
click to toggle source
# File lib/groonga-query-log/performance-verifier.rb, line 29 def initialize(command, old_responses, new_responses, options) @command = command @old_responses = old_responses @new_responses = new_responses @options = options @threshold_diff = 0.1 @threshold_ratio = 1.1 end
Public Instance Methods
diff_ratio()
click to toggle source
# File lib/groonga-query-log/performance-verifier.rb, line 66 def diff_ratio compute_diff_ratio end
new_elapsed_time()
click to toggle source
# File lib/groonga-query-log/performance-verifier.rb, line 62 def new_elapsed_time choose_target_elapsed_time(@new_responses) end
new_elapsed_times()
click to toggle source
# File lib/groonga-query-log/performance-verifier.rb, line 58 def new_elapsed_times collect_elapsed_times(@new_responses) end
old_elapsed_time()
click to toggle source
# File lib/groonga-query-log/performance-verifier.rb, line 54 def old_elapsed_time choose_target_elapsed_time(@old_responses) end
old_elapsed_times()
click to toggle source
# File lib/groonga-query-log/performance-verifier.rb, line 50 def old_elapsed_times collect_elapsed_times(@old_responses) end
slow?()
click to toggle source
# File lib/groonga-query-log/performance-verifier.rb, line 38 def slow? if error?(@old_responses) or error?(@new_responses) return false end if (old_elapsed_time - new_elapsed_time).abs < @threshold_diff return false end diff_ratio > @threshold_ratio end
Private Instance Methods
choose_target_elapsed_time(responses)
click to toggle source
# File lib/groonga-query-log/performance-verifier.rb, line 83 def choose_target_elapsed_time(responses) sorted_elapsed_times = collect_elapsed_times(responses).sort strategy = @options.choose_strategy case strategy when :fastest sorted_elapsed_times.first when :median sorted_elapsed_times[sorted_elapsed_times.size / 2] else message = "choose strategy must be :fastest or :median: #{strategy.inspect}" raise ArgumentError, message end end
collect_elapsed_times(responses)
click to toggle source
# File lib/groonga-query-log/performance-verifier.rb, line 77 def collect_elapsed_times(responses) responses.collect do |response| response.elapsed_time end end
compute_diff_ratio()
click to toggle source
# File lib/groonga-query-log/performance-verifier.rb, line 99 def compute_diff_ratio if old_elapsed_time.zero? 1.0 else new_elapsed_time / old_elapsed_time end end
error?(responses)
click to toggle source
# File lib/groonga-query-log/performance-verifier.rb, line 71 def error?(responses) responses.any? do |response| response.is_a?(Groonga::Client::Response::Error) end end