Share libs between threads#3906
Merged
mstange merged 1 commit intofirefox-devtools:mainfrom Mar 1, 2022
Merged
Conversation
Codecov Report
@@ Coverage Diff @@
## main #3906 +/- ##
==========================================
+ Coverage 87.22% 87.26% +0.04%
==========================================
Files 278 277 -1
Lines 23686 23711 +25
Branches 6261 6255 -6
==========================================
+ Hits 20659 20691 +32
+ Misses 2784 2779 -5
+ Partials 243 241 -2
Continue to review full report at Codecov.
|
julienw
approved these changes
Feb 28, 2022
Contributor
julienw
left a comment
There was a problem hiding this comment.
Thanks, this is solid work!
This changes the processed profile format to use one global "libs" list, rather than per-thread lists. Furthermore, we only keep libs for which we encountered at least one frame address. Unused libs are discarded. We also discard the libs' address ranges. Those are only used during profile processing, to convert an absolute frame address into a library-relative frame address. While we're here, we also clean up the ResourceTable type and make it use null consistently, and force all resources to have a name. Fixes firefox-devtools#652. During profile merging and diffing, the libs unification moves to a different place: Rather than merging libs at the thread level, we now need to merge them when we combine the profiles. Then, when we diff two threads from the same profile, we no longer need to merge libs because the two threads already use a shared libs list.
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
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
(18.4MB -> 3.9MB)
This changes the processed profile format to use one global "libs" list,
rather than per-thread lists. Furthermore, we only keep libs for which we
encountered at least one frame address. Unused libs are discarded.
We also discard the libs' address ranges. Those are only used during
profile processing, to convert an absolute frame address into a library-relative
frame address.
While we're here, we also clean up the ResourceTable type and make it
use null consistently, and force all resources to have a name. Fixes #652.
During profile merging and diffing, the libs unification moves to a different
place: Rather than merging libs at the thread level, we now need to merge
them when we combine the profiles. Then, when we diff two threads from the
same profile, we no longer need to merge libs because the two threads already
use a shared libs list.