3 ms·
Profile Ruby 2.0 apps using DTrace - part 2
- garysweaver 13y agoNeat! 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