-
Notifications
You must be signed in to change notification settings - Fork 10.1k
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
Published size regression: todosapipublishaot, todosapipublishaot, todosapipublishaot #56139
Comments
This looks like a 2% regression in the TodosApi app (Stage 2). I narrowed this down to dotnet/runtime@3750ac5...b49c04fcff68/. The one that stands out the most is dotnet/runtime#102902. I have a before and after mstat. It appears the biggest changes are:
It looks like dotnet/runtime#102902 could be causing it: AttributeProviderFactory = static () => typeof({{property.DeclaringType.FullyQualifiedName}}).GetMember({{FormatStringLiteral(property.MemberName)}}, {{InstanceMemberBindingFlagsVariableName}}) is { Length: > 0 } results ? results[0] : null, |
Hmm, my expectation was that the |
TodosApi-before.zip Those are the mstats I captured. |
Looking at the code that Eric posted, if the code above is needed (initializing
It is possible all of this is caused by the Not sure if the array enumerators and |
I triggered a rt-sz run on the PR and it does show some regression, but not for the array enumerators. Could be the array enumerators are a different issue, or it just needs a different app to hit. The rt-sz run is here, the mstat files can be downloaded from the report: MichalStrehovsky/rt-sz#28 This is how the new sizoscope feature looks like (notice slightly different color): |
For context, the OpenAPI use case needs a mechanism for resolving custom attributes from the type graph (that is attributes not explicitly recognized by the source generator such as
It is looking for either properties or fields. What would be the benefits of switching to |
FWIW I just remembered that the reason I ended up with |
If this was Since it's
GetMembers has some absurd behaviors compared to the other Get APIs and there are considerations to do breaking change in them (dotnet/runtime#98533). Not sure if it affects the semantic you're using here, but I though it's worth mentioning. |
I put up dotnet/runtime#103275 that investigates use of |
Looks like dotnet/runtime#103275 fixed it. Now that we got a new runtime build: Looking at sizoscope of before/after, I see the SZGenericArrayEnumerators are only in "before", as well as the Reset() methods that were showing up in the inital regression. The total size looks slightly smaller than before the regression, so some other changes must have been made as well to reduce the size. |
Changes
9.0.0-preview.6.24305.3
->9.0.0-preview.6.24306.2
9.0.0-preview.6.24281.1
->9.0.0-preview.6.24306.3
Changes
9.0.0-preview.6.24305.3
->9.0.0-preview.6.24306.2
9.0.0-preview.6.24281.1
->9.0.0-preview.6.24306.3
Changes
9.0.0-preview.6.24305.3
->9.0.0-preview.6.24306.5
9.0.0-preview.6.24281.1
->9.0.0-preview.6.24306.8
PowerBI Dashboard
@sebastienros
@eerhardt
The text was updated successfully, but these errors were encountered: