Skip to content

Instantly share code, notes, and snippets.

@mirakui
Created June 12, 2012 14:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mirakui/2917763 to your computer and use it in GitHub Desktop.
Save mirakui/2917763 to your computer and use it in GitHub Desktop.
WTF profiler and benchmarker in Rails 3.2
% rails -v
Rails 3.2.5
% rails benchmarker -h
Usage: rails benchmarker 'Ruby.code' 'Ruby.more_code' ... [OPTS]
-r, --runs N Number of runs.
Default: 4
-o, --output PATH Directory to use when writing the results.
Default: tmp/performance
-m, --metrics a,b,c Metrics to use.
Default: wall_time,memory,objects,gc_runs,gc_time
% rails benchmarker 'sleep 1' ↓えっFile not found? rubyコード書くんじゃないの…
/Users/issei-naruta/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:167:in `block in non_options': file not found: sleep 1 (ArgumentError)
from /Users/issei-naruta/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:146:in `map!'
from /Users/issei-naruta/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:146:in `non_options'
from /Users/issei-naruta/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:207:in `non_options'
from /Users/issei-naruta/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:52:in `process_args'
from /Users/issei-naruta/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/minitest/unit.rb:891:in `_run'
from /Users/issei-naruta/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/minitest/unit.rb:884:in `run'
from /Users/issei-naruta/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:21:in `run'
from /Users/issei-naruta/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:326:in `block (2 levels) in autorun'
from /Users/issei-naruta/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:27:in `run_once'
from /Users/issei-naruta/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:325:in `block in autorun'
% rails profiler -h
Usage: rails benchmarker 'Ruby.code' 'Ruby.more_code' ... [OPTS] ←えっbenchmarker? profilerじゃないの…
-r, --runs N Number of runs.
Default: 1
-o, --output PATH Directory to use when writing the results.
Default: tmp/performance
-m, --metrics a,b,c Metrics to use.
Default: process_time,memory,objects
-f, --formats x,y,z Formats to output to.
Default: flat,graph_html,call_tree,call_stack
% rails profiler 'sleep 1'
/Users/issei-naruta/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:167:in `block in non_options': file not found: sleep 1 (ArgumentError)
from /Users/issei-naruta/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:146:in `map!'
from /Users/issei-naruta/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:146:in `non_options'
from /Users/issei-naruta/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:207:in `non_options'
from /Users/issei-naruta/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:52:in `process_args'
from /Users/issei-naruta/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/minitest/unit.rb:891:in `_run'
from /Users/issei-naruta/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/minitest/unit.rb:884:in `run'
from /Users/issei-naruta/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:21:in `run'
from /Users/issei-naruta/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:326:in `block (2 levels) in autorun'
from /Users/issei-naruta/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:27:in `run_once'
from /Users/issei-naruta/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/test/unit.rb:325:in `block in autorun'
@mischa
Copy link

mischa commented Jul 18, 2012

Did you figure out how to get around this?

@mirakui
Copy link
Author

mirakui commented Jul 19, 2012

No. I can't understand so far.

@latentflip
Copy link

Really late to the party I know, but in case anyone else comes across this, you need to install test-unit gem, i.e. stick gem 'test-unit' in your Gemfile and run bundle install. Then it should work.

Yay Rails modularity.

@chrisnicola
Copy link

The error message for this scenario is a complete fail.

@abeger
Copy link

abeger commented Apr 23, 2013

Thanks, @latentflip. That would've driven me nuts for a long time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment