author | Marcel Hlopko <marcel@hlopko.com> |
Mon, 16 Nov 2015 16:15:12 +0100 | |
changeset 303 | ce55fabc46a0 |
parent 237 | 195fca969b9a |
child 306 | 8050d8d3681f |
permissions | -rw-r--r-- |
44 | 1 |
class BenchmarkResult < ActiveRecord::Base |
2 |
||
108 | 3 |
belongs_to :benchmark_info, inverse_of: :benchmark_results |
4 |
belongs_to :benchmark_batch, inverse_of: :benchmark_results |
|
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 |
|
237
195fca969b9a
Add scopes for common behavior
Marcel Hlopko <marcel@hlopko.com>
parents:
233
diff
changeset
|
8 |
scope :for_configuration_id, -> (configuration_id) do |
195fca969b9a
Add scopes for common behavior
Marcel Hlopko <marcel@hlopko.com>
parents:
233
diff
changeset
|
9 |
joins(:benchmark_batch). |
195fca969b9a
Add scopes for common behavior
Marcel Hlopko <marcel@hlopko.com>
parents:
233
diff
changeset
|
10 |
where("benchmark_batches.benchmark_configuration_id = ?", configuration_id) |
195fca969b9a
Add scopes for common behavior
Marcel Hlopko <marcel@hlopko.com>
parents:
233
diff
changeset
|
11 |
end |
195fca969b9a
Add scopes for common behavior
Marcel Hlopko <marcel@hlopko.com>
parents:
233
diff
changeset
|
12 |
|
195fca969b9a
Add scopes for common behavior
Marcel Hlopko <marcel@hlopko.com>
parents:
233
diff
changeset
|
13 |
scope :with_batch_and_duration_preloaded, -> do |
195fca969b9a
Add scopes for common behavior
Marcel Hlopko <marcel@hlopko.com>
parents:
233
diff
changeset
|
14 |
includes(:benchmark_batch, :benchmark_durations) |
195fca969b9a
Add scopes for common behavior
Marcel Hlopko <marcel@hlopko.com>
parents:
233
diff
changeset
|
15 |
end |
195fca969b9a
Add scopes for common behavior
Marcel Hlopko <marcel@hlopko.com>
parents:
233
diff
changeset
|
16 |
|
195fca969b9a
Add scopes for common behavior
Marcel Hlopko <marcel@hlopko.com>
parents:
233
diff
changeset
|
17 |
scope :newest_first, -> do |
195fca969b9a
Add scopes for common behavior
Marcel Hlopko <marcel@hlopko.com>
parents:
233
diff
changeset
|
18 |
order("benchmark_batches.performed_at desc, benchmark_batches.created_at desc") |
195fca969b9a
Add scopes for common behavior
Marcel Hlopko <marcel@hlopko.com>
parents:
233
diff
changeset
|
19 |
end |
44 | 20 |
|
68 | 21 |
def average_duration |
22 |
sum = benchmark_durations.inject(0) { |acc, val| acc += val.duration } |
|
23 |
sum / benchmark_durations.size |
|
24 |
end |
|
25 |
||
70
e9c892b1c82b
nicer tables, useless graph removed
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
68
diff
changeset
|
26 |
def min_duration |
e9c892b1c82b
nicer tables, useless graph removed
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
68
diff
changeset
|
27 |
benchmark_durations.map { |duration| duration.duration }.min |
e9c892b1c82b
nicer tables, useless graph removed
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
68
diff
changeset
|
28 |
end |
e9c892b1c82b
nicer tables, useless graph removed
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
68
diff
changeset
|
29 |
|
e9c892b1c82b
nicer tables, useless graph removed
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
68
diff
changeset
|
30 |
def max_duration |
e9c892b1c82b
nicer tables, useless graph removed
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
68
diff
changeset
|
31 |
benchmark_durations.map { |duration| duration.duration }.max |
e9c892b1c82b
nicer tables, useless graph removed
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
68
diff
changeset
|
32 |
end |
e9c892b1c82b
nicer tables, useless graph removed
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
68
diff
changeset
|
33 |
|
133
bef72dea1e7e
Initial Rickshaw experiments
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
110
diff
changeset
|
34 |
def to_json |
233
67d68cf6356c
Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents:
231
diff
changeset
|
35 |
{ timestamp: performed_at.to_i, value: min_duration } |
133
bef72dea1e7e
Initial Rickshaw experiments
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
110
diff
changeset
|
36 |
end |
bef72dea1e7e
Initial Rickshaw experiments
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
110
diff
changeset
|
37 |
|
157
91374e0a6062
migrate compare charts to rickshaw
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
156
diff
changeset
|
38 |
def performed_at |
91374e0a6062
migrate compare charts to rickshaw
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
156
diff
changeset
|
39 |
benchmark_batch.performed_at |
91374e0a6062
migrate compare charts to rickshaw
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
156
diff
changeset
|
40 |
end |
91374e0a6062
migrate compare charts to rickshaw
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
156
diff
changeset
|
41 |
|
303
ce55fabc46a0
Optimize ResultsController#configuration_results
Marcel Hlopko <marcel@hlopko.com>
parents:
237
diff
changeset
|
42 |
def benchmark_name |
ce55fabc46a0
Optimize ResultsController#configuration_results
Marcel Hlopko <marcel@hlopko.com>
parents:
237
diff
changeset
|
43 |
benchmark_info.name |
ce55fabc46a0
Optimize ResultsController#configuration_results
Marcel Hlopko <marcel@hlopko.com>
parents:
237
diff
changeset
|
44 |
end |
ce55fabc46a0
Optimize ResultsController#configuration_results
Marcel Hlopko <marcel@hlopko.com>
parents:
237
diff
changeset
|
45 |
|
178 | 46 |
def benchmark_parameters_json |
47 |
JSON.generate(benchmark_parameters.collect { |p| p.to_json } ) |
|
48 |
end |
|
49 |
||
233
67d68cf6356c
Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents:
231
diff
changeset
|
50 |
end |
133
bef72dea1e7e
Initial Rickshaw experiments
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
110
diff
changeset
|
51 |
|
233
67d68cf6356c
Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents:
231
diff
changeset
|
52 |
# == Schema Information |
67d68cf6356c
Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents:
231
diff
changeset
|
53 |
# |
67d68cf6356c
Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents:
231
diff
changeset
|
54 |
# Table name: benchmark_results |
67d68cf6356c
Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents:
231
diff
changeset
|
55 |
# |
67d68cf6356c
Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents:
231
diff
changeset
|
56 |
# id :integer not null, primary key |
67d68cf6356c
Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents:
231
diff
changeset
|
57 |
# benchmark_info_id :integer |
67d68cf6356c
Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents:
231
diff
changeset
|
58 |
# created_at :datetime |
67d68cf6356c
Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents:
231
diff
changeset
|
59 |
# updated_at :datetime |
67d68cf6356c
Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents:
231
diff
changeset
|
60 |
# benchmark_batch_id :integer |
67d68cf6356c
Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents:
231
diff
changeset
|
61 |
# |
67d68cf6356c
Fix n+1 on results/configurations/:id
Marcel Hlopko <marcel@hlopko.com>
parents:
231
diff
changeset
|
62 |