Open Bug 1145271 (operation-instrument) Opened 6 years ago Updated 2 years ago

[meta] Operation Instrument


(DevTools :: Performance Tools (Profiler/Timeline), enhancement, P3)



(Not tracked)


(Reporter: jsantell, Unassigned)


(Depends on 13 open bugs)


(Keywords: meta)

We need an easy way for platform developers to add timeline markers to new features. DevTools can't realistically add markers to everything, so if we make this part of the process, and very easy with great docs and one-liners, this'll go a long way. The memory team did something similar with about:memory

* Should propose on dev.platform that every new gecko feature that touches main thread should add timeline markers
* ask reviewers to consider r- on patches that do not do this
* Make tools good enough so that platform developers WANT their features with markers

* Add a simple way to add TimelineMarkers. bug 1145247

* Make it clear and easy how to implement TimelineMarkers in whatever is done on platform. bug 1145248

* Automatically display all timeline markers; new markers do not need to update devtools client code to display them. Will need to probably tag markers with a "category" (and define broad categories), as well figuring out how to color them when multiple markers are on the same horizontal line (bug 1145264). Once we clarify how categories work and are rendered, the client should not need to be updated, unless we want to further specify a marker with a new color, or a new generalized category. bug 1145269

Also, any cool codenames like "memshrink"/"project snappy" would be cool.
Depends on: 1145645
Not specifically targeting the v2 release (for web devs). Correct me if I'm wrong here.
No longer blocks: perf-tool-v2
(Was about to file a new bug, but I see this bug exists.)

Right now, there are often empty spaces in the timeline, where it isn't clear where the platform is spending time. We should add more and more instrumentation to the platform with more and more profiler timeline markers, resulting in less and less empty areas.

We should always be able to know what the platform is doing by looking at the waterfall timeline created by the markers.

In addition to the in-community evangelism of comment 0, we should have a cycle like this to minimize existing gaps:

1. Determine where gecko is spending time that doesn't show up in the timeline graph. This will probably require the gecko addon profiler b/c of its superior C++ profiling. This will of course vary from test case to test case.

2. Prioritize areas discovered in (1) by most time spent in that area.

3. Add new timeline profiler markers in order of prioritization from (2).

4. GOTO 1 (perhaps with new test case)
Alias: operation-instrument
Summary: [meta] Timeline Markers → [meta] Instrument Gecko w/ moar timeline markers
For reference, here are the markers Chrome has in its timeline:
Depends on: 1152992
Summary: [meta] Instrument Gecko w/ moar timeline markers → [meta] Operation Instrument
Depends on: 1153706
Depends on: 1104202
Depends on: 1074935
Depends on: 1164338
Depends on: 1164702
Depends on: 1164333
Depends on: 1166004
Depends on: 1162662
Depends on: 1160307
Depends on: 1131661
Depends on: 929469
Depends on: 1158616
Depends on: 1169115
Depends on: 1170865
Depends on: 1169564
Depends on: 1090110
Triaging. Filter on ADRENOCORTICOTROPIC (yes).
OS: Mac OS X → Unspecified
Priority: -- → P1
Hardware: x86 → Unspecified
Version: 37 Branch → unspecified
Severity: normal → enhancement
Keywords: meta
Priority: P1 → P3
Product: Firefox → DevTools
You need to log in before you can comment on or make changes to this bug.