diff --git a/bins/revme/benches/evm.rs b/bins/revme/benches/evm.rs index aca03a8a0d..8410a86766 100644 --- a/bins/revme/benches/evm.rs +++ b/bins/revme/benches/evm.rs @@ -6,6 +6,7 @@ fn evm(c: &mut Criterion) { bench::burntpix::run(c); bench::snailtracer::run(c); bench::transfer::run(c); + bench::evm_build::run(c); } criterion_group!(benches, evm); criterion_main!(benches); diff --git a/bins/revme/src/cmd/bench.rs b/bins/revme/src/cmd/bench.rs index f5cbee74dc..a8f4d3fa91 100644 --- a/bins/revme/src/cmd/bench.rs +++ b/bins/revme/src/cmd/bench.rs @@ -1,5 +1,6 @@ pub mod analysis; pub mod burntpix; +pub mod evm_build; pub mod snailtracer; pub mod transfer; @@ -11,6 +12,7 @@ pub enum BenchName { Burntpix, Snailtracer, Transfer, + EvmBuild, } impl BenchName { @@ -19,6 +21,7 @@ impl BenchName { BenchName::Burntpix, BenchName::Snailtracer, BenchName::Transfer, + BenchName::EvmBuild, ]; pub fn as_str(self) -> &'static str { @@ -27,6 +30,7 @@ impl BenchName { BenchName::Burntpix => "burntpix", BenchName::Snailtracer => "snailtracer", BenchName::Transfer => "transfer", + BenchName::EvmBuild => "evm-build", } } } @@ -71,6 +75,9 @@ impl Cmd { BenchName::Transfer => { transfer::run(&mut criterion); } + BenchName::EvmBuild => { + evm_build::run(&mut criterion); + } } } } diff --git a/bins/revme/src/cmd/bench/evm_build.rs b/bins/revme/src/cmd/bench/evm_build.rs new file mode 100644 index 0000000000..a7e2ea7b51 --- /dev/null +++ b/bins/revme/src/cmd/bench/evm_build.rs @@ -0,0 +1,10 @@ +use criterion::Criterion; +use revm::{Context, MainBuilder, MainContext}; + +pub fn run(criterion: &mut Criterion) { + criterion.bench_function("evm-build", |b| { + b.iter(|| { + let _ = Context::mainnet().build_mainnet(); + }); + }); +}