sbt / sbt-jmh

"Trust no one, bench everything." - sbt plugin for JMH (Java Microbenchmark Harness)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Request for feature: Cross-Versions benchmarking

diesalbla opened this issue · comments

For most Scala projects, when I submit a Pull Request and I have to evaluate the performance impact of a Pull Request, I often have to manually do the following process:

  • Checkout each distinct version, with and without the changes.
  • Run the sbt:jmh command, a same command, in each of them.
  • Retrieve and store the results from each run.
  • Arrange the results of both runs onto a spreadsheet, which I then use to show the relative error of each measure, and the observed improvement.

It may be desirable if sbt:jmh plugin could offer a command to carry ouy these operations directly, and were able to generate a single summary table, which included the score and error for each commit, and the relative difference between them.

Benchmark  Mode  Cnt Score(master)   Error  Score(branch) Error  Change  Units
Fili       thrpt 10         45000       42         42000     41    93.3 %  B/s

Why closing @diesalbla? Is it supported now? Did you find a solution?

@guizmaii This is an issue I opened a few years ago during the contributions with fs2, due to the small inconvenience of switching branches and keeping results. It is not something I am aiming at doing soon, and it did not seem right to burden sbt maintainers with it. Maybe all that all is needed is a shell script, to do all the switch branch, setup, compilation, run benchmarks and save results.

I have not found any solution to do this locally. I understand, though, that there are some CI workflows to run benchmarks on each commit or PR. That may alleviate the need for this.

Leaving open for now.