simplest_benchmark
Benchmark your code fastest, simplest and get pragmatic results.
- Perfectly formated for get into an spreadsheet and analyze it.
- Inegrated with Rails logger
- Not Rails ? don't worry, it creates a cutom simplest_benchmark.log log file
- only two methods: sb_begin, and sb_end
It's so simple:
Installation
gem install simplest_benchmark
or in your Gemfile:
gem 'simplest_benchmark'
Usage
Simple use
require 'simplest_benchmark'
class MySlowClass
include SimplestBenchmark
def slow_method
var = get_some_value
sb_begin('heavy work')
some_hard_work
sb_end('heavy work')
end
end
Nested use
require 'simplest_benchmark'
class MySlowClass
include SimplestBenchmark
def slow_method
var = get_some_value
sb_begin('heavy work')
some_hard_work
sb_end('heavy_work')
end
def some_hard_work
sb_begin('heavy work 1')
hard_work_part1
sb_end('heavy work 1')
sb_begin('heavy work 2')
hard_work_part2
sb_end('heavy work 2')
end
end
Results
Results go to Rails log file, or to simplest_benchmark.log file. You can simply do
cat log/development.log | grep DEBUG
and obtain something like:
DEBUG 2015-11-19 17:13:24 -0300 1447964004.003463 BEGIN 0 heavy work
DEBUG 2015-11-19 17:13:24 -0300 1447964004.003463 BEGIN 1 heavy work 1
DEBUG 2015-11-19 17:13:33 -0300 1447964013.4338706 END 1 heavy work 1 11.3775455951690674
DEBUG 2015-11-19 17:13:33 -0300 1447964004.003463 BEGIN 1 heavy work 2
DEBUG 2015-11-19 17:13:38 -0300 1447964013.4338706 END 1 heavy work 2 5.38402085203944020
DEBUG 2015-11-19 17:13:38 -0300 1448652456.6792688 END 0 heavy work 17.622838973999023
- field1: DEBUG text
- field2: timestamp of event
- field3: timestamp in float format
- field4: BEGIN or END event
- field5: level of deepness: For nested usage, each nested sb_begin gonna +1 this number
- field6: label identifier
- field7: amount of seconds transcurred between last sb_begin and current sb_end call.
it is all. Enjoy.