Performance Triage

< 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.)

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:

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

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:

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

 

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
1970029 Firefox 139.0.1 excessively high memory and CPU usage when loading simple pages and extensions UNCONFIRMED

10 Total; 10 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
1939441 Memory larger than the total available dedicated RAM on my system by heavy amounts (around 60 GB usage total only on my Macbook) 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
1946913 Consume too much memory UNCONFIRMED
1952632 very laggy performance scrolling on some very popular websites NEW
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
1962001 Firefox background battery usage increased significantly 2-3 days ago UNCONFIRMED
1965718 Google Maps framedrops when I'm panning the map UNCONFIRMED
1967585 Excessive memory allocation when toolbar icons are updated (e.g., during downloads or extension changes) — sometimes triggers OOM killer UNCONFIRMED

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


Recently opened bugs with performance keywords in the summary

Full Query
ID Summary Status
1970322 cpuinfo: sysctlbyname("hw.packages") failed: Operation not permitted NEW
1970376 Window controls (close/minimize/fullscreen) are slow to appear and glitchy in fullscreen mode on macOS UNCONFIRMED
1970424 Add two performance patches to our libonnxruntime copy NEW
1970453 Translation tests failed after removing translation page action from toolbar NEW
1970479 Inference is slow for Flower Intelligence NEW
1970486 Firefox doesn't seem use Software based WebGL2 on systems without a GPU by default NEW
1970543 WebGPUChild::mSwapChainTexturesWaitingForSubmit is needlessly global NEW
1970771 10-bit video frame rendering on Mali GPU (on Google Pixel 6/7). NEW
1970829 Graphical corruption with Intel Arc dGPUs UNCONFIRMED
1970962 Rework `about:translations` front-end UI NEW
1970963 about:translations Page Accessibility Review NEW
1970971 WebGPU Vulkan presentation logic is duplicated NEW
1970976 Vulkan device creation belongs in wgpu_hal, not Firefox's wgpu_bindings NEW
1971003 Dark flash on navigation if the incoming page unsuppresses paint and then can't paint fast enough NEW
1971042 High Shared GPU memory use reported in Task Manager UNCONFIRMED
1971087 Slow & Poor Performance of Mozilla FireFox (v135) on RISC-V64 UNCONFIRMED
1971089 a new session overwrites the backups of the previous session too fast NEW
1971099 layout of the button bar in search engines settings does not work well with longer translations NEW
1971141 WebGPU content process should not be able to force external texture presentation NEW
1971159 GPU Process Memory Leak: Excess Memory Retained After Tab Closure UNCONFIRMED
1971250 Testcase adding N data-refs is 4x slower in Firefox compared to Chrome (N=50k). Both Firefox and Chrome are quadratic. NEW
1971266 Firefox performs duplicate requests once with http2 and once with http3 UNCONFIRMED
1971316 Testcase calling output.innerHTML += XYZ uses 5GB+ transient memory. Chrome takes ~100MB NEW
1971366 FF 138.03 text input very slow UNCONFIRMED
1971452 WebGPU hang after running pipeline_bind_group_compat CTS tests NEW
1971465 performance bug using video chat sites UNCONFIRMED
1971470 Pasting text on https://mbbill.github.io/JSC.js/demo/index.html is 3.5x slower in Firefox compared to Chrome NEW
1971505 JS-compiler demo at http://sweetjs.org/browser/editor.html is 3x slower in Nightly compared to Chrome NEW
1971523 Modified Codepen demo (https://codepen.io/carterfromsl/pen/YPXrVoL) is faster in Chrome NEW
1971612 JetStream3: dart-flute performance NEW
1971650 WebGPU: error reporting for mismatched pass begin/end does not match spec NEW
1971652 WebGPU: behavior when attempting to record a command on a finished pass does not match spec NEW
1971671 `Instance::GetPreferredCanvasFormat` and `wgpu_bindings::server` don't agree on preferred canvas format ASSIGNED
1971677 [WebGPU] Demo at https://codepen.io/cjgammon/pen/xbGYdbQ does not work on Nightly, works on Chrome NEW
1971679 [WebGPU] Continuous increase in gpu-process memory on https://codepen.io/Phil_Crowther/pen/WNYpQEd NEW
1971716 Demo at https://codepen.io/Nayab-Rani/pen/vYoxooG uses 100% CPU on Firefox, and 15% on Chrome NEW
1971823 Testcase generating N CSS class selectors is 2x slower in Firefox. REOPENED
1971860 Spidermonkey is slower on WASM GC binary-trees NEW
1971862 Spidermonkey is slower on JS binary-trees NEW
1971874 ChatGPT web page unresponsive after React TypeError: Performance.mark: Expected startTime >= 0 NEW
1971883 WebGPU content process should not be trusted to choose canvas texture format NEW
1971884 WebGPU adapter selection should log decisions to the console NEW
1971928 Demo at https://hucanco.de/dragon-rs is slower/jankier in Firefox NEW
1971937 Demo at https://codepen.io/random233/pen/BaYEwvr?editors=1000 is 2x slower in Firefox NEW
1971942 Assertion failure: gMappedMemorySizeBytes == 0, at gc/Memory.cpp:468 NEW
1972037 [wpt-sync] Sync PR 53068 - [Masonry] Update masonry-slack tests to be item-tolerance NEW
1972077 Convert Performance to config-based prefs NEW
1972090 Convert Translations to config-based prefs NEW
1972116 wasm loop unroller: correctly handle dependences through memory NEW
1972157 Testcase creating N SVG-masks is 14x slower in Firefox (spending all the time in nsINode::ComputeIndexOf) NEW
1972192 Facebook videos can no longer be fast-forwarded while watching, and now YouTube too UNCONFIRMED
1972195 Could `mozilla::webgpu::ExternalTextureDMABuf` use timeline semaphores? NEW
1972210 Homepage Gif memory leaking UNCONFIRMED
1972255 [V-T] Artificial testcase rapidly leads to rapid memory use and OOM/system hang NEW
1972293 Testcase adding N scroll-roots is 75x slower in Firefox compared to Chrome (N=50000) NEW
1972315 Testcase resizing a png N times is 9x slower in Firefox compared to Chrome (spending a lot of time around style) NEW
1972403 Can we get SoftVision to check WebGPU Samples and such for us? NEW
1972458 very high frequency failure on ubuntu 24.04 ccov: browser/components/translations/tests/browser/browser_translations_recent_language_memory_full_page_and_select_multi_window.js NEW
1972467 TEST-UNEXPECTED-TIMEOUT ?q=webgpu:api,validation,createBindGroup:storage_texture,format:* | :storageTextureFormat="rg16float";resourceFormat="r8snorm" NEW
1972476 Remove redundant wrapper constructors in GeckoTranslationUtilsTest NEW
1972482 Minimize WebGPU header diff ASSIGNED
1972485 Bring `GPUDeviceLostInfo.reason` and `GPUDeviceLogReason` up to spec. ASSIGNED
1972486 WebGPU: ride the trains to stable 🎉 ASSIGNED
1972517 [WebGPU] Very poor texture upload performance when passing canvas NEW
1972521 [WebGPU] Out of memory error when rendering frames as fast as possible NEW
1972545 Videos on lemonde.fr have audio and video badly sync after fast forward NEW
1972586 Choose SIPHash based on CPU Arch ASSIGNED
1972624 WebGPU on Vulkan may not degrade gracefully if semaphore creation fails NEW
1972626 [Search Consolidation] Test fixes for performance issue ASSIGNED
1972628 WebGPU cornell sample doesn't display anything NEW
1972635 qwen3-webgpu is ~10x slower than Chrome NEW
1972649 Slow performance on https://downloads.scirra.com/labs/textscaling/webgl/index.html NEW

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