Performance Triage

From MozillaWiki
Jump to: navigation, search


Idea.png
If you have any feedback/suggestions/questions regarding the performance triage process, you can share them in #perf-triage, or reach out to Dave Hunt or Frank Doty.

Nomination

Bugzilla

To (re)nominate a bug for triage, set the Performance Impact flag in Bugzilla to ?

This can be found by clicking Show Advanced Fields followed by Set bug flags when entering a new bug:

Bugzilla performance nomination on new bug form.png

Or by expanding the Tracking section when editing an existing bug:

Screenshot 2022-02-24 at 19.53.54.png

GitHub

To nominate a bug for triage, add the Performance label to an issue. This can be done by filing an new issue with the "Performance issue" template:

Screenshot of file a "Performance issue" template on GitHub

Or by opening an existing issue on GitHub and selecting the label from the right-hand bar:

Screenshot of adding a performance label on GitHub

Currently, only the following GitHub repositories are supported:

Queries

Performance triage

Full Query
ID Summary Status
1363383 Channel switching on Slack is slow NEW
1419502 Specific PDF page takes 10s to render (200% cpu) REOPENED
1436734 pdf with many images uses a lot of memory on scrolling NEW
1445735 Unable to render specific PDF file. NEW
1448783 Firefox launcher is blocked in slow DNS queries for local hostname NEW
1485065 Firefox Pdf single page document loads several minutes while other browsers instantly (attached sample PDF) NEW
1534745 cookies.sqlite is read on the main thread before first paint NEW
1536420 PDF uses lot of memory when decoding UNCONFIRMED
1580638 Startup default browser check causes mainthread IO on Linux NEW
1606631 Inefficient z-ordering of elements in the browser UI, causes large layers with current WebRender heuristics ASSIGNED
1625271 getNewSideloads checks for system add-ons last modified time on the main thread at the end of startup NEW
1627086 Init safe browsing later during startup NEW
1646300 Having YouTube tab open with no video playing shows high energy usage UNCONFIRMED
1651434 Tab loading takes a very long time after a new startup or a restart NEW
1674511 Reduce the amount of work we do for location hash and history push/replaceState changes in XULBrowserWindow's onLocationChange NEW
1695273 [NSFW] Slowness remaining on scrolling nsfw reddit after bug 1694017 is resolved NEW
1731514 Extreme memory surge when opening a certain pdf-file NEW
1756320 Extremely high memory usage with only 1 or 2 tabs open. REOPENED
1785979 Slow rendering and opening of certain PDF types NEW
1789275 Could we startup the skeleton ui earlier? NEW
1805122 React app performance improves dramatically when page is not visible NEW
1844961 linkedin.com will crash the whole computer (El Capitain, Mac OS X 10.11.6) by using up the whole storage. The browser task (FirefoxCP Web Content) grows and grows in the GByte ranges. NEW
1846115 The debugger can cause webpage lagging UNCONFIRMED
1870209 Webpage sometimes no response in Fenix with high CPU usage UNCONFIRMED
1870405 Very slow time to first page load when opening Fenix with hundreds of tabs UNCONFIRMED
1874013 Incorrect and slow rendering of some PDF files NEW
1878133 PDF takes excessively long to render NEW
1880752 YouTube and other web-based video sites sometimes dropping frames NEW
1884394 Frequent inability to use 'back' NEW
1887129 Slow responses on trivia game in Fenix Nightly vs. Chrome on same device & network connection NEW
1888064 Firefox takes a long time to start prior to Load a Website UNCONFIRMED
1888322 Latest update crashes and cause processor loop crash. UNCONFIRMED
1888439 Memory leak on Business Insider UNCONFIRMED
1888525 helpdeskgeek site runs a lot more JS in Firefox than in Chrome (checkerboards during scrolling) NEW
1889461 Ozon.ru eats up RAM UNCONFIRMED
1889648 Fenix restarts itself soon after getting killed by the user NEW
1889722 FirefoxCP Isolated Content Using Almost 10GB RAM UNCONFIRMED
1890537 Firefox nearly froze when I zoomed in in this PDF NEW
1890599 LCP end timestamp doesn't include composition time NEW
1890699 Every time Firefox has an error, it appears to take over my OS, which is Windows 11, as the entire screen temporarily freezes up along with Mozilla, even shutting down File Explorer. UNCONFIRMED
1891345 Enourmous RAM usage (60Gig) UNCONFIRMED
1891411 Very high memory usage(95%) by a single website UNCONFIRMED
1891878 I believe that Mozilla Firefox has memory leak issues. UNCONFIRMED
1891979 Very High Ram usage UNCONFIRMED
1892231 Add flag in page load event to identify whether webdriver is being used REOPENED
1892367 3%-5% regression on multiple AWFY-SP2 benchmark suites around 17Apr2024 (mostly on todo-mvc-Deleting- XXXX type benchmarks) NEW
1892626 Firefox randomly freezes UNCONFIRMED
1893080 Uses a lot of ram, literally a lot even for less number of tabs opened UNCONFIRMED
1893459 Memory Leak (Isolated Web Container) UNCONFIRMED
1893481 Firefox uses all RAM when run for several days UNCONFIRMED

