question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Add benchmarking test suite.

See original GitHub issue

Currently 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 tests
    • one 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
  • ~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 than MemoryDB (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:open
  • Created 5 years ago
  • Reactions:1
  • Comments:22 (22 by maintainers)

github_iconTop GitHub Comments

1reaction
pipermerriamcommented, May 7, 2018

That is some good looking 💩

1reaction
cburgdorfcommented, May 5, 2018

@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

Read more comments on GitHub >

github_iconTop 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 >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found