Currently, the the eth_estimateGas constructs a new EvmObserver for each iteration of the binary search. Potentially, this is resulting in more deallocations and allocations, impacting performance.
In particular, this would be the case in the JSON-RPC provider if:
- tracing is enabled
eth_estimateGas is called often
The simplest way to reproduce this would be to add a criterion benchmark that calls estimate_gas on the ProviderData repeatedly.
Action Items
Currently, the the
eth_estimateGasconstructs a newEvmObserverfor each iteration of the binary search. Potentially, this is resulting in more deallocations and allocations, impacting performance.In particular, this would be the case in the JSON-RPC provider if:
eth_estimateGasis called oftenThe simplest way to reproduce this would be to add a criterion benchmark that calls
estimate_gason the ProviderData repeatedly.Action Items
eth_estimateGasperformance with & without tracingEvmObserverwould improve performance.