MiniProfiler Ruby: Getting a better breakdown for non-SQL calls

mvc-mini-profiler, profiling, ruby-on-rails-3

Solution

You can insert custom steps in the areas you think are responsible.

# in your initializer
Rack::MiniProfiler.profile_method SomeClass, "method"

# or 
Rack::MiniProfiler.step "some step" do 
  # your code
end

Additionally you can run ruby-prof to figure out what is going on everywhere and then strategically instrument.

Problem

I'm trying to profile some of our Rails controllers using Mini Profiler, but I think I'm trying to use it for something it isn't built for. I've got it profiling SQL queries just fine, but I need to break down the non-SQL code, because we're seeing a lot of chug in some pages, but the SQL doesn't seem to be the problem. Here's a screenshot of what I'm talking about: http://cl.ly/image/2J3i1C1c072O You can see that the top level (`Executing action: show`) takes 9136ms to complete, but the queries executed are only a fraction of that total time. I suppose what I'm asking is if there's a way to display more "detailed" information about the code being executed, or if I need to find a different tool to use. New Relic isn't an option, unfortunately. Thanks for any help.

Original source