-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Include corerun in Mono testhost #80082
Conversation
Tagging subscribers to this area: @dotnet/area-infrastructure-libraries Issue DetailsBenchmark.NET has a I tested building
|
Some subset must be building the corerun executable, otherwise it wouldn't be available. Do you know which one does that? cc @steveisok @jkotas |
The clr.hosts subset builds corerun. If you have not built it, building mono+libs will not include corerun in the testhost but otherwise succeed. If this nondeterminism is undesirable, clr.hosts could be included in the mono subset. |
Ideally we would not include corerun in the libraries testhost artifact folder at all, as the testhost layout should represent the shipping testhost in the SDK. We only added it back as @adamsitnik explicitly asked for it. I can't remember what the exact reason was, but I think it was BenchmarkDotNet related and using the dotnet host wasn't possible at that time (also cc @am11). Maybe we should re-evaluate BDN's corerun dependency instead? |
BDN supports several mono flavors (https://github.com/dotnet/BenchmarkDotNet/blob/master/src/BenchmarkDotNet/ConsoleArguments/CommandLineOptions.cs). We can specify |
Thanks for the pointer to the code. I found a work around: the |
It looks like we need to update the docs with Mono benchmarking instructions. cc @radical @lewing
I am afraid that we still need it, as it's simpler and just works. |
@adamsitnik can you please remind me what the technical reason was for using it over the dotnet host? |
Benchmark.NET has a
--coreRun
parameter that enables running a benchmark against a private build of the .NET runtime. See these instructions in dotnet/performance for how it is used. Currently thecorerun
program is only being included in the CoreCLR version of the testhost. This change also includes it in the Mono version of the testhost, making it slightly easier to run benchmarks against the desktop version of Mono.I tested building
./build.sh -s mono+libs
to confirm that this does not introduce a requirement to build theclr.hosts
subset. I also tested running./build.sh -s mono+libs+clr.hosts
and then running Benchmark.NET against the resulting test host.