-
Notifications
You must be signed in to change notification settings - Fork 452
Reduce allocations for getStackLineInfo + getStackAddressInfo #5761
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
mstange
wants to merge
12
commits into
firefox-devtools:main
Choose a base branch
from
mstange:compact-stack-line-info
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+1,407
−1,250
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
I want to add a call to a function from line-timings.ts but line-timings.ts already depends on profile-data.ts, and I can't create a circular dependency between profile-data.ts and line-timings.ts.
This means we can compute the right line number for the "hot spot" for the call node that was passed to getBottomBoxInfoForCallNode, and not just for the selected call node. For example, getBottomBoxInfoForCallNode can be called with the right-clicked call node which can be different from the selected call node, and we were scrolling to the wrong spot in that case before this patch. Fixes firefox-devtools#5758.
…/ address timings from the implementation for the global timings.
… symbol with the highest sample count.
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #5761 +/- ##
==========================================
- Coverage 85.67% 85.60% -0.07%
==========================================
Files 315 318 +3
Lines 31110 31256 +146
Branches 8472 8612 +140
==========================================
+ Hits 26654 26758 +104
- Misses 4026 4068 +42
Partials 430 430 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Before: https://share.firefox.dev/3NnthpO After: https://share.firefox.dev/45dMNv1 getStackLineInfo now allocates 46MB instead of 220MB (4.8x reduction), and takes 146ms instead of 338ms (2.3x reduction), when opening the source view for mozjemalloc.cpp on https://share.firefox.dev/3NnzEcF
eccf8c3 to
3c99ec6
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Production | Deploy preview
On large profiles, opening the source view can cause large allocations because we create
Setobjects for many stacks. In this PR I've experimented with a more compact storage of a collection of sets.Before: https://share.firefox.dev/3NnthpO
After: https://share.firefox.dev/45dMNv1
getStackLineInfonow allocates 46MB instead of 220MB (4.8x reduction), and takes 146ms instead of 338ms (2.3x reduction), when opening the source view formozjemalloc.cppon https://share.firefox.dev/3NnzEcF.To do:
getStackLineInfoandgetStackAddressInfo