-
Notifications
You must be signed in to change notification settings - Fork 631
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
refactor: remove gas blocks #391
Conversation
Nice! What does the flamegraph look like before/after @onbjerg? This doesn't reduce perf right? |
The benchmarks I ran from this repo fluctuated wildly for me, both on this branch and master, but they seemed to be about the same. There are probably some optimizations we can do here, but the most important thing is that this unlocks saving the analysis in reth for us, so it is basically a ~30% perf boost there regardless if this is a bit slower. cc @rakita maybe you can run the benchmarks and tell if it is slower or not The analysis benchmark in |
could we also run https://github.com/ziyadedher/evm-bench? |
Few runs, Snailtracer Host+Interpreter benchmark (2.0s) ... 40_966_324.283 ns/iter (0.996 R²)
Snailtracer Interpreter benchmark (2.2s) ... 39_801_445.345 ns/iter (1.000 R²)
Snailtracer Host+Interpreter benchmark (2.1s) ... 41_884_049.233 ns/iter (0.997 R²)
Snailtracer Interpreter benchmark (2.2s) ... 39_596_354.867 ns/iter (1.000 R²)
Snailtracer Host+Interpreter benchmark (2.0s) ... 42_948_784.517 ns/iter (0.999 R²)
Snailtracer Interpreter benchmark (2.2s) ... 40_548_198.630 ns/iter (1.000 R²)
Snailtracer Host+Interpreter benchmark (2.0s) ... 43_424_133.383 ns/iter (0.997 R²)
Snailtracer Interpreter benchmark (2.2s) ... 40_452_607.309 ns/iter (1.000 R²)
Snailtracer Host+Interpreter benchmark (2.0s) ... 41_005_224.767 ns/iter (0.996 R²)
Snailtracer Interpreter benchmark (2.1s) ... 38_424_680.479 ns/iter (1.000 R²)
Snailtracer Host+Interpreter benchmark (2.4s) ... 42_549_231.861 ns/iter (0.999 R²)
Snailtracer Interpreter benchmark (2.2s) ... 39_077_422.206 ns/iter (1.000 R²)
Snailtracer Host+Interpreter benchmark (2.1s) ... 43_233_361.267 ns/iter (0.997 R²)
Snailtracer Interpreter benchmark (2.2s) ... 39_191_841.606 ns/iter (1.000 R²)
Snailtracer Host+Interpreter benchmark (2.4s) ... 42_033_109.533 ns/iter (0.999 R²)
Snailtracer Interpreter benchmark (2.2s) ... 39_420_830.715 ns/iter (1.000 R²)
Snailtracer new:
it is around 1-2ms slower around 3-5% for snailtracer which is heavy on interpreter. The slowdown is expected, and I am okay with it. Analysis old:
Analysis new:
Analysis seems similar but I would expect a little better performance for new way, will check that part of the code a bit. better. PR looks great! |
Optimized new analysis:
|
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.
few nits, but it lgtm
Removes gas blocks as a concept and replaces analysis with a jump map-only analysis.
Closes #388, also closes #389 using
bitvec