Class: Hyphy::Filters::BenchmarkFilter
- Inherits:
-
AbstractFilter
- Object
- AbstractFilter
- Hyphy::Filters::BenchmarkFilter
- Defined in:
- lib/hyphy/filters/benchmark_filter.rb
Instance Attribute Summary
Attributes inherited from AbstractFilter
Class Method Summary collapse
Instance Method Summary collapse
- #filter ⇒ Object
-
#initialize(data, opts) ⇒ BenchmarkFilter
constructor
A new instance of BenchmarkFilter.
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
#filter ⇒ Object
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 |