Confirmed users
110
edits
m (added extensibility) |
(add a lot of info) |
||
| Line 1: | Line 1: | ||
{| | == Team == | ||
| | {| class="wikitable fullwidth-table" | ||
| | | Core Team || jsantell, vporof, fitzgen | ||
|- | |- | ||
| | | Product Management || Axel Kratel | ||
|- | |||
|- | | SpiderMonkey Liason || shu | ||
| | |- | ||
|- | | Gecko Layout Liason || | ||
| | |- | ||
|- | | Mailing Group || | ||
|- | |||
|} | |} | ||
==Meetings== | |||
{| class="wikitable fullwidth-table" | |||
| Meetings || Time, Timezone, Location | |||
|- | |||
| Weekly Updates (will be changed after Whistler)|| Thursday, 8:30am PST, Jordan Santell's vidyo room | |||
|} | |||
== Overview == | |||
[https://developer.mozilla.org/en-US/docs/Tools/Performance 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 ([https://developer.mozilla.org/en-US/docs/Tools/Performance/Waterfall waterfall], [https://developer.mozilla.org/en-US/docs/Tools/Performance/Call_Tree call tree], [https://developer.mozilla.org/en-US/docs/Tools/Performance/Flame_Chart flame chart]). | |||
Some experimental views are currently available optionally, such as allocation views, and the [https://wiki.mozilla.org/DevTools/Performance/JIT JIT Optimizations view]. | |||
[[File:Timeline-screenshot.png|800px|frameless|center|DevTools Performance Tool's Timeline]] | |||
== Goals == | |||
* Provide insight to issues related to performance in web applications | |||
* Provide insight to issues related to performance in FxOS Apps | |||
* Offer guidance and suggestions on fixing performance problem areas | |||
* Approach feature parity with Gecko Profiler for layout, rendering issues ([https://bugzilla.mozilla.org/show_bug.cgi?id=1176608 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 [https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Profiling_with_the_Built-in_Profiler 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 [http://mxr.mozilla.org/mozilla-central/source/dom/webidl/ProfileTimelineMarker.webidl 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 [https://wiki.mozilla.org/Firefox_OS/Performance_Task_Force 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 [https://developer.mozilla.org/en-US/docs/Tools/Debugger-API/Debugger.Memory Debugger.Memory] information to collect allocation information to track down instances where allocation pressure causes jank. | |||
== Initiatives == | |||
* [https://bugzilla.mozilla.org/show_bug.cgi?id=1143804 JIT Optimizations view] | |||
* [https://wiki.mozilla.org/DevTools/OperationInstrument Operation Instrument] ([https://bugzilla.mozilla.org/show_bug.cgi?id=1145271 meta bug]) | |||
* [https://bugzilla.mozilla.org/show_bug.cgi?id=1173449 Extensible Performance Tools] | |||
* Collaborate with FxOS Performance Task Force | |||
* Collaborate with Gecko Profiler team | |||
== Meta 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 Bugs] | |||
* [https://bugzilla.mozilla.org/show_bug.cgi?id=1147941 Overview Timeline] | |||
* [https://bugzilla.mozilla.org/show_bug.cgi?id=1147936 Call Tree Views] | |||
* [https://bugzilla.mozilla.org/show_bug.cgi?id=1169877 Flame Views] | |||
* [https://bugzilla.mozilla.org/show_bug.cgi?id=1159048 Waterfall View] | |||
* [https://bugzilla.mozilla.org/show_bug.cgi?id=1160812 Allocation Views] | |||
* [https://bugzilla.mozilla.org/show_bug.cgi?id=1160330 Perf Tools Performance] | |||
== Resources == | |||
* [https://developer.mozilla.org/en-US/docs/Tools/Performance Performance Tools MDN Docs] | |||
* [https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Profiling_with_the_Built-in_Profiler Gecko Profiler] | |||
* [http://mxr.mozilla.org/mozilla-central/source/dom/webidl/ProfileTimelineMarker.webidl ProfileTimelineMarkers] | |||
* [https://wiki.mozilla.org/Firefox_OS/Performance_Task_Force FxOS Performance Task Force] | |||
* [https://developer.mozilla.org/en-US/docs/Tools/Debugger-API/Debugger.Memory Debugger.Memory] | |||
* [https://wiki.mozilla.org/DevTools/OperationInstrument Operation Instrument] | |||
==Components== | ==Components== | ||