Tools for building, loading and integrating revmc JIT & AOT compiled functions in revm environment.
Additionally, it provides a way to compare the performance of JIT and AOT compiled functions to native EVM execution.
For transactions and benches you can specify which contracts will be compiled:
selected
(default): All contracts that are called during EVM execution.gas-guzzlers
: Contracts that consumed the most gas in specified block range. Usehelp
command to see the parameters.
Run Fibonacci call
cargo run --release -p revmc-toolkit-bench run call --run-type {aot/jit/native}
Run Transaction
cargo run --release -p revmc-toolkit-bench run tx {tx-hash} --run-type {aot/jit/native}
Run Block
cargo run --release -p revmc-toolkit-bench run block {block-number} --run-type {aot/jit/native}
RUST_LOG=info cargo run --release -p revmc-toolkit-bench bench call
RUST_LOG=info cargo run --release -p revmc-toolkit-bench bench tx {tx-hash}
RUST_LOG=info cargo run --release -p revmc-toolkit-bench bench block {block-number}
RUST_LOG=info cargo run --release -p revmc-toolkit-bench block-range {start-block}..{end-block} --sample-size {sample-size}
The results will be recorded in a file. See --help
for more options.
Find top bytecodes that consumed the most gas in specified block range.
cargo run --release --package gas-guzzlers --bin gas-guzzlers -- --start-block {start-block} --end-block {end-block} --sample-size {sample-size} --take {limit}