Add instrumentation to the MessagePumpMac family of classes.
commit370d7cb8ebcaaac4cf1f9075981b41de92348bc7
authorrsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Thu, 5 Sep 2013 14:53:12 +0000 (5 14:53 +0000)
committerrsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Thu, 5 Sep 2013 14:53:12 +0000 (5 14:53 +0000)
tree1c0646ca7e052c93cc4302912ce6fb51918a723c
parent3af9b8643f76614e47bf5d36b987c0ccb60b0ddc
Add instrumentation to the MessagePumpMac family of classes.

This adds UMA-uploaded histograms of sampling intervals for key points of data:
* Total time spent in a CFRunLoop
* Total time waiting in CFRunLoop
* Total time servicing MessagePump::Delegate (the MessageLoop)
* The MessageLoop queue size and queueing delay before servicing

It adds 1 second sampling for 15 seconds at startup, only for the main thread
(NSApplication-based) run loops.

The data will be used to determine if adding scheduling-like behavior to the
MessagePump will result in more efficient processing of the MessageLoop work.

An unforunate side effect of this change is exposing another method on the
MessagePump::Delegate interface, but there does not appear to be a better way
to do this.

BUG=264886
R=jar@chromium.org, mark@chromium.org

Review URL: https://codereview.chromium.org/22911026

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@221427 0039d316-1c4b-4281-b951-d872f2087c98
base/message_loop/message_loop.cc
base/message_loop/message_loop.h
base/message_loop/message_pump.h
base/message_loop/message_pump_mac.h
base/message_loop/message_pump_mac.mm