dotnet/linker

.NET 7 RC 1, illink is up to 10x slower?

jonathanpeppers opened this issue ยท 9 comments

This started happening here:

Many of our test lanes that generate projects and build them seem to be timing out.

From what I see so far, the log ends with:

Task "ILLink" (TaskId:268)
... all the input parameters here
(TaskId:268)

And then the msbuild.binlog is broken because the build was canceled after a timeout. So I believe the last task that ran is ILLink?

logs.zip

I think this is happening with any Release build of an Android project, but I will do more investigation locally.

Ok, maybe we are timing out because the duration has now increased significantly:

image

Then this is x4 for 4 RIDs.

In .NET 6:

image

net6vsnet7.zip

If our integration tests build lots of projects, maybe we are now just hitting general timeouts?

@jtschuster would you be able to investigate?

fyi, this is on our critical path for RC1. thanks.

@jonathanpeppers would you be able to share a repro? We haven't been able to measure any regression so far (we measured time taken to trim the framework while rooting everything), and nothing jumps out immediately from that commit range.

To repro I did dotnet new android and dotnet build -c Release, using a local build of xamarin/xamarin-android.

I tried using xamarin-android/main instead of xamarin/xamarin-android#7255.

This seems to be faster:

image

net7-older.zip

This makes me think there was a ~1 second regression from 6 to 7 (might actually be fine?).

But then a larger regression in here somewhere: f09bacf...95ea184

Fix is in #2976.

Fixed in #2976

@sbomer the only thing we should double-check. Is this fix in .NET 7 RC1?

I just want to make sure we won't be blocked when we go to test our release branches.

It has made it into the sdk's RC1 branch: dotnet/sdk#27219