Open Wodann opened 1 year ago
I ran profiling on benchmarking scenarios when using a custom allocator. A summary of my findings:
Neptune Mutual
edr_evm::state::trie::account::clone
edr_evm::miner::mine_block
OpenZeppelin
edr_evm::blockchain::local::state_at_block_number
Rocketpool
edr_evm::runtime::guaranteed_dry_run
edr_evm::blockchain::local::last_block
edr_evm::blockchain::local::block_by_number
Safe Contracts
Seaport
Uniswap
edr_evm::state::trie::account::clone and edr_evm::blockchain::local::state_at_block_number can be almost completely avoided by using a persistent data structure.
I ran profiling on benchmarking scenarios when using a custom allocator. A summary of my findings:
Neptune Mutual
edr_evm::state::trie::account::clone
(77.95%)edr_evm::miner::mine_block
(6.96%)OpenZeppelin
edr_evm::blockchain::local::state_at_block_number
(68.82%)edr_evm::miner::mine_block
(10.1%)edr_evm::state::trie::account::clone
(9.5%)Rocketpool
edr_evm::blockchain::local::state_at_block_number
(42.31%)edr_evm::runtime::guaranteed_dry_run
(15.8%)edr_evm::blockchain::local::last_block
(11.23%)edr_evm::miner::mine_block
(11.07%)edr_evm::blockchain::local::block_by_number
(6.53%)Safe Contracts
edr_evm::miner::mine_block
(48.6%)edr_evm::runtime::guaranteed_dry_run
(17.19%)edr_evm::blockchain::local::state_at_block_number
(8.78%)edr_evm::blockchain::local::last_block
(7.34%)Seaport
edr_evm::miner::mine_block
(38.19%)edr_evm::state::trie::account::clone
(19.8%)edr_evm::runtime::guaranteed_dry_run
(15.28%)edr_evm::blockchain::local::last_block
(9.23%)edr_evm::blockchain::local::state_at_block_number
(7.66%)Uniswap
edr_evm::blockchain::local::state_at_block_number
(74.19%)edr_evm::miner::mine_block
(11.26%)edr_evm::state::trie::account::clone
(6.68%)Analysis
edr_evm::state::trie::account::clone
andedr_evm::blockchain::local::state_at_block_number
can be almost completely avoided by using a persistent data structure.Flamegraphs
Neptune Mutual
OpenZeppelin
Rocketpool
Safe Contracts
Seaport
Uniswap