Class: Hyphy::Filters::BenchmarkFilter

Inherits:
AbstractFilter show all
Defined in:
lib/hyphy/filters/benchmark_filter.rb

Instance Attribute Summary

Attributes inherited from AbstractFilter

#data

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data, opts) ⇒ BenchmarkFilter

Returns a new instance of BenchmarkFilter.



3
4
5
6
7
# File 'lib/hyphy/filters/benchmark_filter.rb', line 3

def initialize(data, opts)
  @runs = opts[:runs] || 1

  super
end

Class Method Details

.benchmark(sql_statement, runs) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/hyphy/filters/benchmark_filter.rb', line 18

def self.benchmark(sql_statement, runs)
  times = []

  (1..runs).each do
    times << sql_statement.orm_adapter.time_statement(sql_statement)
  end

  # Calculate the average
  average = times.reduce(:+) / times.count
  average.to_f
end

Instance Method Details

#filterObject



9
10
11
12
13
14
15
16
# File 'lib/hyphy/filters/benchmark_filter.rb', line 9

def filter
  @data.each do |sql_statement|
    timing = self.class.benchmark(sql_statement, @runs)

    sql_statement.benchmark_runs = @runs
    sql_statement.benchmark_time = timing
  end
end