Class: Drnbench::RequestResponse::Result
- Inherits:
-
Object
- Object
- Drnbench::RequestResponse::Result
- Defined in:
- lib/drnbench/request-response/result.rb
Instance Attribute Summary collapse
-
#duration ⇒ Object
readonly
Returns the value of attribute duration.
-
#n_clients ⇒ Object
readonly
Returns the value of attribute n_clients.
-
#statuses ⇒ Object
readonly
Returns the value of attribute statuses.
Class Method Summary collapse
Instance Method Summary collapse
- #<<(result) ⇒ Object
- #average_elapsed_time ⇒ Object
-
#initialize(params) ⇒ Result
constructor
A new instance of Result.
- #max_elapsed_time ⇒ Object
- #min_elapsed_time ⇒ Object
- #queries_per_second ⇒ Object
- #status_percentages ⇒ Object
- #to_s ⇒ Object
- #total_n_requests ⇒ Object
- #values ⇒ Object
Constructor Details
#initialize(params) ⇒ Result
Returns a new instance of Result.
34 35 36 37 38 39 40 41 42 |
# File 'lib/drnbench/request-response/result.rb', line 34 def initialize(params) @n_clients = params[:n_clients] @duration = params[:duration] @results = [] @total_elapsed_time = 0.0 @elapsed_times = [] @statuses = {} end |
Instance Attribute Details
#duration ⇒ Object (readonly)
Returns the value of attribute duration.
19 20 21 |
# File 'lib/drnbench/request-response/result.rb', line 19 def duration @duration end |
#n_clients ⇒ Object (readonly)
Returns the value of attribute n_clients.
19 20 21 |
# File 'lib/drnbench/request-response/result.rb', line 19 def n_clients @n_clients end |
#statuses ⇒ Object (readonly)
Returns the value of attribute statuses.
19 20 21 |
# File 'lib/drnbench/request-response/result.rb', line 19 def statuses @statuses end |
Class Method Details
.keys ⇒ Object
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/drnbench/request-response/result.rb', line 22 def keys [ :n_clients, :total_n_requests, :queries_per_second, :min_elapsed_time, :max_elapsed_time, :average_elapsed_time, ] end |
Instance Method Details
#<<(result) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/drnbench/request-response/result.rb', line 44 def <<(result) clear_cached_statistics @results << result @statuses[result[:status]] ||= 0 @statuses[result[:status]] += 1 @elapsed_times << result[:elapsed_time] @total_elapsed_time += result[:elapsed_time] end |
#average_elapsed_time ⇒ Object
76 77 78 |
# File 'lib/drnbench/request-response/result.rb', line 76 def average_elapsed_time @average_elapsed_time ||= @total_elapsed_time / @elapsed_times.size end |
#max_elapsed_time ⇒ Object
72 73 74 |
# File 'lib/drnbench/request-response/result.rb', line 72 def max_elapsed_time @max_elapsed_time ||= @elapsed_times.min end |
#min_elapsed_time ⇒ Object
68 69 70 |
# File 'lib/drnbench/request-response/result.rb', line 68 def min_elapsed_time @min_elapsed_time ||= @elapsed_times.min end |
#queries_per_second ⇒ Object
60 61 62 |
# File 'lib/drnbench/request-response/result.rb', line 60 def queries_per_second @queries_per_second ||= total_n_requests.to_f / @duration end |
#status_percentages ⇒ Object
64 65 66 |
# File 'lib/drnbench/request-response/result.rb', line 64 def status_percentages @status_percentages ||= prepare_status_percentages end |
#to_s ⇒ Object
80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/drnbench/request-response/result.rb', line 80 def to_s "Total requests: #{total_n_requests} " + "(#{queries_per_second} queries per second)\n" + "Status:\n" + status_percentages.collect do |status, percentage| " #{status}: #{percentage} %" end.join("\n") + "\n" + "Elapsed time:\n" + " min: #{min_elapsed_time} sec\n" + " max: #{max_elapsed_time} sec\n" + " average: #{average_elapsed_time} sec" end |
#total_n_requests ⇒ Object
56 57 58 |
# File 'lib/drnbench/request-response/result.rb', line 56 def total_n_requests @total_n_requests ||= @results.size end |
#values ⇒ Object
93 94 95 96 97 |
# File 'lib/drnbench/request-response/result.rb', line 93 def values self.class.keys.collect do |column| send(column) end end |