Add Runnable markers for runnables wrapped in runners (TaskQueue, AbstractThread, TaskQueueWrapper) and other places (DelayedRunnable)
Categories
(Core :: Gecko Profiler, enhancement, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox97 | --- | fixed |
People
(Reporter: pehrsons, Assigned: pehrsons)
References
Details
Attachments
(1 file)
(deleted),
text/x-phabricator-request
|
Details |
These runners (typically for tail dispatched runnables, in the case of TaskQueue and AbstractThread) tend to show up as TaskQueue::Runner
in a profile. They do run any number of runnables themselves though, so adding native markers for these would provide extra detail to a profile.
Assignee | ||
Comment 1•3 years ago
|
||
The Runnable markers in the profilers are handy, but miss many types of
runnables. This includes most of those that wrap another runnable and run that
at a (possibly) later time.
AbstractThread, TaskDispatcher and TaskQueue does this for e.g. tail dispatched
tasks.
TaskQueueWrapper does this when wrapping webrtc tasks (and Mozilla Runnables) to
be run in a Mozilla TaskQueue with some overhead on the stack.
DelayedRunnable wraps a runnable to be run after a timeout.
It would perhaps be better in many cases to ignore the intermediate runnables,
but I haven't seen a straight forward way to achieve this.
More detailed data could be added on a case by case basis, for instance the
delay for a DelayedRunnable (incl. actual vs. target delay) or the scope of a
task in which a tail-dispatched runnable was dispatched. But this is also true
for the status quo (for instance the time from dispatch to run) so I leave these
ideas as future work.
Comment 3•3 years ago
|
||
Backed out for causing failures at browser_interaction-between-interfaces.js.
Backout link: https://hg.mozilla.org/integration/autoland/rev/986ca78e8e52bd4620a3d2c794a60da16213bbde
Failure log: https://treeherder.mozilla.org/logviewer?job_id=363081925&repo=autoland&lineNumber=4340
Comment 5•3 years ago
|
||
bugherder |
Description
•