-
Notifications
You must be signed in to change notification settings - Fork 759
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
Add benchmark for bytecode execution #3437
base: master
Are you sure you want to change the base?
Add benchmark for bytecode execution #3437
Conversation
Will try and get to a review of this PR this week! |
Co-authored-by: Will Cory <[email protected]>
Hi there, Generally this is pretty interesting work though, we are really eager to continue to have the tooling around benchmarking improved! @jochem-brouwer recently also worked on some benchmarking tooling regarding the performance of bytecodes for the VM - see https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/vm/DEVELOPER.md#benchmarks - and maybe a reason for a slow start here is also that we are (at least: I am) not really sure how these two tools relate and if we are producing some redundant tooling here or not. Can you have some word on this? That would help for sure on the process! 🙏 🙂 |
This PR adds an EVM benchmark that can be run for individual bytecodes.
The main motivation for the tool is to be used in gas-cost-estimator project, but its purpose goes beyond it. You can learn more about the project from this short presentation, or visit the wiki Stage 4 Scope.
The benchmark implementation differs slightly as it does not add to the existing
Benchmark.Suite
. Instead, it creates a newBenchmark
object for each run and handles async resolution. This was proven to produce more consistent results.