-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
feat(snapshots
): track internal gas usage
#3766
Comments
@PaulRBerg as described in the book, gas reporting traces the external contract calls. since free functions act as internal functions, we cannot correctly identify calls to them. theoretically, we could record the jumps within each call, but 1) we wouldn't be able to decode them since free/internal functions are not a part of the artifacts 2) encountering a jump doesn't necessarily mean we've entered the internal function 3) that'd produce a lot of data which imo would dilute the value of gas reports @mattsse @onbjerg @draganrakita @mds1 curious to hear your thoughts |
Thanks for explaining the difficulties of implementing this, @rkrasiuk. I wonder if the user could somehow help Forge identify the functions that should be metered? e.g. what if there was a field in the Foundry config like Btw, this is related to #3723. |
the config would still not solve the instruction to code reverse lookup, only the collected functions. some thought dump:
|
snapshots
): track internal gas usage
Hi @PaulRBerg we've added gas snapshots over sections here: #8952, would be great to get your feedback. It handles both external and internal gas usage. |
Marking as effectively resolved by #8952 |
Component
Forge
Describe the feature you would like
I would like to have gas reports for free functions, e.g.
Passing
--gas-report
to Forge doesn't generate a report. The only solution as of now is to wrap my free functions in an intermediary mock contract used specifically for testing.The text was updated successfully, but these errors were encountered: