Benchmarks icon indicating copy to clipboard operation
Benchmarks copied to clipboard

Add script to publish Goldilocks app for NativeAOT

Open eerhardt opened this issue 2 years ago • 3 comments

When new developers want to test out their changes against the "Stage 1" Goldilocks app, they have to know exactly how to publish the app (PublishAot=true, TrimMode=full, StripSymbols=true, etc).

We should have a script next to the .csproj that devs can easily run locally to get the same app that is used in our benchmarks.

Note this could also be documentation, but a script feels nicer.

cc @mitchdenny @eiriktsarpalis

eerhardt avatar Jan 19 '23 20:01 eerhardt

We have the README in the scenarios folder that references all the available benchmarks and sample command lines for each. Can you check if it should be documented there too?

sebastienros avatar Jan 19 '23 20:01 sebastienros

https://github.com/aspnet/Benchmarks/blob/main/scenarios/README.md

sebastienros avatar Jan 19 '23 20:01 sebastienros

@eiriktsarpalis and I chatted a bit about this.

Our thinking is that it would be best if we had the ability to point to a local build of dotnet/runtime and/or dotnet/aspnetcore. That way runtime and aspnet devs could easily test their changes changes by doing something like:

crank
  --config https://raw.githubusercontent.com/aspnet/Benchmarks/main/scenarios/goldilocks.benchmarks.yml
  --scenario stage1publishaot
  --profile aspnet-perf-win
  --chart
  --application.runtimePackage C:\git\runtime\artifacts\packages\Release\Shipping\runtime.win-x64.Microsoft.DotNet.ILCompiler.8.0.0-dev.nupkg

And crank would upload and use the runtime.win-x64.Microsoft.DotNet.ILCompiler.8.0.0-dev.nupkg that I locally built.

The same functionality for --[JOB].aspNetCorePackage.

Then we could just have a README that said:

  1. Build your changes locally using ./build.cmd clr.aot+libs+packs -c release
  2. Run the above crank command

eerhardt avatar Jan 30 '23 17:01 eerhardt