-
Couldn't load subscription status.
- Fork 3k
Optimize binary_to_term #9759
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
Optimize binary_to_term #9759
Conversation
CT Test Results 3 files 141 suites 49m 40s ⏱️ Results for commit c8cd321. ♻️ 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 |
0cc110d to
c8cd321
Compare
|
Ticket: OTP-19618 |
| DistEntry *dep; | ||
| ErtsDistExternalData *data; | ||
| Uint32 flags; | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Struct ErtsDistExternal contains large atom cache table (64kb) which is not used by binary_to_term and just consumes stack space... ..and CPU if passing compile option -ftrivial-auto-var-init
c8cd321 to
753b6e9
Compare
Remove use of struct
ErtsDistExternalwhich contains a large atom cache table (64kb). The atom cache is not even used bybinary_to_termand just consumes native stack space. With compiler option-ftrivial-auto-var-init=zeroit gets really bad as it zeroes all those 64kb for each call.