Add benchmarking test suite.
See original GitHub issueCurrently we don’t have good benchmarking tools.
Lets write a script that does the following.
For each set of mainnet VM rules, build a chain of X empty blocks.✅one using✅mine_block
another using✅import_block
For each set of mainnet VM rules, build a chain of X block, each full of simple value transfer transactions.✅✅sender
should be static across all testsone run using empty✅to
accounts.one run using existing✅to
accounts.
- For each set of mainnet VM rules, benchmark using the open zeppelin ERC20 token contract.
- one run with X calls to
transfer
- one run with X calls to
approve
- one run with X calls to
transferFrom
- one run with X calls to
- ~For each set of mainnet VM rules, benchmark deployment of the open zeppelin ERC20 token contract.~ ✅
- For each set of mainnet VM rules, benchmark DOS style transaction spam.
- Make X calls to a contract which uses all available gas to create empty contracts.
- Make X calls to a contract which uses all available gas on SSTORE operations.
- Two more same as above but which revert at the end of contract execution.
- ~For each set of mainnet VM rules, benchmark gas per second for block import.~ ✅
- ~Measure for pure value transfer transactions.~ ✅
- ~Measure for representative EVM execution (which will have to be an approximation. probably worth starting with just ERC20 contracts and transfers and then expanding from there.~ ✅
- ensure blocks use pre generated fixtures with real blocks that qualify the PoW so that we don’t miss to benchmark the POW validation/verification overhead
- have at least one benchmark to use
LevelDB
rather thanMemoryDB
(ideally all of them but may be too big of an performance hit)
These benchmark scripts should produce detailed output to the console and be added as a stand-alone test run in our CI environment. Any failing benchmark scripts should cause CI to fail.
Stats worth tracking:
- time to run
- total DB size
Issue Analytics
- State:
- Created 5 years ago
- Reactions:1
- Comments:22 (22 by maintainers)
Top Results From Across the Web
Phoronix Test Suite - Linux Testing & Benchmarking Platform ...
The Phoronix Test Suite is the most comprehensive testing and benchmarking platform available that provides an extensible framework for which new tests can ......
Read more >pts / Phoronix Test Suite Test Suites - OpenBenchmarking.org
This test suite consists of cryptocurrency benchmarks, primarily CPU mining test profiles for measuring the performance of various cryptocurrency algorithms.
Read more >How to benchmark your Ubuntu Linux servers with the ...
Open source: Must-read coverage This test suite can carry out quantitative and qualitative benchmarks so you can compare the results of your ......
Read more >Phoronix Test Suite 10.8.4 - GitHub
The Phoronix Test Suite is the most comprehensive testing and benchmarking platform available for Linux, Solaris, macOS, Windows, and BSD operating systems. The ......
Read more >Learn How To Benchmark YOUR Linux PC! - YouTube
Call me weird, but I LOVE benchmarking all my Linux PCs, and I constantly use Phoronix Test Suite because it's a consistent, scalable...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
That is some good looking 💩
@pipermerriam I started hacking something together but it’s really just a dirty pile of 💩 at this point. Just opening the PR to for the illusion of progress 😉
https://github.com/ethereum/py-evm/pull/650