3 ms·
Neat! Note that using Ruby's profiler is a heck of a lot easier. For example, here's how you can profile a call to a model method in Rails: http://stufftohelpyo
by garysweaver 13y ago
Neat! Note that using Ruby's profiler is a heck of a lot easier. For example, here's how you can profile a call to a model method in Rails: http://stufftohelpyouout.blogspot.com/2013/05/profiling-in-rails-with-rubys-profiler.html http://stufftohelpyouout.blogspot.com/2013/05/profiling-in-r...
rails c 2>&1 | tee profile.txt
require 'profile'
SomeClass.some_method
exit (or ctrl-d)
grep -E "SomeClass\#|cumulative self|seconds call" profile.txt
Example of results:
% cumulative self self total
time seconds seconds calls ms/call ms/call name
1.05 0.79 0.01 5 2.00 2.00 SomeClass#_validate_callbacks
0.00 0.95 0.00 13 0.00 0.00 SomeClass#_create_callbacks
0.00 0.95 0.00 13 0.00 0.00 SomeClass#_update_callbacks
0.00 0.95 0.00 15 0.00 0.00 SomeClass#reflections
0.00 0.95 0.00 12 0.00 0.00 SomeClass#_save_callbacks
...
Other things to look at:
* Benchmark: http://www.ruby-doc.org/stdlib-1.9.3/libdoc/benchmark/rdoc/Benchmark.html http://www.ruby-doc.org/stdlib-1.9.3/libdoc/benchmark/rdoc/B...
* Rails perf testing: http://guides.rubyonrails.org/performance_testing.html http://guides.rubyonrails.org/performance_testing.html
* Ruby-prof: https://github.com/rdp/ruby-prof https://github.com/rdp/ruby-prof
* Tracer: http://www.ruby-doc.org/stdlib-1.9.3/libdoc/tracer/rdoc/index.html http://www.ruby-doc.org/stdlib-1.9.3/libdoc/tracer/rdoc/inde...
* TracePoint: https://github.com/rubyunworks/tracepoint https://github.com/rubyunworks/tracepoint
* Autolog: https://github.com/garysweaver/autolog https://github.com/garysweaver/autolog
* set_trace_func: http://apidock.com/ruby/Kernel/set_trace_func http://apidock.com/ruby/Kernel/set_trace_func
See also: http://stackoverflow.com/a/16700778/178651 http://stackoverflow.com/a/16700778/178651