class PerformanceStats

Constants

CREATE_AND_DELETE_ACCESS_TIMES
GET_ACCESS_TIMES
SET_ACCESS_TIMES

Public Instance Methods

average_access() click to toggle source
# File lib/engine/app/lib/commands/performance_stats.rb, line 9
def average_access
  key = generate_key
  backend.set(key, rand)

  time = Benchmark.measure{ GET_ACCESS_TIMES.times{ backend.get(key) } }
  backend.del(key)

  time.real / GET_ACCESS_TIMES
end
average_create_and_delete() click to toggle source
# File lib/engine/app/lib/commands/performance_stats.rb, line 27
def average_create_and_delete
  key = generate_key
  time = Benchmark.measure do
    CREATE_AND_DELETE_ACCESS_TIMES.times do
      backend.set(key, rand)
      backend.del(key)
    end
  end

  time.real / CREATE_AND_DELETE_ACCESS_TIMES
end
average_write() click to toggle source
# File lib/engine/app/lib/commands/performance_stats.rb, line 19
def average_write
  key = generate_key
  time = Benchmark.measure{ SET_ACCESS_TIMES.times{ backend.set(key, rand) } }
  backend.del(key)

  time.real / SET_ACCESS_TIMES
end
result() click to toggle source
# File lib/engine/app/lib/commands/performance_stats.rb, line 39
def result
  { average_access: format_result_in_ms(average_access),
    average_write: format_result_in_ms(average_write),
    average_create_and_delete: format_result_in_ms(average_create_and_delete)}
end

Private Instance Methods

format_result_in_ms(result) click to toggle source
# File lib/engine/app/lib/commands/performance_stats.rb, line 50
def format_result_in_ms(result)
  "#{format('%.3f', result.to_f * 1000)} ms"
end
generate_key() click to toggle source
# File lib/engine/app/lib/commands/performance_stats.rb, line 46
def generate_key
  rand.to_s
end