summaryrefslogtreecommitdiffstats
path: root/docs/performance/reporting_a_performance_problem.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/performance/reporting_a_performance_problem.md')
-rw-r--r--docs/performance/reporting_a_performance_problem.md94
1 files changed, 94 insertions, 0 deletions
diff --git a/docs/performance/reporting_a_performance_problem.md b/docs/performance/reporting_a_performance_problem.md
new file mode 100644
index 0000000000..efe4f09f9c
--- /dev/null
+++ b/docs/performance/reporting_a_performance_problem.md
@@ -0,0 +1,94 @@
+# Reporting a Performance Problem
+
+This article will guide you in reporting a performance problem using the
+built-in Gecko Profiler tool.
+
+## Enabling the Profiler toolbar button
+
+These steps only work in Firefox 75+.
+
+1. Visit [https://profiler.firefox.com/](https://profiler.firefox.com/)
+2. Click on *Enable Profiler Menu Button*
+3. The profiler toolbar button will show up in the top right of the URL
+ bar as a small stopwatch icon.
+
+![image1](img/reportingperf1.png)
+
+4. You can right-click on the button and remove it from the toolbar
+ when you're done with it.
+
+## Using the Profiler
+
+When enabled, the profiler toolbar button is not recording by default.
+Recording can be done by clicking on the toolbar icon to open its panel.
+Make sure to choose an appropriate setting for the recording (if you're
+not sure, choose Firefox Platform), and then choosing **Start
+Recording**. The toolbar icon turns blue when it is recording.
+
+The profiler uses a fixed size buffer to store sample data. When it runs
+out of space in its buffer, it discards old entries so you may want to
+increase the buffer size if you find you are unable to capture the
+profile quickly enough after you notice a performance problem. If you
+choose Custom Settings (and then clicking Edit Settings) for the
+profiler, you can adjust the size of the buffer (presently defaults to
+90 MB) and the time interval between data collection (presently defaults
+to 1 ms). Note that increasing the buffer size uses more memory and can
+make capturing a profile take longer.
+
+![image2](img/reportingperf2.png)
+
+Using the keyboard shortcuts is often more convenient than using the
+mouse to interact with the UI:
+
+* Ctrl+Shift+1 - Start/Stop the profiler
+* Ctrl+Shift+2 - Take a profile and launch the viewer to view it
+
+## Capturing and sharing a profile
+
+1. While the profiler is recording, reproduce the performance problem.
+ If possible let the problem manifest itself for 5-10 seconds.
+2. Press **Ctrl+Shift+2** or click on the profiler toolbar icon in the
+ top right and select **Capture**. Try to do this within a few
+ seconds from reproducing the performance problem as only the last
+ few seconds are recorded. If the timeline has a large red block
+ it's a good sign. ![Jank markers appearing in the Perf.html profile analysis tool.](img/PerfDotHTMLRedLines.png)
+3. The data will open in a new tab. Wait until the \"Symbolicating call
+ stacks\" notification disappears before sharing the profile.
+4. There will be a button in the top right labeled **Upload Local Profile** which
+ will allow you to upload this profile and once completed will write
+ out a link. Before uploading, the Upload button asks you what data
+ you'd like to publish to our servers.
+5. Note that while it's possible to strip profiles of potentially
+ privacy sensitive information, the less information a profile
+ contains, *the harder it is to analyze and turn into actionable
+ data.*
+6. Once uploaded, copy permalink URL to your clipboard by right
+ clicking and [add the profile URL to a bug](https://bugzilla.mozilla.org/enter_bug.cgi?product=Core&component=Performance)
+ for your performance problem and/or send it to the appropriate
+ person. Try to give some context about what you were doing when the
+ performance problem arose such as the URL you were viewing and what
+ actions were you doing (ex. scrolling on gmail.com).
+
+![image3](img/reportingperf3.png)
+
+## Viewing addon performance in GeckoView
+
+Sometimes an addon or more are slowing down Firefox. These addons might
+be using the extension API in ways that were not meant to. You can see
+which of these addons are causing problems by adding the
+**moz-extension** filter.
+
+![moz-extension filter print screen](img/EJCrt4N.png)
+
+Make sure you are selecting the process that is using up the CPU since
+all of the processes are shown. You might have a content process using
+up the CPU and not the main one.
+
+Make sure you are doing whatever it is that slows down Firefox while
+recording the profile. For example you might have one addon that slows down page load
+and another one that slows down tab switch.
+
+Your first reflex once you find what addon is slowing down the profile
+might be to disable it and search for alternatives. Before you do this,
+please share the performance profile with the addon authors through a
+bug report. Gecko profiler allows you to share a link with the profile.