Performance Triage

From MozillaWiki
< Performance
Revision as of 20:30, 13 January 2023 by Gmierz (talk | contribs) (→‎How do I determine the performance impact project flag?: Add link to blog post about what this flag means.)
Jump to navigation Jump to search

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
1826576 CSS filter() with invert() and hue-rotate() results in sluggish scrolling on Wikipedia NEW
1931717 [meta] High OOM rate and CC time in YouTube NEW
1940667 30s of jank on parent-process doing something around getFixupURIInfo and ContentAreaDropListener.sys.mjs (resource://gre/modules/URIFixup.sys.mjs:278:18) NEW
1941716 On a fresh profile, Negative heap-unclassified on "My Bugs" query on b.m.o NEW
1942031 Bad canvas performance on this example (nokiadesignarchive.aalto.fi) NEW
1943503 High CPU usage on Debian x64 bookworm (VMware player guest) UNCONFIRMED
1950901 Testcase generating N=5K forms (using credential mgmt API?) takes 30s in parent-process and 50s in content process. Chrome takes 9s. NEW
1958712 Testcase generating N <META> elements is 20x slower than Chrome and does weird stuff in Compositor and SceneBuilder (PAPZCTreeManager::Msg_UpdateZoomConstraints) NEW
1959837 openstreetmap iD editor - slow zooming NEW
1965718 Google Maps framedrops when I'm panning the map UNCONFIRMED
1972941 [Linux] File downloading is CPU-intensive NEW
1982220 Stress-test Testcase triggering-and-aborting N blob download requests does a lot of work on a lot of threads. Chrome is as fast as Firefox. Use to compare changes to BlobURLChannel. NEW
1983225 Improve sha256 hashing for downloads' BackgroundFileSaver NEW
1984134 History.pushState is needlessly slow when changing only url parameters NEW
1985327 Firefox doesn't seem use 'above normal' priority for GPU process on Windows like some other browsers NEW

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


Performance triage (pending needinfo)

Full Query
ID Summary Status
1771902 Compositor CSS animations are not paused in fully occluded windows NEW
1925480 Fenix shouldn't use `nsToolkitProfileService` to identify a profile folder NEW
1931716 Browser Kept Eating up RAM to the max, stopping the specific process in the task manager fix the issue temporarily. UNCONFIRMED
1939354 RAM too much UNCONFIRMED
1943419 Fluidd memory leak UNCONFIRMED
1945665 airbnb.com - Attempting to enter a destination in the search by using the gboard causes the gboard to become unresponsive NEW
1946248 Too much time spent in gfxMacPlatformFontList::DeprecatedFamilyIsAvailable during startup NEW
1946913 Consume too much memory UNCONFIRMED
1955509 Constant CPU usage while idle on the Tiki.org website front page UNCONFIRMED
1957692 Testcase generating N=500 forms and submitting them takes 27s in both parent and content processes,and is 675x slower than Chrome (Part2 of bug 1950901) NEW
1967585 Excessive memory allocation when toolbar icons are updated (e.g., during downloads or extension changes) — sometimes triggers OOM killer UNCONFIRMED
1975272 Animated newtab background images consume CPU even when not in the foreground NEW
1977599 Embedded video file playback hitching and freezing browser. UNCONFIRMED

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


Recently opened bugs with performance keywords in the summary

Full Query
ID Summary Status
1982756 WebGPU doesn't display on Linux Wayland with AMD Radeon Pro W7600 (RADV NAVI33) NEW
1982771 [V-T] Artificial testcase that starts V-T n times in a sync loop (and eats errors) is 19x slower in Firefox NEW
1982857 Talos reports 50% slower content process startup on MacOS 14.70 compared to MacOS 10.15 NEW
1982868 www.teslarati.com - translation doesn't end NEW
1982938 Drivers blocked for WebGL should be blocked for WebGPU too NEW
1982980 Memory leak in Firefox on Android when repeatedly appending and removing an iframe UNCONFIRMED
1982995 [translations banner] Implement new translations banner composable NEW
1982998 [translations banner] Configure the shown text NEW
1983000 [translations banner] Configure expand button NEW
1983001 [translations banner] Configure the close button NEW
1983002 [translations banner] Configure anchoring ASSIGNED
1983003 [translations banner] Hide it when the keyboard is shown NEW
1983004 [translations banner] Hide it when in the current webpage is in fullscreen NEW
1983011 [translations banner] Configure when to show the translations banner ASSIGNED
1983019 Testcase generating nested Request() is 70x slower in Firefox and is superlinear in Firefox too. NEW
1983036 ext-webbgis.lansstyrelsen.se - Rendering of map is broken on certain devices with GPU Exynos 2200 from AMD RDNA2 NEW
1983042 account.dentolo.de - Lag when typing quickly inside the email input field (slow XML parsing of huge SVG images) NEW
1983069 ARCH_BITS in wasm::ObservedCPUFeatures should be increased to four ASSIGNED
1983206 [wasm] Demo at https://clowerweb.github.io/kitten-tts-web-demo/ is 1.5x slower in Firefox. NEW
1983215 [V-T] Loop of Empty V-T inside an idlecallback uses 50% of my iGPU NEW
1983318 Green up the browser/base/content/test/performance tests when enabling sidebar.revamp by default NEW
1983342 Huge memory leak. Almost unusable with hangs gyrations in search/tab UNCONFIRMED
1983386 Introduction of Local Network Access in Nightly breaks ability to perform Google O Auth from Becky! Internet Mail UNCONFIRMED
1983539 Translation popup accessibility and usability needs to improve (remembered resizeable window, changeable font size, keyboard access) UNCONFIRMED
1983609 Hit MOZ_CRASH(assertion `left == right` failed: Buffer[Id(9,1)] is no longer alive left: 1 right: 3) at /builds/worker/checkouts/gecko/third_party/rust/wgpu-core/src/storage.rs:135 NEW
1983734 Pasting and deleting reasonable amount of text on nested content-editables is slow NEW
1983758 Since Windows 11 24H2 loading sites in Mozilla Firefox (current 141.0.3) is slow. UNCONFIRMED
1983805 Scrolling through and Moving around a lot of pinned tabs will consume a lot of Memory NEW
1983951 MaxMemory is too large NEW
1984072 Constant CPU usage by "Utility" (Windows Media Foundation Media Engine CDM) UNCONFIRMED
1984223 Firefox needs to be cgroups and systemd-oomd configured and aware to run stably on recent linux distributions, especially with low memory. UNCONFIRMED
1984293 [Regression] WebRender blocked by NVIDIA_REFRESH_RATE_MIXED on Windows when NVIDIA GPU is unused (multi-GPU + AMD primary) -> Hardware accel lost UNCONFIRMED
1984373 Performance Optimization for GPT and AI-Powered Web Applications in Firefox UNCONFIRMED
1984431 Transition from menu to bookmarks is janky NEW
1984470 [Tab Management Phase 1] Add a loading state to the Tab manager FAB when performing a sync NEW
1984478 Consider adding an in-memory cache for url classifier results NEW
1984486 Investigate shipping our own ANGLE on Android for GL-to-Vulkan translation, in order to have more control about pipeline caching and avoid slow paths in the system GL driver NEW
1984490 Apps we'd like to work by initial release of WebGPU on Mac NEW
1984493 Migrate wgpu to objc2 and associated crates NEW
1984651 [wpt-sync] Sync PR 54460 - Parse substituted attribute before performing substitutions within it NEW
1984688 Import Mac IOSurface video frames directly into wgpu for external textures NEW
1984695 Poor performance in X11 with gfx.color_management.enablev4 enabled UNCONFIRMED
1984765 Hit MOZ_CRASH(Unexpected Vulkan error: ERROR_UNKNOWN) at /builds/worker/checkouts/gecko/third_party/rust/wgpu-hal/src/vulkan/mod.rs:1731 NEW
1984799 Update WebGPU CTS to new version 0fb20da2efe90a2c38228709038f97b565dfc85c from 2025-08-22 16:15:27 ASSIGNED
1984807 Animated new tab wallpaper results in memory leak when Firefox is minimized UNCONFIRMED
1984905 [WASM] Wordpress PHP Playground demo is ~2x slower in Firefox NEW
1984906 [WASM] Demo at https://archy-none.github.io/lumo/ is 1.5x slower in Firefox NEW
1984907 Demo at https://archy-none.github.io/lumo/ is 1.6x slowr in Firefox NEW
1984911 [WASM] Demo at https://hang.live/start is ~2x slower in Firefox NEW
1984920 Add native <input type="time"> picker UI in Firefox UNCONFIRMED
1984970 Jank/blocking on Amazon page when browsing through "exchange old phone for discount on new phone" thingy. Looks to be around style and JS (and maybe some form too) NEW
1985078 22.62% perf_reftest_singletons insert-subtree-not-nth-edge-has-pseudo.html (Linux) regression on Tue August 19 2025 NEW
1985082 Enable macOS gpu process on-by-default in Nightly NEW
1985088 Update wgpu to upstream 1301f806 (2025-08-25) ASSIGNED
1985194 4k video stutters on https://mediabunny.dev/examples/media-player/ and putting the tab in background leads to rapid increase in memory NEW
1985200 Demo at https://compression-library-benchmark.netlify.app/ is 2.2x slower in Firefox NEW
1985203 The comments for js::gc::GetGCHeapUsage incorrectly state that it doesn't include malloc memory usage ASSIGNED
1985263 Hit MOZ_CRASH(UA style sheet contents failed shared memory requirements) at layout/style/StyleSheet.cpp:1526 UNCONFIRMED
1985289 Translations in GVE Example needs an Update NEW
1985292 4.5 - 2.78% reload-no-devtools:content-process memory / reload-debugger:content-process memory + 2 more (Linux) regression on Tue August 19 2025 NEW
1985320 5.82 - 3.91% browser_ml_summarizer_perf.js SUM-ONNX-COMMUNITY-QWEN2.5-0.5B-INSTRUCT_BIG-total-memory-usage / browser_ml_summarizer_perf.js SUM-ONNX-COMMUNITY-QWEN2.5-0.5B-INSTRUCT_BIG-total-memory-usage (Linux, Windows) regression on Tue August 19 2025 NEW
1985382 Add IONPERF=ir-graph for dumping iongraph.json to perf JitDump NEW

62 Total; 62 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 and 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 have open needinfo requests. The bugs are sorted from oldest to newest. For each bug in the list, follow these steps:
    • If the needinfo was set less than 2 weeks ago, move onto the next bug.
    • If the needinfo was set 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 open needinfo was set 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.

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.

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.

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.