50 Total; 50 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Performance triage (pending-needinfo)

Full Query
ID Summary Status
1709763 Menus show a delay of 4-5 seconds on mouse input (Wayland/WebRnender?) UNCONFIRMED
1805255 Firefox has 50% more soft page faults than Chrome running Speedometer 2 NEW
1866145 Delay opening new windows due to long GC slices in the parent process NEW
1870532 Firefox 120.0.1 grabs 100% of cpu resources and freezes UNCONFIRMED
1872368 Since the last update 121.0 Firefox uses insane amount of Ram 99% of my 32GB without any real reason and if it gets closed it buges out for 10 seconds spikes over the ram limit just to slowly close UNCONFIRMED
1872414 Firefox lags after latest update, high memory use (121.0 12-2023) UNCONFIRMED
1875547 Slow (single-threaded) PDF rendering for documents with lots of vector shapes NEW
1876708 firefox using 3.4gb of memory with a few tabs open UNCONFIRMED
1877007 extremely high CPU usage even with one tab open on the splash screen UNCONFIRMED
1879177 3 youtube tabs are using 7GB of RAM UNCONFIRMED
1879905 firefox consuming 2 GB of RAM with 8 tabs open UNCONFIRMED
1882916 Firefox consumes a lot of CPU and makes me Mac M2 hang for a good 15 seconds UNCONFIRMED
1882952 Firefox Browser Freezes when Opening Multiple Tabs UNCONFIRMED
1883246 firefox using large amount of memory UNCONFIRMED
1883475 huge amount of memory storage (constantly) idk why pls help/................................................................................................................................................. UNCONFIRMED
1883507 Memory usage is too high 23GB and up to 60% CPU usage. UNCONFIRMED
1883669 Memory Problem UNCONFIRMED
1884296 Firefox is using lots of memory when only having several tabs open UNCONFIRMED
1885796 Use to many Ram UNCONFIRMED

19 Total; 19 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Recently opened bugs with performance keywords in the summary

Full Query
ID Summary Status
1891593 `shader-f16` extension support in WebGPU NEW
1891655 Performance metric of getKeyRange test is not gathered NEW
1891685 Document the performance and hardware requirements for inference NEW
1891792 Eliminate Inline Event Handlers From FullPageTranslationsPanel NEW
1891821 Check Translations Divider Color and Adjust NEW
1891823 Check Translations Toggle State Colors NEW
1891829 Add variations of performance tests for testing using multiple databases ASSIGNED
1891935 Opening a new reader mode page in a new tab from a translatable page, doesn't display the translations icon NEW
1891950 Android idle battery drain due to Firefox UNCONFIRMED
1891986 Loading font files from %windir%\Fonts via broker causes regressions on some cold performance tests. ASSIGNED
1892083 Make MemoryNotificationDB a parent class of NotificationDB ASSIGNED
1892149 Remove or update probes expiring in Firefox 128: MEMORY_PHC_SLOTS_* NEW
1892165 Firefox 124 Performance Regression on High Intensity Video Streaming UNCONFIRMED
1892216 CSS Highlights API poor performance compared to Chrome NEW
1892272 Worker postMessage ThrottledEventQueue backpressure should be aware of outstanding structured serialization memory use in order to throttle the worker based on memory usage and not just runnable count NEW
1892383 Firefox crashes with out of memory | Crash in [@ OOM | large | webrender::renderer::Renderer::render_impl] UNCONFIRMED
1892391 PerformanceResourceTiming entries have original URLs when upgraded due to mixed content UNCONFIRMED
1892417 Survey on new tab page steals keyboard focus when user opens a new tab wanting to perform a search NEW
1892463 Translations Binding is Calling safeInvalidateBrowserToolbarView too much NEW
1892477 Firefox hangs on gpu fence expiration time out with i915 UNCONFIRMED
1892514 Copy-paste of text from local text editor to Codepen demo is slow, but deleting that text is fast. Copy-paste of text from browser to Codepen demo is fast, but deelting that text is slow (STR in comment 8) ASSIGNED
1892520 Slow iframe rendering (Google Maps) UNCONFIRMED
1892601 Graphical glitches on Mali GPU (Android) UNCONFIRMED
1892610 about:processes memory usage is not accurate UNCONFIRMED
1892715 Try to Improve Translations Wait State in Fenix NEW
1892716 Bad flickering with accelerated canvas on Mali Bifrost devices on htts://www.nperf.com NEW
1892722 [a11y] Consider making the "Download complete languages for faster..." item larger NEW
1893042 Sometimes the page jumps / twitches while panning slowly on Android NEW
1893047 `webgpu6` WPT test chunk is mysteriously never running NEW
1893048 Move WebGPU CTS tests outside `cts.https.html` to `cts` subdirectory with other CTS tests ASSIGNED
1893054 WebGPU CTS: promote existing perma-passing tests to tier 2 ASSIGNED
1893057 Update WGPU to upstream (week of 2024-04-22) ASSIGNED
1893095 There is a memory leak defect on line 110 of the file /mozilla-unified/gfx/cairo/cairo/src/cairo-pdf-interchange.c. UNCONFIRMED
1893121 There is a memory leak defect on line 424 of the file /mozilla-unified/gfx/cairo/cairo/src/cairo-pdf-interchange.c. UNCONFIRMED
1893125 There is a memory leak defect on line 1460 of the file /mozilla-unified/intl/icu/source/common/uresdata.cpp. UNCONFIRMED
1893169 Problem translation error is not vertically aligned in landscape mode NEW
1893210 Address bar behaves poorly when loading is slow opening a new window with homepage URL set NEW
1893226 Typed characters are out of order when typing to replace selected text in Slack's message editor NEW
1893288 Update the Firefox Source Docs for translations NEW
1893345 SelectTranslationsPanel footer buttons are in the wrong order on Windows NEW
1893367 excessive memory use UNCONFIRMED
1893470 Record performance issues with video playback in telemetry NEW
1893471 Ensure that the translate-full-page button is hidden on sites where full-page translations is restricted NEW
1893533 TranslationsMiddleware Documentation NEW
1893697 Grabs all my memory on AI chatbot page - started with update around 4/19/24 UNCONFIRMED
1893701 Consider adjusting behavior for "Offer to Translate" NEW
1893776 Translations Panels do not populate language dropdowns when creating a new window from a tab that has already opened the panel NEW
1893802 On AST explorer, CSS-Csstree is 2.6x slower in Nightly compared to Chrome NEW
1893818 [wpt-sync] Sync PR 45941 - [css-color] Tests assume old hsl()/hsla() clipping behavior or depend on unclear gamut mapping to sRGB NEW
1893856 Scrolling a pdf in print-preview leads to rapid system-level memory increase and eventual OOM NEW
1893860 Codepen demo runs very slowly in Nightly and uses 100% GPU NEW

51 Total; 51 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Triage process

Introduction

The goal of performance triage is to identify the extent to which bugs impact the performance of our products, and to move these bugs towards an actionable state. The goal is not to diagnose or fix bugs during triage. We triage bugs that have been nominated for triage and bugs in the Core::Performance component that do not have the performance impact project flag set.

During triage we may do any/all of the following:

  • Request further information from the reporter (such as a profile)
  • Set the performance impact project flag
  • Add performance keywords
  • Move the bug to a more appropriate component

Who is responsible for triage?

Everyone is welcome to take part in triage. By default, everyone on the performance team is enrolled in triage rotation, but we also have participants from outside the team.

How do I schedule a triage meeting?

If you are on triage duty, you will receive an invitation as a reminder to schedule the triage meeting on the shared performance calendar with the nominated sheriffs invited at a time that works for them. The responsibility of scheduling the meeting falls to the lead sheriff. Once a triage meeting has been scheduled, it’s a good idea to remove the reminder event from the calendar to avoid confusion. It’s a good idea to use the shared calendar, as this increases the visibility of the performance triage and allows other members of the team to contribute or observe the process.

What if a sheriff is unavailable?

The rotation script is not perfect, and doesn’t know when people are on PTO or otherwise unavailable. If the lead sheriff is available, it is their responsibility to either schedule the triage with the remaining available sheriff or to identify a suitable substitute for the unavailable sheriff(s). If the lead sheriff is unavailable, this responsibility passes onto the remaining available sheriffs.

How do I run a triage meeting?

The following describes the triage process to follow during the meeting:

  1. Ask if others would prefer you to share your screen. This can be especially helpful for those new to triage.
  2. Open the first triage query to show bugs nominated for triage or in the Core::Performance component without the performance impact project flag set. The bugs are sorted from oldest to newest. For each bug in the list, follow these steps:
    • Bugs that look like tasks that were filed by members of the Performance team will generally need to be moved to the Core::Performance Engineering component.
    • For defects: Determine if the bug is reproducible and actionable. If not, add a needinfo for the reporter asking for more information, set the performance impact project flag to pending-needinfo, and then move onto the next bug. We have a template that you can modify as needed.
    • For all bugs (including enhancements):
  3. Open the second triage query to show bugs that are waiting further information to determine the performance impact. The bugs are sorted from oldest to newest. For each bug in the list, follow these steps:
    • If the performance impact project flag was set to pending-needinfo less than 2 weeks ago, move onto the next bug.
    • If the performance impact project flag was set to pending-needinfo more than 2 weeks ago but less than 2 months ago, consider adding a needinfo for either: another reporter of the issue, someone with access to the appropriate platform(s) to attempt to reproduce the issue, or a relevant subject matter expert.
    • If the performance impact project flag was set to pending-needinfo more than 2 months ago, close the bug as inactive. You can modify the inactive bug template as needed.
  4. If time permits, open the third triage query to show recently opened bugs with performance related keywords in the summary. If any of these look like performance bugs, they can either be triaged the same way as bugs in the initial query or they can be nominated for triage in a subsequent meeting.

What if things don't go as expected?

Don't panic! The triage process is not expected to be perfect, and can improve with your feedback. Maybe the result of the triage calculator doesn't feel right, or you find a scenario that's not covered in these guidelines. In this case we recommend that you bring it up in #perf-triage, or consider scheduling a short meeting with some triage leads (you can see some recent leads in the triage rotation). If in doubt, leave a comment on the bug with your thoughts and move on. There's a chance someone will respond, but if not the next performance triage sheriffs may have some other ideas.

How do I determine the performance impact project flag?

The performance impact project flag is used to indicate a bug’s relationship to the performance of our products. It can be applied to all bugs, and not only defects. The triage calculator should be used to help determine the most appropriate value for this flag. In addition to setting the performance impact project flag, make sure to use the “Copy Bugzilla Comment” button and paste this as a comment on the bug.

If you do not have enough information to set the performance impact project flag, open a needinfo request against an appropriate individual (such as a reporter), and set the performance impact project flag to pending-needinfo.

For more information about what this flag, and it's settings mean see this blog post.

How do I determine the performance keywords?

There are several performance related keywords, which can be helpful to understand how our performance issues are distributed, or whenever there’s a concerted effort to improve a particular aspect of our products. The triage calculator may recommend keywords to set, and by typing “perf:” in the keywords field in Bugzilla, you will see the available options. Select all that apply to the bug.

How do I determine the correct Bugzilla component?

Ideally we would only have bugs in the Core::Performance component that are the responsibility of the engineers in the performance team. For performance bugs to have the best chance of being fixed, it's important to assign them to the correct component. In some cases the correct component will be obvious from the bug summary, description, or steps to reproduce. In other cases, you may need to do a bit more work to identify the component. For example, if there's a profile associated with the bug, you could see where the majority of time is being spent using the category annotations.

How do I read a performance profile?

It's useful to be able to understand a profile generated by the Firefox Profiler, and hopefully someone in the triage meeting will be able to help. If you find an interesting profile, or just want to understand how to use them to analyse a performance problem, we encourage you to post a link to the profile (or bug) in #joy-of-profiling where someone will be happy to help. The profile may even be analysed during one of the regular "Joy of Profiling" open sessions that can be found on the Performance Office Hours calendar.

Triage calculator

The Performance Impact Calculator was developed to assist in identifying and applying the performance impact project flag and performance keywords consistently. If you have feedback or would like to suggest changes to this tool, please share these in the #perf-triage Matrix channel.

Triage rotation

The sheriffs are allocated on a weekly basis, which is published here. The rotation is generated by this script.

Templates

New bug

This template is included in the description for new bugs opened in the Core::Performance component. If a bug is opened in another component and then moved to Core::Performance, this template can be used as needed to request additional information from the reporter.

### Basic information

Steps to Reproduce:


Expected Results:


Actual Results:


---

### Performance recording (profile)

Profile URL:
(If this report is about slow performance or high CPU usage, please capture a performance profile by following the instructions at https://profiler.firefox.com/. Then upload the profile and insert the link here.)

#### System configuration:

OS version:
GPU model:
Number of cores: 
Amount of memory (RAM): 

### More information

Please consider attaching the following information after filing this bug, if relevant:

 - Screenshot / screen recording
 - Anonymized about:memory dump, for issues with memory usage
 - Troubleshooting information: Go to about:support, click "Copy text to clipboard", paste it to a file, save it, and attach the file here.

---

Thanks so much for your help.

Moved to Core::Performance

This bug was moved into the Performance component. Reporter, could you make sure the following information is on this bug?

 - For slowness or high CPU usage, capture a profile with http://profiler.firefox.com/ , upload it and share the link here.
 - For memory usage issues, capture a memory dump from about:memory and attach it to this bug.
 - Troubleshooting information: Go to about:support, click "Copy raw data to clipboard", paste it into a file, save it, and attach the file here.

Thank you.

No longer able to reproduce

This bug doesn’t seem to happen anymore in current versions of Firefox. Please reopen or file a new bug if you see it again.

No response from reporter

With no answer from the reporter, we don’t have enough data to reproduce and/or fix this issue. Please reopen or file a new bug with more information if you see it again.

Expected behaviour

This is expected behavior. Please reopen or file a new bug if you think otherwise.

Website issue

According to the investigation, this is a website issue. Please reopen or file a new bug if you think otherwise.