web/app/models/benchmark_result.rb
author Marcel Hlopko <marcel@hlopko.com>
Tue, 17 Nov 2015 15:05:38 +0100
changeset 306 8050d8d3681f
parent 303 ce55fabc46a0
permissions -rw-r--r--
Optimize CompareController#filter
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
44
0429d91be03e add some models
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     1
class BenchmarkResult < ActiveRecord::Base
0429d91be03e add some models
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     2
108
69aa849f6930 fixing cascades
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 106
diff changeset
     3
  belongs_to :benchmark_info, inverse_of: :benchmark_results
69aa849f6930 fixing cascades
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 106
diff changeset
     4
  belongs_to :benchmark_batch, inverse_of: :benchmark_results
69aa849f6930 fixing cascades
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 106
diff changeset
     5
  has_many :benchmark_durations, dependent: :destroy, inverse_of: :benchmark_result
177
8e7f0029550d Support for parameters in web app.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 157
diff changeset
     6
  has_many :benchmark_parameters, dependent: :destroy, inverse_of: :benchmark_result
8e7f0029550d Support for parameters in web app.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 157
diff changeset
     7
68
ea16cf625333 add results page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 65
diff changeset
     8
  def average_duration
ea16cf625333 add results page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 65
diff changeset
     9
    sum = benchmark_durations.inject(0) { |acc, val| acc += val.duration }
ea16cf625333 add results page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 65
diff changeset
    10
    sum / benchmark_durations.size
ea16cf625333 add results page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 65
diff changeset
    11
  end
ea16cf625333 add results page
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 65
diff changeset
    12
70
e9c892b1c82b nicer tables, useless graph removed
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 68
diff changeset
    13
  def min_duration
e9c892b1c82b nicer tables, useless graph removed
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 68
diff changeset
    14
    benchmark_durations.map { |duration| duration.duration }.min
e9c892b1c82b nicer tables, useless graph removed
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 68
diff changeset
    15
  end
e9c892b1c82b nicer tables, useless graph removed
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 68
diff changeset
    16
e9c892b1c82b nicer tables, useless graph removed
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 68
diff changeset
    17
  def max_duration
e9c892b1c82b nicer tables, useless graph removed
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 68
diff changeset
    18
    benchmark_durations.map { |duration| duration.duration }.max
e9c892b1c82b nicer tables, useless graph removed
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 68
diff changeset
    19
  end
e9c892b1c82b nicer tables, useless graph removed
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 68
diff changeset
    20
133
bef72dea1e7e Initial Rickshaw experiments
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 110
diff changeset
    21
  def to_json
233
67d68cf6356c Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents: 231
diff changeset
    22
    { timestamp: performed_at.to_i, value: min_duration }
133
bef72dea1e7e Initial Rickshaw experiments
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 110
diff changeset
    23
  end
bef72dea1e7e Initial Rickshaw experiments
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 110
diff changeset
    24
157
91374e0a6062 migrate compare charts to rickshaw
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 156
diff changeset
    25
  def performed_at
91374e0a6062 migrate compare charts to rickshaw
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 156
diff changeset
    26
    benchmark_batch.performed_at
91374e0a6062 migrate compare charts to rickshaw
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 156
diff changeset
    27
  end
91374e0a6062 migrate compare charts to rickshaw
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 156
diff changeset
    28
303
ce55fabc46a0 Optimize ResultsController#configuration_results
Marcel Hlopko <marcel@hlopko.com>
parents: 237
diff changeset
    29
  def benchmark_name
ce55fabc46a0 Optimize ResultsController#configuration_results
Marcel Hlopko <marcel@hlopko.com>
parents: 237
diff changeset
    30
    benchmark_info.name
ce55fabc46a0 Optimize ResultsController#configuration_results
Marcel Hlopko <marcel@hlopko.com>
parents: 237
diff changeset
    31
  end
ce55fabc46a0 Optimize ResultsController#configuration_results
Marcel Hlopko <marcel@hlopko.com>
parents: 237
diff changeset
    32
178
bafafc76f0be tiny cleanup
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 174 177
diff changeset
    33
  def benchmark_parameters_json
bafafc76f0be tiny cleanup
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 174 177
diff changeset
    34
    JSON.generate(benchmark_parameters.collect { |p| p.to_json } )
bafafc76f0be tiny cleanup
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 174 177
diff changeset
    35
  end
bafafc76f0be tiny cleanup
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 174 177
diff changeset
    36
233
67d68cf6356c Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents: 231
diff changeset
    37
end
133
bef72dea1e7e Initial Rickshaw experiments
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 110
diff changeset
    38
233
67d68cf6356c Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents: 231
diff changeset
    39
# == Schema Information
67d68cf6356c Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents: 231
diff changeset
    40
#
67d68cf6356c Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents: 231
diff changeset
    41
# Table name: benchmark_results
67d68cf6356c Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents: 231
diff changeset
    42
#
67d68cf6356c Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents: 231
diff changeset
    43
#  id                 :integer          not null, primary key
67d68cf6356c Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents: 231
diff changeset
    44
#  benchmark_info_id  :integer
67d68cf6356c Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents: 231
diff changeset
    45
#  created_at         :datetime
67d68cf6356c Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents: 231
diff changeset
    46
#  updated_at         :datetime
67d68cf6356c Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents: 231
diff changeset
    47
#  benchmark_batch_id :integer
67d68cf6356c Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents: 231
diff changeset
    48
#
67d68cf6356c Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents: 231
diff changeset
    49