dotnet / dotnet/performance

Re-enable NativeAOT benchmarks that are currently not supported due to missing metadata

Open
#2,338 1 comment 1 reaction 0 assignees View on GitHub
help wanted
Dominant language
F#
Stars
773
Forks
301
Avg merge
6d 9h
Merged PRs (30d)
15

Description

There are currently multiple benchmarks with `[AotFilter("Currently not supported due to missing metadata.")]` filter applied: https://github.com/dotnet/performance/search?q=AotFilter

With https://github.com/dotnet/BenchmarkDotNet/pull/1973 in theory some of these benchmarks could now work.

The person who is willing to work on that should re-enable these benchmarks (by removing the attribute), see if they work:

```cmd
py .\scripts\benchmarks_ci.py -f nativeaot7.0 --filter '*ColdStartSerialization*' --bdn-arguments "--keepFiles true"
```

and if they don't, apply the necessary [DynamicallyAccessedMembers](https://devblogs.microsoft.com/dotnet/app-trimming-in-net-5/) attributes (https://github.com/dotnet/runtime/issues/66085#issuecomment-1057055013).

If it's impossible to make it work with DAM, we most probably need to extend BDN to support `rd.xml` files provided by the user (https://github.com/dotnet/BenchmarkDotNet/issues/1680), also suggested by @hez2010 in
https://github.com/dotnet/performance/pull/2328/files/3be06148aa1529c760deaa63d42cbde96a254152#r834076648

This would require finding the `rd.xml` file which is just next to project file:

https://github.com/dotnet/BenchmarkDotNet/blob/09d9396a7980dcb65be97169b8611c208af075a2/src/BenchmarkDotNet/Toolchains/NativeAot/Generator.cs#L185

and including it here:

https://github.com/dotnet/BenchmarkDotNet/blob/09d9396a7980dcb65be97169b8611c208af075a2/src/BenchmarkDotNet/Toolchains/NativeAot/Generator.cs#L188

and here:

https://github.com/dotnet/BenchmarkDotNet/blob/09d9396a7980dcb65be97169b8611c208af075a2/src/BenchmarkDotNet/Toolchains/NativeAot/Generator.cs#L153

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.