Just let you know about my intensive work on "Backtrack" or "Caller
Chain" which is about connecting Gecko Profiler and Task Tracer together
to catch all (instrumented) inter-object and inter-thread calls + IO
blocking, lock waits, queuing, event (nsIRunnable) dispatches, network
query/response pairing, etc. In the captured chain it's then possible
to select a path that is then back-walked and markers on it annotated as
"on the path". Result is a per-thread tape-like timeline showing where
your selected path is going though and how it is blocked by other stuff
running in parallel/sequentially on other threads
(dispatch/IO/dequeue/network response delays). This all should
completely replace Visual Event Tracer that is a good logging tool but
poor analytical tool. I'm piggybacking the existing PROFILER_LABEL_*
macros and TT's automatic instrumentation. UI should eventually end up
being part of Cleopatra (the Gecko Profiler UI).
See also bug https://bugzilla.mozilla.org/show_bug.cgi?id=1148204.
There is a WIP preview patch, but that won't probably say much.
In few days hopefully I will have an interactive UI mockup to show in a
blog post. I'll announce it in this forum as well.
-hb-
On 4/28/2015 0:14, Nick Fitzgerald wrote:
Hello platform hackers!
[
Operation Instrument
]
(htt
ps://wiki.mozilla.org/DevTools/OperationInstrument)
is a project that aims to add tracing instrumentation to Gecko and provide
a holistic view of where time is being spent and why.
Examples of traced operations include:
*
Style Recalculation
*
Layout
Reflow
* Painting
*
JavaScript
R
un-to-
C
ompletion
*
Etc.
The traced operations are displayed in the DevTools
Performance
panel
's timeline: https://wiki.mozilla.org/File:Timeline-screenshot.png
The goal is to have zero gaps between markers, so that we can always tell
at a high level what Gecko is doing, and what brought it there.
But
, the DevTools
team can't do it alone. You can help add new instrumentation to the parts
of Gecko you're familiar with. If you have an nsDocShell, it can be as easy
as using a simple RAII class: `mozilla::AutoTimelineMarker`. There is a
quick and easy tutorial with examples here:
https://wiki.mozilla.org/DevTools/OperationInstrument#Tutorial:_Instrumenting_New_Operations
Additionally, when you are implementing new features, please consider
adding instrumentation right off the bat!
Please take a look at the blockers of our meta bug, and file new bugs that
block it: https://bugzilla.mozilla.org/show_bug.cgi?id=1145271
Thanks,
Nick (and the whole DevTools team
)
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform