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
1766181 Firefox becomes really slow to respond/switch to on MacBook Pro M1 Max UNCONFIRMED
1818835 Enhancement with Huawei and some hardware. NEW
1875547 Slow (single-threaded) PDF rendering for documents with lots of vector shapes NEW
1880287 tiktok.com - Live videos stop working after a few minutes, stuck loading NEW
1890261 The content inside the New Tab page is shaking after opening a new tab. NEW
1893881 randomly massive memory usage with browser freeze UNCONFIRMED
1894286 Multiple gigabytes of tiny detached windows UNCONFIRMED
1896500 Memory Leak on newest version. 14 task manager occurrences from one tab open using over a gig of memory. Laptop is overheating and only fix is reset computer. UNCONFIRMED
1897637 Firefox consumes 65 GB RAM UNCONFIRMED
1898319 firefox slows down, needs relaunch to restore throughput UNCONFIRMED
1900669 Mozilla is using too much memory, keeps crashing UNCONFIRMED
1900881 ASan Nightly memory leak on certain webpages UNCONFIRMED
1900883 app.retrium.com freezes browser and crashes tab when it finally reached a 502/504 NEW
1907716 Firefox used up most of my system RAM UNCONFIRMED
1909985 ram usage went to 95+% UNCONFIRMED
1910997 StrictMode ThreadPolicy violation: org.mozilla.fenix.browser.BrowserFragment.updateLastBrowseActivity NEW
1911450 Opening reddit posts spends a lot of time on the parent process Part2 (Followup to bug 1907701) NEW
1912758 Extreme CPU usage spike when typing into text fields UNCONFIRMED
1912945 The browser is using up a lot of my ram UNCONFIRMED
1913404 High buildup of memory usage when using the Youtube.com website UNCONFIRMED
1913407 the browser go crazy with cpu usage recently https://share.firefox.dev/3yIbAKI UNCONFIRMED
1913582 Very high memory usage, Leaks all system RAM and quits UNCONFIRMED
1914510 Firefox on Windows consuming twice as much RAM as Chromium UNCONFIRMED
1914762 Firefox low memory mamanagement needs work. UNCONFIRMED
1916021 Ever increasing ram usage on mac UNCONFIRMED
1917774 controld.com - Blank section for a few seconds when scrolling past "Standard Configurations" NEW
1918854 Opening the WebGPU conformonce test suite page spends 2seconds on the parent process NEW
1918876 Stuttering when using multiple windows UNCONFIRMED
1920597 Firefox is taking up soooo much RAM (2GB+). I tried using Arc & Chrome to the same amount and it was taking way less (less than 1GB)) UNCONFIRMED
1920917 www.capcut.com - Toolbar leaving a white trail when it hides while scrolling down NEW
1921589 BHR-detected hang UNCONFIRMED
1921757 Firefox is using too much memory - 4GB. 4 Add-ons UNCONFIRMED
1922234 High shared memory usage on lagosjumpradio.com NEW
1922534 Firefox takes 100% of one CPU core for each facebook tab opened UNCONFIRMED
1922886 Firefox very slow on Windows ARM! UNCONFIRMED
1923257 Memory leaks in Firefox 115 on Alma Linux 9.4. UNCONFIRMED
1923433 https://share.firefox.dev/3ZWmNSV, opened two letterboxd links when it started lagging really bad, lots of lagging when opening sites recently as well. UNCONFIRMED
1923941 Firefox stops responding, 23 seconds in gfxDWriteFontList::ReadFaceNamesForFamily UNCONFIRMED
1924193 Scrolling in vertical tabs is super slow and janky NEW
1924220 Apple Silicon Firefox Memory Leak UNCONFIRMED
1924396 Update to Ffx 131.0.2 hogging resources and slowing W10 system UNCONFIRMED
1924642 Parent process and content processes sometimes consume lots of CPU (Tons of IPCOut — PContent::Msg_ScriptError) UNCONFIRMED
1925226 High memory usage UNCONFIRMED
1925271 eaglercraftx1-8.github.io - Game is lagging NEW
1925359 Running Speedometer 3 in Firefox uses 60% more CPU than in Chrome NEW
1925480 Fenix shouldn't use `nsToolkitProfileService` to identify a profile folder NEW
1925736 12GB+ memory leak in an extension. About:memory shows tons of similar data:image /png base64 URIs (Was: Memory leak in Ubuntu 24.04 // Firefox 131.0.2) UNCONFIRMED
1926657 Additional Tabs not loading in background while working on an existing tab UNCONFIRMED
1926871 etoland.co.kr - Page elements take longer to load NEW
1927021 [meta] Network pageload performance NEW
1927028 Intermittent crash when opening new tab (private mode) UNCONFIRMED
1927053 e.issuu.com - Magazine pages are not fully loaded and navigation is laggy NEW
1927084 map.epfl.ch - Laggy when trying to navigate on the map NEW
1927243 Extreme amounts of memory usage causing my system to freeze UNCONFIRMED
1927365 [politiquera.com] Loading website cause a performance warning NEW
1927534 Update xsimd to new version e384105a2a3809c319f0740e2ebf6166da895fcb from 2024-10-16 06:11:04 NEW
1928090 Wiki page caused high CPU and RAM usage permanently UNCONFIRMED
1928669 Jank when storing the data NEW
1928791 jquery on SP3-dev-mode has rapid increase in memory and appears to spend a lot of time around CC (and is slower than chrome) NEW
1928948 vizzy.io - The browser is slowed down and eventually stops responding NEW
1929076 Facebook Text & Chat SLOW. unsuably slow, since autoupdate to 132 UNCONFIRMED
1929399 VERY SLOW AFTER ONLY A FEW MINUTES UNCONFIRMED
1929443 Jira button animations cause sustained high Firefox CPU usage NEW
1929479 Downloading fonts from https://fonts.google.com/icons janks the content-process and spends 700ms on the parent-process NEW
1929812 4.17% speedometer VueJS-TodoMVC/Adding100Items/Sync (OSX) regression on Wed October 23 2024 NEW
1930031 memory leak? UNCONFIRMED
1930110 Decreased performance for Firefox 132 inside of Docker UNCONFIRMED

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


Performance triage (pending-needinfo)

Full Query
ID Summary Status
1805255 Firefox has 50% more soft page faults than Chrome running Speedometer 2 NEW
1826576 CSS filter() with invert() and hue-rotate() results in sluggish scrolling on Wikipedia NEW
1870532 Firefox 120.0.1 grabs 100% of cpu resources and freezes UNCONFIRMED
1882916 Firefox consumes a lot of CPU and makes me Mac M2 hang for a good 15 seconds 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
1891345 Enourmous RAM usage (60Gig) 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
1908857 www3.nhk.or.jp - The website is loaded after 1-2 seconds of blank page NEW
1914733 YouTube Freezing and consuming CPU usage UNCONFIRMED
1918065 High CPU/RAM utilisation using Firefox ESR without internet connectivity UNCONFIRMED

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


Recently opened bugs with performance keywords in the summary

Full Query
ID Summary Status
1927354 Access violation due to memory overflow when using large ArrayBuffer and Web Workers (`MOZ_RELEASE_ASSERT(obj->is<PromiseReactionRecord>());`) NEW
1927405 Map/Set clear function is slow ASSIGNED
1927409 [webgpu] None of the demos on https://s-macke.github.io/WebGPU-Lab/build/index.html# render anything on Nightly NEW
1927497 Web App is mistakenly translated UNCONFIRMED
1927581 Expose site specific translation enablement in policy. NEW
1927619 Steam developer announcements overlay is janky/stuttery to scroll NEW
1927804 Memory Leak v128 UNCONFIRMED
1927839 Enable WebGPU presentation without readback on Linux NEW
1927919 Firefox spends more CPU time resolving style during speedometer 3 TodoMVC-*-Complex-DOM "prepare" steps NEW
1928118 Collect memory usage during perf tests NEW
1928257 Remove or update probes expiring in Firefox 135: MEMORY_PHC_SLO* before Gecko version gets increased to 135 on 2024-11-25 NEW
1928275 Remove or update metrics expiring in Firefox 135: performance.pageload.async_sheet_load before Gecko version gets increased to 135 on 2024-11-25 NEW
1928289 MozAfterPaint might not be fired if the GPU process crashes at the right time NEW
1928297 Online demo is 2x slower in Nightly, and gets relatively slower as the input size increases NEW
1928298 Nightly is 2x slower than Chrome on an online demo NEW
1928323 Diagonal linear gradient in wrench reftest filter-blur-downscaled-task.yaml is rendered incorrectly on Xclipse GPUs NEW
1928401 Assertion failure: isLowered(), at js/src/jit/MIR.h:850 NEW
1928430 Unexpected results in bugzilla when saving changes on a translated page. NEW
1928502 gcc-14, MemoryBuffer.cpp:100:28: /usr/include/c++/14/bits/move.h:221:11: error: ‘*(__vector(2) unsigned int*)this’ is used uninitialized [-Werror=uninitialized] NEW
1928517 Context menus are cropped when the GPU process is enabled on Linux UNCONFIRMED
1928624 A string("Allow this site to open?") is shown in English and cannot be translated UNCONFIRMED
1928664 Remove feature flag for multi-memory NEW
1928712 nsRange::SetStart() shows up in performance profiles NEW
1928719 CSS animations with translation are jittery on Firefox Nightly 134 NEW
1928800 High CPU and memory use of embedded soundcloud.com NEW
1928813 Scrolling performance degradation since 132 UNCONFIRMED
1928883 Modified demo is 1.6x slower in Nightly and gets relatively slower very quickly as iterations increase (appears to spend almost all the time around string hashing/allocating ?) NEW
1928893 scroll-snap-type snapping slows scrolling snaps inconsistently UNCONFIRMED
1929035 (Fenix) Slow scroll on https://www.laseinemusicale.com/infos-pratiques/comment-venir/ NEW
1929060 NER model fails on GPU for `q8` (int8) NEW
1929157 [WebGPU] Clear color does not work on noclip.website NEW
1929158 [WebGPU] Super Mario Galaxy does not work in noclip.website NEW
1929168 `GPUQuerySet.destroy` does not free backing resources NEW
1929181 SVG animation on a Codepen demo (https://codepen.io/issey/pen/qazVwX?editors=0010) stutters without using CPU/GPU NEW
1929226 Nightly is 2x slower on a richtext-to-markdwon converter NEW
1929274 Add a memory reporter for LogModuleManager NEW
1929300 Firefox Translation does NOT come up automatically UNCONFIRMED
1929331 const _Tp &std::clamp(const _Tp &, const _Tp &, const _Tp &) [_Tp = int]: Assertion '!(__hi < __lo)' failed. [@ nsLayoutUtils::GetLastLineBaseline] NEW
1929365 Android - GPU process does not get spawned at the Fenix app launch when there's no url loaded in the previous session (empty cold start) NEW
1929389 twitch tv video freeze (Nvidia GPU, gets fixed with gfx.webrender.compositor= False) UNCONFIRMED
1929462 Add screenshot handling to WebGPU Mac IO Surface no readback NEW
1929464 Enable WebGPU presentation without readback on macOS NEW
1929465 Add screenshot handling to WebGPU DMA buffer no readback NEW
1929469 Consider a GPU process sandbox on Linux NEW
1929483 Update WGPU to upstream (week of 2024-11-05) ASSIGNED
1929540 firefox nightly - scrolling in the vertical tab sidebar is slow/stuttering UNCONFIRMED
1929576 Slow browsing on google sites with very frequent minor GCs NEW
1929590 Let memory64 ride the trains to release NEW
1929640 Add a mode to CCGCScheduler where it can collect faster in case lots of garbage is created and there isn't too much idle time to run the slices NEW
1929804 transformers-dev uses ort.webgpu.mjs instead of ort.webgpu-dev.mjs NEW
1929936 Firefox is slow after 132 update UNCONFIRMED
1930005 Odd tearing on rotation with mouse in `WebGPU Implicit Isosurface Raycaster` NEW
1930011 Program terminated with signal SIGXCPU, CPU time limit exceeded. UNCONFIRMED
1930027 "Island" demo on https://fabmax.github.io/kool/kool-js/ uses 5GB+ RAM while compiling/loading, which causes Firefox to OOM NEW
1930097 Add a concurrent workers perftest NEW
1930125 textPath causes text to be translated incorrectly if the referenced path has a translation applied NEW
1930126 [webgpu] https://codepen.io/fleple/pen/zYwRrgy doesnt render anything and continuously flashes the demo NEW

57 Total; 57 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.