Skip to content

META: Benchmarks #2919

@ajnavarro

Description

@ajnavarro

Description

Benchmark Results

Related issues:

Now that we have a Benchmark MVP working, I'd like to enumerate the requests from several parties regarding the next steps:

Tasks

  • Execute Benchmarks on Pull Requests
    We had to roll back this feature due to concerns from developers about the time it takes for benchmarks to complete. Here are some proposals to mitigate this issue:

    • Run a Subset of Benchmarks: Use the -short flag to execute a smaller set of benchmarks. While this won't completely prevent regressions in the master branch, it will reduce their frequency.
    • Run Benchmarks Only on Modified Packages: This approach requires further thought, as it might not be the most effective solution.
    • Limit Execution Time: Ensure that benchmark execution takes less than 10 minutes, on PRs at least.
  • Disable Non-Essential Benchmarks via Flags
    Some benchmarks, like those testing goleveldb (which are testing the database itself), don't need to run on every PR. Instead, we could focus on specific benchmarks that test particular cases. Here some examples:

    • Testing speed when running examples package.
    • Launching the chain
    • Database loading speed
    • Benchdata performance

Benchmark Tools

Currently, two GitHub Actions can run Go benchmarks:

If none of these tools meets all our requirements, we should consider developing a new action fitting our use cases.

This is a call for comments (cc @moul and @thehowl )

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions