-
Notifications
You must be signed in to change notification settings - Fork 326
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
Bench builder API #7324
Bench builder API #7324
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great!
While we are at it, I think it could be worth to revisit the format of the output that Bench.measure
does - maybe we should allow to register the results in the Bench
class and its children and allow exporting to CSV? @Akirathan wouldn't that make then loading benchmark results much easier?
Please generate this XML format, if you want to get on par with existing JMH support. |
Jaroslav Tulach reports a new STANDUP for yesterday (2023-07-18): Progress: - benchmarking discussions: #7270 (comment)
Next Day: Bugfixes, cleanup & performance |
I don't think it is worth investing time in adding any more capabilities
to the `Bench` Enso class, apart from designing the specs builder API. I
was hoping that after the integration of #7101, the preferred way to
invoke benchmarks, and collect data from benchmarks, will be via our new
custom JMH runner. Trying to mimic the behavior of JMH in our Enso
`Bench.measure` makes little sense now.
|
Jaroslav Tulach reports a new STANDUP for yesterday (2023-07-19): Progress: - bench builder API merged: #7324
Next Day: Bugfixes, cleanup & performance |
Pull Request Description
Designing new
Bench
API to collect benchmarks first and only execute them then. This is a minimal change to allow implementation of #7323 - e.g. ability to invoke a single benchmark via JMH harness.Important Notes
This is just the basic API skeleton. It can be enhanced, if the basic properties (allowing integration with JMH) are kept. It is not intent of this PR to make the API 100% perfect and usable. Neither it is goal of this PR to update existing benchmarks to use it (74ac8d7 changes only one of them to demonstrate it all works somehow). It is however expected that once this PR is integrated, the newly written benchmarks (like the ones from #7270) are going to use (or even enhance) the new API.
Checklist
Please ensure that the following checklist has been satisfied before submitting the PR:
Vector/Operations.enso
continue to run