Open Bug 2002244 Opened 1 month ago Updated 1 month ago

0.44 - 0.23% installer size / installer size + 4 more (OSX, Windows) regression on Mon November 17 2025

Categories

(Core :: DOM: Streams, defect)

defect

Tracking

()

ASSIGNED
Tracking Status
firefox-esr140 --- unaffected
firefox145 --- unaffected
firefox146 --- unaffected
firefox147 --- fix-optional

People

(Reporter: intermittent-bug-filer, Assigned: saschanaz, NeedInfo)

References

(Regression)

Details

(Keywords: perf-alert, regression)

Attachments

(1 file)

Perfherder has detected a build_metrics performance regression from push 1ba472652b90ac9580bb46333dcc5f0c3d0d1b1a. As author of one of the patches included in that push, we need your help to address this regression.

Please acknowledge, and begin investigating this alert within 3 business days, or the patch(es) may be backed out in accordance with our regression policy. Our guide to handling regression bugs has information about how you can proceed with this investigation.

If you have any questions or need any help with the investigation, please reach out to aesanu@mozilla.com. Alternatively, you can find help on Slack by joining #perf-help, and on Matrix you can find help by joining #perftest.

Regressions:

Ratio Test Platform Options Absolute values (old vs new)
0.44% installer size osx-aarch64-shippable aarch64 nightly 107,884,202.88 -> 108,357,699.33
0.34% installer size windows2012-32-shippable nightly 111,557,200.58 -> 111,931,308.25
0.33% installer size osx-nightlyasrelease nightly nightly-as-release 111,338,190.58 -> 111,703,073.92
0.29% installer size osx-shippable nightly 114,270,216.33 -> 114,604,162.50
0.24% installer size windows2012-64-shippable nightly 129,978,519.75 -> 130,295,951.75
0.23% installer size win64-nightlyasrelease nightly nightly-as-release 127,589,967.54 -> 127,888,939.83

Improvements:

Ratio Test Platform Options Absolute values (old vs new)
0.35% installer size windows2012-64-shippable nightly 130,462,517.42 -> 130,011,993.92
0.15% installer size osx-shippable nightly 114,353,985.88 -> 114,183,239.08

Details of the alert can be found in the alert summary, including links to graphs and comparisons for each of the affected tests.

You can run all of these tests on try with ./mach try perf --alert 47478

The following documentation link provides more information about this command.

Flags: needinfo?(krosylight)

Set release status flags based on info from the regressing bug 1921583

This is totally expected. Technically we can try reducing it using the lazy init added in 1.2.0, but AFAICT BROTLI_STATIC_INIT_LAZY affects both decoder and encoder, so I think we need more consideration.

Thoughts, Jonathan?

Flags: needinfo?(krosylight) → needinfo?(jfkthame)

Yeah, this seems expected and not excessive. (Though it's curious that it also lists a couple of improvements.) I'd be OK with just resolving WONTFIX here.

Having said that, maybe it'd be interesting to push a patch with BROTLI_STATIC_INIT_LAZY to tryserver to see how much difference it makes, and if it looks worthwhile we could discuss our options.

Flags: needinfo?(jfkthame)

Yeah, I specifically worry about the initial network load of brotli encoded contents, because lazy load will add some delay before decoding. But I have no idea how much, perhaps it could be super minimal negligible. Some perf tests on CI would help.

Before doing that,

Kershaw, do you know if there's any network perftest that would prove comment #4?

Flags: needinfo?(kershaw)

(In reply to Kagami Rosylight [:saschanaz] (they/them) from comment #5)

Before doing that,

Kershaw, do you know if there's any network perftest that would prove comment #4?

Sorry, I am not aware of any perftest about this.
Maybe Andrew know?

Flags: needinfo?(kershaw) → needinfo?(acreskey)

Out of curiosity, I made a local build using BROTLI_STATIC_INIT_EARLY (not LAZY), and instrumented the initialization of the Brotli static data.

On my MacBook Pro (M2 Max) -- so a reasonably fast machine, though not brand new -- it took around 300ns the first time in the parent process, and around 50ns for each subsequent process launched. Quitting and relaunching gives me "fast" initialization even in the parent process, presumably because caches have been warmed up.

(I also tried building it with BROTLI_STATIC_INIT_LAZY, but that build doesn't seem to be able to use Brotli-encoded resources -- I get NS_ERROR_INVALID_CONTENT_ENCODING failures, and content is missing. I haven't investigated why this failed.)

(In reply to Kershaw Chang [:kershaw] from comment #6)

(In reply to Kagami Rosylight [:saschanaz] (they/them) from comment #5)

Before doing that,

Kershaw, do you know if there's any network perftest that would prove comment #4?

Sorry, I am not aware of any perftest about this.
Maybe Andrew know?

It could be helpful to try the desktop pageload test via ./mach try perf, maybe just Linux for a start.
Randell may have more ideas.

Flags: needinfo?(acreskey) → needinfo?(rjesup)

(In reply to Jonathan Kew [:jfkthame] from comment #3)

(Though it's curious that it also lists a couple of improvements.)

FWIW, I dont see these improvements on the graph. Not sure why that datapoint is classified as an improvement.

Duplicate of this bug: 2002807

It has been over 7 days with no activity on this performance regression.

:saschanaz, since you are the author of the regressor, bug 1921583, which triggered this performance alert, could you please provide a progress update?

If this regression is something that fixes a bug, changes the baseline of the regression metrics, or otherwise will not be fixed, please consider closing it as WONTFIX. See this documentation for more information on how to handle regressions.

For additional information/help, please needinfo the performance sheriff who filed this alert (they can be found in comment #0), or reach out in #perftest, or #perfsheriffs on Element.

For more information, please visit BugBot documentation.

Flags: needinfo?(krosylight)

Let's try _EARLY and see what perftest says. (and maybe also _LAZY)

Flags: needinfo?(krosylight)

Also removing BROTLI_BUILD_PORTABLE as it's removed in brotli 1.1.0.

Assignee: nobody → krosylight
Attachment #9531808 - Attachment description: WIP: Bug 2002244 - Use BROTLI_STATIC_INIT_LAZY → Bug 2002244 - Use BROTLI_STATIC_INIT_EARLY r=jfkthame!,smaug!,mccr8!
Status: NEW → ASSIGNED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: