Skip to content

Only call getRawFrameTableBuilderWithExistingContents once per symbolication batch. - #6233

Merged
mstange merged 2 commits into
firefox-devtools:mainfrom
mstange:push-ywuyywqpnnoq
Aug 5, 2026
Merged

mstange merged 2 commits into
firefox-devtools:mainfrom
mstange:push-ywuyywqpnnoq

Conversation

@mstange

@mstange mstange commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Main | Deploy preview

Fixes #6232.

Before: https://share.firefox.dev/3UaE2Pt (35s jank)
After: https://share.firefox.dev/4fNirnE (8.8s jank, 4x faster)

Create the mutable tables once per batch and let each step mutate them in place. This avoids cloning tables unnecessarily.

Unrelated to the main change in this patch, this also replaces the linear scan of the sources table, which ran once per newly created func, with a filename-to-source-index map built once per batch.

@mstange
mstange requested a review from canova August 3, 2026 13:16
@codecov

codecov Bot commented Aug 3, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 96.00000% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 83.69%. Comparing base (7c94a15) to head (0fc5218).
⚠️ Report is 25 commits behind head on main.

Files with missing lines Patch % Lines
src/profile-logic/symbolication.ts 96.00% 1 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main    #6233   +/-   ##
=======================================
  Coverage   83.68%   83.69%           
=======================================
  Files         348      348           
  Lines       37394    37403    +9     
  Branches    10497    10498    +1     
=======================================
+ Hits        31294    31303    +9     
  Misses       5673     5673           
  Partials      427      427           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

…olication batch.

Fixes firefox-devtools#6232.

Before: https://share.firefox.dev/3UaE2Pt
After: https://share.firefox.dev/4fNirnE

Create the mutable tables once per batch and let each step mutate them in
place. This avoids cloning tables unnecessarily.

Unrelated to the main change in this patch, this also replaces the linear
scan of the sources table, which ran once per newly created func, with a
filename-to-source-index map built once per batch.
@mstange
mstange force-pushed the push-ywuyywqpnnoq branch from e6644db to 7c94a15 Compare August 3, 2026 13:20

@canova canova left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, looks good to me!

@mstange
mstange enabled auto-merge August 5, 2026 13:32
@mstange
mstange merged commit 0a95d40 into firefox-devtools:main Aug 5, 2026
21 checks passed
@canova canova mentioned this pull request Aug 10, 2026
canova added a commit that referenced this pull request Aug 10, 2026
Changes:

[fatadel] Create the Network track from the timeline-network schema
display location (#6224)
[Markus Stange] Only call `getRawFrameTableBuilderWithExistingContents`
once per symbolication batch. (#6233)
[fatadel] Improve discoverability of downloading a local profile (#6216)
[Nazım Can Altınova] Handle the cli daemon startup failures more
gracefully with better errors (#6241)
[Nazım Can Altınova] Add the ability to apply source maps from the CLI
(#6229)
[Nazım Can Altınova] Handle Text and Log marker payloads with their
marker schema (#6247)
[Nazım Can Altınova] Bump the Gecko profile version to make sure that
the Text and Log marker changes are picked up in the frontends (#6252)
[fatadel] Deactivate a menu button as soon as its panel is dismissed
(#6251)
[Nazım Can Altınova] 🔃 Sync: l10n -> main (August 10, 2026) (#6253)
[Nazım Can Altınova] Bump profiler-cli version to 0.8.0 (#6254)

And special thanks to our localizers:

de: Ger
de: Michael Köhler
el: George kitsoukakis
en-CA: chutten
en-CA: Saurabh
en-GB: Ian Neal
es-CL: ravmn
fy-NL, nl: Fjoerfoks
fr: Théo Chevalier
fy-NL: Fjoerfoks
ia: Melo46
it: Francesco Lodolo [:flod]
nl: Fjoerfoks
ru: michellemelsspam
ru: Valery Ledovskoy
tr: giray
tr: Selim Şumlu
zh-TW: Pin-guang Chen
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Symbolication doesn't take advantage of batching when creating builders

2 participants