Skip to content
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

Improve performance of EVM tracing Step event #1033

Merged
merged 3 commits into from
Dec 22, 2021

Conversation

nanocryk
Copy link
Contributor

@nanocryk nanocryk commented Nov 26, 2021

What does it do?

When emitting a Step event the EVM include the content of the stack and memory, which have a huge performance cost in transactions with a lot of steps. This PR aims to allow choosing if the stack/memory must be kept (cloned) or discarded.

It seems to perform similarely to current "fix" which disabled emitting the Step event in the EVM with a feature flag. This PR thus allow the client to control which data should be cloned, and allow raw tracing to work again without needing to build custom tracing images.

What important points reviewers should know?

Is there something left for follow-up PRs?

What alternative implementations were considered?

Are there relevant PRs or issues in other repositories (Substrate, Polkadot, Frontier, Cumulus)?

What value does it bring to the blockchain users?

@nanocryk nanocryk added A3-inprogress Pull request is in progress. No review needed at this stage. B7-runtimenoteworthy Changes should be noted in any runtime-upgrade release notes I7-optimisation ⏱ An enhancement to provide better overall performance in terms of time-to-completion for a task. labels Nov 26, 2021
@nanocryk nanocryk marked this pull request as ready for review December 15, 2021 20:40
@nanocryk nanocryk requested a review from tgmichel December 15, 2021 20:40
@nanocryk nanocryk force-pushed the jeremy-evm-tracing-step-perf branch from 9b36b68 to 5a5d448 Compare December 16, 2021 09:24
@tgmichel tgmichel added A8-mergeoncegreen Pull request is reviewed well. and removed A3-inprogress Pull request is in progress. No review needed at this stage. labels Dec 16, 2021
@nanocryk nanocryk removed the A8-mergeoncegreen Pull request is reviewed well. label Dec 17, 2021
@nanocryk
Copy link
Contributor Author

Lets wait until moonbeam-foundation/moonbeam-runtime-overrides#20 is ready to be merged too.

@nanocryk nanocryk merged commit 69c52ea into master Dec 22, 2021
@nanocryk nanocryk deleted the jeremy-evm-tracing-step-perf branch December 22, 2021 09:39
@crystalin crystalin added the B5-clientnoteworthy Changes should be mentioned in any downstream projects' release notes label Dec 27, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
B5-clientnoteworthy Changes should be mentioned in any downstream projects' release notes B7-runtimenoteworthy Changes should be noted in any runtime-upgrade release notes I7-optimisation ⏱ An enhancement to provide better overall performance in terms of time-to-completion for a task.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants