I've been having a look through the code responsible for printing how
much time was spent in Active Record at the end of an action. My
reading of the code + experiments suggests that any database time
after the render is not counted.
It seems to me that in controller_runtime.rb in Active Record,
append_info_to_payload should in fact read
def append_info_to_payload(payload)
super
payload[:db_runtime] = db_runtime +
ActiveRecord::LogSubscriber.reset_runtime
end
Is this just an oversight?
Fred
I've been having a look through the code responsible for printing how
much time was spent in Active Record at the end of an action. My
reading of the code + experiments suggests that any database time
after the render is not counted.
Yeah, my numbers are very confusingly out of whack. This is a good explanation.
It seems to me that in controller_runtime.rb in Active Record,
append_info_to_payload should in fact read
def append_info_to_payload(payload)
super
payload[:db_runtime] = db_runtime +
ActiveRecord::LogSubscriber.reset_runtime
end
I tried this and got a bunch of test failures with nil in places where
it wasn't expected.
Is this just an oversight?
Yeah, I doubt this was deliberate :).
> I've been having a look through the code responsible for printing how
> much time was spent in Active Record at the end of an action. My
> reading of the code + experiments suggests that any database time
> after the render is not counted.
Yeah, my numbers are very confusingly out of whack. This is a good explanation.
> It seems to me that in controller_runtime.rb in Active Record,
> append_info_to_payload should in fact read
> def append_info_to_payload(payload)
> super
> payload[:db_runtime] = db_runtime +
> ActiveRecord::LogSubscriber.reset_runtime
> end
I tried this and got a bunch of test failures with nil in places where
it wasn't expected.
I'll have a poke around and see if I can fix this
Fred
Yeah, I hadn't quite thought things through - turns out no AR time was
being logged at all if there was no render (ie the response was a
redirect) and I'd only been looking at the render case while I was
messing around. I've stuck a patch up at
https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/6749
Fred