-
-
Notifications
You must be signed in to change notification settings - Fork 558
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Continuous benchmarking #2025
Comments
Great idea, but we have to consider how reproducible these benchmarks are since GH runners don't guarantee any consistent performance. Threshold tuning for alerts will be important. |
We don't need to care about a performance of different workers, because we'll benchmark each integration on each run, so we can get reliable & comparable results on the provided machine. Anyway, if already working runner can be slowed down by GitHub, then indeed it wouldn't make sense to use them. To be fair, I'm not even sure if it's possible with Maven 🤔 I don't see anything useful in this area, with Gradle we could just add a benchmark module with 3 source sets & process JMH output via a script. |
Something like this could be a thing too:
The action I've initially mentioned has quite a lot of issues & it's hard to adjust it. I guess we could even try to fork this one and just personalize it. |
We can just branch and test a little.
What about just executing the javalin-performance repo against a build of the commit that triggers the workflow? We can keep performance tests there and just write a GH action inside the org, maybe in kotlin-js. Something like
Maybe there's some easier way with the performance just living in the main repo, but I remember @tipsy being against it. |
I don't think it makes sense to do this way, it's a little bit overcomplicated. For instance, we'd need to also distribute builds of PRs, because the crucial part of this request is to also provide an automated feedback on each incoming change, before it's even merged to master. Imo, performance tests should be located in the |
Well there's still the possibility of migrating Javalin 6 to gradle 🤔🤔🤔🤔 @tipsy |
xD Let's stay with Maven - I guess it might be possible to do it as long as we'll cover all the required functions in the actions script. |
(≖_≖ ) |
How we can run the module against a specific Javalin source is the only thing I'm not sure about tbh. JSON is built into JMH: |
We need to use submodules, so we can declare different versions of dependencies:
Each module should contain a list of benchmarks that follows a specific pattern, so later on we can properly analyze the results to build a comparison table on CI. |
Regardless of the CI integration for continuous benchmarking, I think you should run some tests before final release of 6.x @tipsy. With these |
Currently, we're quite unaware of the performance improvements/degradation caused by introduced changes. It'd be cool to setup GitHub Actions integration that would compare:
Something like that could be an option:
The text was updated successfully, but these errors were encountered: