-
Notifications
You must be signed in to change notification settings - Fork 41
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
tracking: performance optimizations #451
Comments
consider removing bloom filter calculations (CreateBloom) as well eats up about 4-5% of the cpu time of EVMApplyTransaction. if we do this, plan on adding a way to query the list of logs generated by a tx/block since we might still need it for other features |
Looking at the CPU report of pprof the most notable improvement we can make is probably memoizing this medusa/fuzzing/coverage/coverage_tracer.go Lines 164 to 168 in 3a9b0fa
EDIT: This is done #472 |
We don't need a state commitment and it's slow so let's mock it and re-execute transactions as needed (we are already doing this for tracing after the latest go-ethereum upgrade). The only trie that is loaded from the db rn is the genesis and/or post-deployment state AFAIK.
medusa/chain/test_chain.go
Lines 828 to 830 in b81a9bc
medusa/chain/vendored/apply_transaction.go
Line 64 in b81a9bc
We should simplify the main fuzz loop to just be changing the block num/timestamp in the block context and not doing all the complex stuff with pending/discarding blocks as if it's a real chain IMO
medusa/chain/test_chain.go
Lines 742 to 743 in b81a9bc
The text was updated successfully, but these errors were encountered: