-
Notifications
You must be signed in to change notification settings - Fork 802
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
Fix and refactor FCSBenchmarks #13419
Conversation
* extract all types into separate files * deduplicate the shared source file * start creating a script for running all benchmarks
* Refactor all the benchmarks a bit
- use JSON reports instead of CSV - put results in separate directories so that they can be accessed after the benchmark - read the results after all benchmarks finish rather than keeping them in memory * Add `BenchmarkComparison/README.md`
* refactor runner.ipynb further * Clear notebook outputs * Rename entrypoint file to `Program.fs` * Finish the smoke test script
@@ -1,27 +0,0 @@ | |||
<Project Sdk="Microsoft.NET.Sdk"> |
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.
Replaced by a single project file with MSBuild properties
@@ -1,25 +0,0 @@ | |||
<Project Sdk="Microsoft.NET.Sdk"> |
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.
Replaced by a single project file with MSBuild properties
@@ -1,25 +0,0 @@ | |||
<Project Sdk="Microsoft.NET.Sdk"> |
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.
Replaced by a single project file with MSBuild properties
@@ -1,23 +0,0 @@ | |||
<Project Sdk="Microsoft.NET.Sdk"> |
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.
No need for an extra top-level project now
@vzarytovskii Would you be able to review? Thanks! |
Thanks for changes, they look good will do more thorough review tomorrow, once at my laptop :) One thing which comes to mind is to add benchmarks to |
Yes, thanks. We only use the FSharp.Compiler.Service solution, so it would be useful. |
@vzarytovskii Let me know if this is something worth merging and any changes you'd like to see :) |
… F# project `HistoricalBenchmark.Runner`, call that logic from `runner.ipynb` * Add a few customisations (mostly directories) * Reuse existing checkouts/builds/benchmark reports * Provide simple `Runner.runAll` method for doing everything * Include sample results with three historical comparisons
I did a few changes:
@vzarytovskii @KevinRansom Would it be possible to get the changes reviewed? If this is not a change you are willing to consider at this time that's fine - but I would be keen to know whether there is any point spending more time on this👍 |
It looks great, sorry it was taking long time, we were a bit preoccupied with some other stuff :) |
Major cleanup and fixes of the benchmarks in
tests/FCSBenchmarks
projects.Changes in all benchmarks
Changes in historical benchmark (
BenchmarkComparison
)Changes in the notebook (
runner.ipynb
).artifacts/
, read them at the endChanges in the BDN benchmark (now renamed to
HistoricalBenchmark.fsproj
)VisualFSharp.sln
InternalsVisibleTo
list inFSharp.Compiler.Service
Changes in FSharp.Compiler.Benchmarks
HistoricalBenchmark
HistoricalBenchmark
mainly to reuse theSingleFileCompiler
. This might be somewhat controversial -HistoricalBenchmark
needs to support old versions of FCS to allow doing a comparison, which can be limiting. However, currently this isn't a problem - once it is, we could either duplicate the code again or extract the shared bits to a separate project.