diff --git a/bins/revme/benches/evm.rs b/bins/revme/benches/evm.rs index a4fc9bfb62..ac03be32b8 100644 --- a/bins/revme/benches/evm.rs +++ b/bins/revme/benches/evm.rs @@ -5,6 +5,9 @@ use revme::cmd::{ }; fn evm(c: &mut Criterion) { + // call analysis to init static data. + revme::cmd::bench::analysis::run(); + for &bench_name in BenchName::ALL { let cmd = MainCmd::Bench(bench::Cmd { name: bench_name }); c.bench_function(bench_name.as_str(), |b| { diff --git a/bins/revme/src/cmd/bench/analysis.rs b/bins/revme/src/cmd/bench/analysis.rs index f2307ab75c..ee397d4a64 100644 --- a/bins/revme/src/cmd/bench/analysis.rs +++ b/bins/revme/src/cmd/bench/analysis.rs @@ -1,8 +1,10 @@ +use std::time::Instant; + use database::{BenchmarkDB, BENCH_CALLER, BENCH_TARGET}; use revm::{ bytecode::Bytecode, primitives::{bytes, hex, Bytes, TxKind}, - transact_main, Context, + Context, ExecuteEvm, }; const BYTES: &str = include_str!("analysis.hex"); @@ -20,5 +22,12 @@ pub fn run() { //evm.env.tx.data = Bytes::from(hex::decode("30627b7c").unwrap()); tx.data = bytes!("8035F0CE"); }); - let _ = transact_main(&mut context); + + let time = Instant::now(); + let _ = context.exec_previous(); + println!("First init: {:?}", time.elapsed()); + + let time = Instant::now(); + let _ = context.exec_previous(); + println!("Run: {:?}", time.elapsed()); }