Uh oh!
There was an error while loading. Please reload this page.
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
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
| @@ -1,27 +0,0 @@ | |||
| <Project Sdk="Microsoft.NET.Sdk"> | |||
There was a problem hiding this comment.
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.
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.
Replaced by a single project file with MSBuild properties
Uh oh!
There was an error while loading. Please reload this page.
| @@ -1,23 +0,0 @@ | |||
| <Project Sdk="Microsoft.NET.Sdk"> | |||
There was a problem hiding this comment.
No need for an extra top-level project now
safesparrow
commented
Jun 30, 2022
@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. |
safesparrow
commented
Jul 7, 2022
@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👍 |
vzarytovskii
commented
Jul 15, 2022
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/FCSBenchmarksprojects.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.slnInternalsVisibleTolist inFSharp.Compiler.ServiceChanges in FSharp.Compiler.Benchmarks
HistoricalBenchmarkHistoricalBenchmarkmainly to reuse theSingleFileCompiler. This might be somewhat controversial -HistoricalBenchmarkneeds 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.