DevTools/Performance: Difference between revisions
(Update resources) |
(Updated links to Bugzilla.) |
||
| Line 56: | Line 56: | ||
* Collaborate with Gecko Profiler team | * Collaborate with Gecko Profiler team | ||
== | == Bugzilla == | ||
=== Helpful Bug Searches === | |||
{| class="wikitable" | |||
|- | |||
! Search | |||
! Description | |||
|- | |||
| [https://bugzilla.mozilla.org/buglist.cgi?short_desc=%5Bmeta%5D&resolution=---&query_format=advanced&short_desc_type=allwordssubstr&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox Meta Bugs] | |||
| The top-level bugs that are a good starting place to see what work needs to get done. Dependent bugs are set to block these meta bugs. | |||
|- | |||
| [https://bugzilla.mozilla.org/buglist.cgi?keywords=good-first-bug%2C%20&keywords_type=allwords&list_id=13224534&known_name=perf&resolution=---&query_based_on=perf&query_format=advanced&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox Good First Bugs] | |||
| Looking for a place to start contributing? Pick up one of these bugs. | |||
|- | |||
| [https://bugzilla.mozilla.org/buglist.cgi?component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox&bug_status=__open__&list_id=12341891 All Open Bugs] | |||
| All of the bugs open on the tool. | |||
|- | |||
| [https://bugzilla.mozilla.org/buglist.cgi?f1=priority&short_desc=%5C%5Bmeta%5C%5D&o1=equals&resolution=---&query_format=advanced&short_desc_type=notregexp&v1=P1&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox Priority P1] | |||
| The most important bugs being actively worked on. | |||
|- | |||
| [https://bugzilla.mozilla.org/buglist.cgi?f1=priority&short_desc=%5C%5Bmeta%5C%5D&o1=equals&resolution=---&query_format=advanced&short_desc_type=notregexp&v1=P2&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox Priority P2] | |||
| Important bugs that need to get done soon. | |||
|- | |||
| [https://bugzilla.mozilla.org/buglist.cgi?f1=priority&short_desc=%5C%5Bmeta%5C%5D&o1=equals&resolution=---&query_format=advanced&short_desc_type=notregexp&v1=P3&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox Priority P3] | |||
| The backlog of work to do. | |||
|- | |||
| [https://bugzilla.mozilla.org/buglist.cgi?chfield=%5BBug%20creation%5D&chfieldfrom=2016-01-01&priority=--&resolution=---&classification=Client%20Software&chfieldto=Now&query_format=advanced&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox Untriaged Bugs] | |||
| New bugs that haven't been marked P1, P2, or P3. | |||
|- | |||
| [https://bugzilla.mozilla.org/buglist.cgi?keywords=intermittent-failure%2C%20&keywords_type=allwords&resolution=---&query_format=advanced&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox Intermittents] | |||
| Bugs filed on intermittent test failures. It's helpful to look them up on [https://brasstacks.mozilla.com/orangefactor/ Orange Factor] to see how often they are failing. | |||
|} | |||
=== Meta Bugs === | |||
{| class="wikitable" | |||
|- | |||
! Title | |||
! Meta Bug | |||
! All Dependent Bugs | |||
! P1 | |||
|- | |||
| React Templating | |||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1258642 Bug 1258642] | |||
| [https://bugzilla.mozilla.org/buglist.cgi?o2=substring&v2=1258642&resolution=---&query_format=advanced&f2=blocked&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox List all dependent bugs] | |||
| Yes | |||
|- | |||
| JIT View | |||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1143804 Bug 1143804] | |||
| [https://bugzilla.mozilla.org/buglist.cgi?o2=substring&v2=1143804&resolution=---&query_format=advanced&f2=blocked&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox List all dependent bugs] | |||
| Yes | |||
|- | |||
| Overview Timeline | |||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1147941 Bug 1147941] | |||
| [https://bugzilla.mozilla.org/buglist.cgi?o2=substring&v2=1147941&resolution=---&query_format=advanced&f2=blocked&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox List all dependent bugs] | |||
| | |||
|- | |||
| Call Tree Views | |||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1147936 Bug 1147936] | |||
| [https://bugzilla.mozilla.org/buglist.cgi?o2=substring&v2=1147936&resolution=---&query_format=advanced&f2=blocked&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox List all dependent bugs] | |||
| | |||
|- | |||
| Flame Views | |||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1169877 Bug 1169877] | |||
| [https://bugzilla.mozilla.org/buglist.cgi?o2=substring&v2=1169877&resolution=---&query_format=advanced&f2=blocked&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox List all dependent bugs] | |||
| | |||
|- | |||
| Waterfall View | |||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1159048 Bug 1159048] | |||
| [https://bugzilla.mozilla.org/buglist.cgi?o2=substring&v2=1159048&resolution=---&query_format=advanced&f2=blocked&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox List all dependent bugs] | |||
| | |||
|- | |||
| Allocation Views | |||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1160812 Bug 1160812] | |||
| [https://bugzilla.mozilla.org/buglist.cgi?o2=substring&v2=1160812&resolution=---&query_format=advanced&f2=blocked&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox List all dependent bugs] | |||
| | |||
|- | |||
| Perf Tools Performance | |||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1160330 Bug 1160330] | |||
| [https://bugzilla.mozilla.org/buglist.cgi?o2=substring&v2=1160330&resolution=---&query_format=advanced&f2=blocked&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox List all dependent bugs] | |||
| | |||
|- | |||
| Performance Tools Memory Footprint | |||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1191797 Bug 1191797] | |||
| [https://bugzilla.mozilla.org/buglist.cgi?o2=substring&v2=1191797&resolution=---&query_format=advanced&f2=blocked&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox List all dependent bugs] | |||
| | |||
|- | |||
| Gecko Profiler parity | |||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1176608 Bug 1176608] | |||
| [https://bugzilla.mozilla.org/buglist.cgi?o2=substring&v2=1176608&resolution=---&query_format=advanced&f2=blocked&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox List all dependent bugs] | |||
| | |||
|- | |||
| console.profile | |||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1173555 Bug 1173555] | |||
| [https://bugzilla.mozilla.org/buglist.cgi?o2=substring&v2=1173555&resolution=---&query_format=advanced&f2=blocked&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox List all dependent bugs] | |||
| | |||
|- | |||
| Operation Instrument | |||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1145271 Bug 1145271] | |||
| [https://bugzilla.mozilla.org/buglist.cgi?o2=substring&v2=1145271&resolution=---&query_format=advanced&f2=blocked&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox List all dependent bugs] | |||
| | |||
|- | |||
| Performance Tool Allocations | |||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1160812 Bug 1160812] | |||
| [https://bugzilla.mozilla.org/buglist.cgi?o2=substring&v2=1160812&resolution=---&query_format=advanced&f2=blocked&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox List all dependent bugs] | |||
| | |||
|- | |||
| Gaming/Web VR enhancements | |||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1196984 Bug 1196984] | |||
| [https://bugzilla.mozilla.org/buglist.cgi?o2=substring&v2=1196984&resolution=---&query_format=advanced&f2=blocked&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox List all dependent bugs] | |||
| | |||
|- | |||
| Extensible Performance Tools | |||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1173449 Bug 1173449] | |||
| [https://bugzilla.mozilla.org/buglist.cgi?o2=substring&v2=1173449&resolution=---&query_format=advanced&f2=blocked&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox List all dependent bugs] | |||
| | |||
|- | |||
| Active Intermittents | |||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1245886 Bug 1245886] | |||
| [https://bugzilla.mozilla.org/buglist.cgi?o2=substring&v2=1245886&resolution=---&query_format=advanced&f2=blocked&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox List all dependent bugs] | |||
| | |||
|- | |||
| Remote Profiling (WebIDE) | |||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1199284 Bug 1199284] | |||
| [https://bugzilla.mozilla.org/buglist.cgi?o2=substring&v2=1199284&resolution=---&query_format=advanced&f2=blocked&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox List all dependent bugs] | |||
| | |||
|- | |||
| UI/UX Papercuts | |||
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1145697 Bug 1145697] | |||
| [https://bugzilla.mozilla.org/buglist.cgi?o2=substring&v2=1145697&resolution=---&query_format=advanced&f2=blocked&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&product=Firefox List all dependent bugs] | |||
| | |||
|} | |||
== Resources == | == Resources == | ||
Revision as of 18:13, 20 September 2016
Team
| Current Team | fitzgen, gregtatum |
| Previous Members | jsantell, vporof (moved to Project Tofino, but are still available for questions) |
| Product Management | |
| SpiderMonkey Liason | shu |
| Gecko Layout Liason | |
| Mailing Group | dev-developer-tools |
Meetings
| Meetings | Time, Timezone, Location |
| Weekly Updates | There are currently no weekly meetings. |
Overview
DevTools' Performance Tools are a set of tools designed to identify, locate and resolve jank and responsiveness issues in web applications, FxOS apps, and Firefox itself. There are currently three main views for inspecting sampling and marker data (waterfall, call tree, flame chart).
Some experimental views are currently available optionally, such as allocation views, and the JIT Optimizations view.
Goals
- Provide insight to issues related to performance in web applications
- Offer guidance and suggestions on fixing performance problem areas
- Approach feature parity with Gecko Profiler for layout, rendering issues (meta bug)
- A consolidated area for any team on Gecko to implement their own view to solve specific performance issues
Internals
There are two main sets of data used in a recording profile -- marker data and profiler data.
Profiler data is the same information as the previous Profiler tool and that the Gecko Profiler uses. This samples the JS executing at a specified rate, and also returns painting, layout and marker data that currently only the Gecko Profiler uses. This tool only uses the sampling information, which lets us calculate cost and timing of functions in JS, as well as what JIT optimizations were used for JS.
Marker data is currently based on ProfileTimelineMarkers. Gecko Profiler uses the underlying profiler to generate markers, whereas Performance Tools uses these ProfileTimelineMarkers, which are emitted via docshell in realtime, rather than fetched on demand. The FxOS Performance team uses the same marker information from User Timing APIs, which this tool should most likely strive for.
These two data sources are merged together in a final recording, with waterfall view using marker data, and the call tree and flame graph using profiler data. We also use Debugger.Memory information to collect allocation information to track down instances where allocation pressure causes jank.
Initiatives
- JIT Optimizations view
- Operation Instrument (meta bug)
- Extensible Performance Tools
- Collaborate with FxOS Performance Task Force
- Collaborate with Gecko Profiler team
Bugzilla
Helpful Bug Searches
| Search | Description |
|---|---|
| Meta Bugs | The top-level bugs that are a good starting place to see what work needs to get done. Dependent bugs are set to block these meta bugs. |
| Good First Bugs | Looking for a place to start contributing? Pick up one of these bugs. |
| All Open Bugs | All of the bugs open on the tool. |
| Priority P1 | The most important bugs being actively worked on. |
| Priority P2 | Important bugs that need to get done soon. |
| Priority P3 | The backlog of work to do. |
| Untriaged Bugs | New bugs that haven't been marked P1, P2, or P3. |
| Intermittents | Bugs filed on intermittent test failures. It's helpful to look them up on Orange Factor to see how often they are failing. |
Meta Bugs
Resources
- Performance Tools MDN Docs
- Gecko Profiler
- ProfileTimelineMarkers
- Debugger.Memory
- Operation Instrument