The super easy way to benchmark methods in a live application
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
test
.gitignore
CHANGELOG.md
Gemfile
LICENSE.txt
README.md
Rakefile
benchmeth.gemspec

README.md

Benchmeth

The super easy way to benchmark methods in a live application

class Person
  def compute
    # boom
  end
  benchmark :compute
end

Works with class methods, too

class Person
  def self.compute
    # yolo
  end
  class << self
    benchmark :compute
  end
end

Installation

Add this line to your application’s Gemfile:

gem 'benchmeth'

How to Use

By default, benchmark data is written to stdout in the following format:

compute : 1000 ms

but you can easily do whatever you want with it.

Benchmeth.on_benchmark do |method_name, seconds|
  puts "#{method_name} took #{seconds} seconds!"
end

To call a method without benchmarking, append _without_benchmark to the name.

ActiveSupport Notifications

You can switch to ActiveSupport notifications with:

Benchmeth.use_notifications = true

And subscribe with:

ActiveSupport::Notifications.subscribe "benchmark.benchmeth" do |*args|
  event = ActiveSupport::Notifications::Event.new(*args)
  puts "%s : %d ms" % [event.payload[:name], event.duration]
end

Contributing

Everyone is encouraged to help improve this project. Here are a few ways you can help: