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

Reply via email to