This repository contains instructions for benchmarking evm implementations, ewasm contracts and standalone wasm modules. Directory descriptions follow.
evm/ - contains benchmarks for different evm implementations (geth, parity, cita-vm, evmone)
ewasm/ - contains benchmarks and tests for ewasm contracts in ewasm engines.
wasm/ - contains benchmarks for wasm modules in standalone wasm engines.
wasm-engines/ - contains benchmarks for wasm modules comparing wasm engines.
Directory /evm
contains a list of the current benchmarked evm implementations:
evm/
cita-vm/
evmone/
geth/
parity/
Build each one of the evm implementations:
$ make build_evm_engines
Run EVM benchmarks:
$ make benchmark_evm_engines
The previous command will create a new directory evmraceresults
, containing the following files:
evm_benchmarks.csv - consolidated benchmarks
evm_benchmarks_evmone.csv - evmone benchmarks
evm_benchmarks_parity.csv - parity benchmarks
evm_benchmarks_geth.csv - geth benchmarks
evm_benchmarks_cita-vm.csv - cita vm benchmarks
Run precompiles benchmarks:
$ cd evm
$ ./scripts/run_precompiles_bench.py geth
$ cd evm
$ ./scripts/run_precompiles_bench.py parity
Build the docker image:
$ make build_wasm_engines
Build the wasm binaries and execute benchmarks:
$ cd wasm-engines && ./run_benchmarks.sh
Build the docker image:
$ make build_scout_engines
Run benchmarks
make benchmark_scout_engines
Install python deps for plotting benchmark graphs:
$ pip install -r requirements.txt
$ make generate_charts