loader-opt: keep JIT metadata line file indexes - #11292
Open
josevalim wants to merge 1 commit into
Open
Conversation
JIT metadata line entries already reference source files by index in the module line table. Preserve that shape in the intermediate JIT metadata representation by storing one converted file table alongside the ranges, and have each LineData entry keep the file index. This avoids converting and copying the same filename into every line entry while keeping the final expansion at the GDB/perf metadata writers, where those external formats require filename bytes. Benchmark: generated 100 modules with 100 exported functions each and timed 80 iterations of purging and loading all modules in order via code:load_abs/1 on aarch64-apple-darwin24.6.0. Baseline median/avg/p90: 37,577 / 38,243 / 40,859 us. Candidate median/avg/p90: 36,122 / 36,664 / 39,144 us.
Closed
Contributor
CT Test Results 3 files 136 suites 50m 29s ⏱️ Results for commit d590770. ♻️ This comment has been updated with latest results. To speed up review, make sure that you have read Contributing to Erlang/OTP and that all checks pass. See the TESTING and DEVELOPMENT HowTo guides for details about how to run test locally. Artifacts// Erlang/OTP Github Action Bot |
Contributor
|
I suggest adding this PR identifier to OTP-20221 after reviewing and merging. |
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.
JIT metadata line entries already reference source files by index in the module line table. Preserve that shape in the intermediate JIT metadata representation by storing one converted file table alongside the ranges, and have each LineData entry keep the file index.
This avoids converting and copying the same filename into every line entry while keeping the final expansion at the GDB/perf metadata writers, where those external formats require filename bytes.
Benchmark: generated 100 modules with 100 exported functions each and timed 80 iterations of purging and loading all modules in order via code:load_abs/1 on aarch64-apple-darwin24.6.0. Baseline median/avg/p90: 37,577 / 38,243 / 40,859 us. Candidate median/avg/p90: 36,122 / 36,664 / 39,144 us.