[profiled-aot] update dotnet.aotprofile for .NET 8#7908
Merged
jonpryor merged 1 commit intodotnet:mainfrom Mar 22, 2023
Merged
Conversation
We've not done this yet in .NET 8, and we've noticed some potential
regressions in startup time.
A `dotnet new android` app, an average of 10 runs on a Pixel 5:
Before:
Average(ms): 192.3
Std Err(ms): 2.00582485111072
Std Dev(ms): 6.34297511687799
After:
Average(ms): 161.4
Std Err(ms): 2.21208800307161
Std Dev(ms): 6.99523647443983
Saves ~30ms in startup by just updating the profile.
jonathanpeppers
commented
Mar 21, 2023
Comment on lines
+2331
to
+2343
| void System.Reflection.Emit.DynamicMethod:CreateDynMethod () | ||
| void System.Reflection.Emit.DynamicMethod:Init (string,System.Reflection.MethodAttributes,System.Reflection.CallingConventions,System.Type,System.Type[],System.Type,System.Reflection.Module,bool,bool) | ||
| void System.Reflection.Emit.ILGenerator:.ctor (System.Reflection.Module,System.Reflection.Emit.ITokenGenerator,int) | ||
| void System.Reflection.Emit.ILGenerator:Emit (System.Reflection.Emit.OpCode,int) | ||
| void System.Reflection.Emit.ILGenerator:Emit (System.Reflection.Emit.OpCode,System.Reflection.ConstructorInfo) | ||
| void System.Reflection.Emit.ILGenerator:Emit (System.Reflection.Emit.OpCode,System.Reflection.FieldInfo) | ||
| void System.Reflection.Emit.ILGenerator:Emit (System.Reflection.Emit.OpCode,System.Reflection.MethodInfo) | ||
| void System.Reflection.Emit.ILGenerator:Emit (System.Reflection.Emit.OpCode,System.Type) | ||
| void System.Reflection.Emit.ILGenerator:Emit (System.Reflection.Emit.OpCode) | ||
| void System.Reflection.Emit.ILGenerator:emit_int (int) | ||
| void System.Reflection.Emit.ILGenerator:label_fixup (System.Reflection.MethodBase) | ||
| void System.Reflection.Emit.ILGenerator:ll_emit (System.Reflection.Emit.OpCode) | ||
| void System.Reflection.Emit.ILGenerator:make_room (int) |
Member
Author
There was a problem hiding this comment.
Wait something is using System.Reflection.Emit now?!? Need to investigate what...
Member
Author
There was a problem hiding this comment.
This is coming from System.Reflection.ConstructorInfo.Invoke().
Will investigate if we can use the feature flag: dotnet/runtime#80246
jonathanpeppers
added a commit
that referenced
this pull request
Mar 22, 2023
Context? dotnet/runtime#72717 We've not done this yet in .NET 8, and we've noticed some potential regressions in startup time, possibly because `ConstructorInfo.Invoke()` now uses System.Reflection.Emit. Update `dotnet.aotprofile` for .NET 8. A `dotnet new android` app, an average of 10 runs on a Pixel 5: * Before: Average(ms): 192.3 Std Err(ms): 2.00582485111072 Std Dev(ms): 6.34297511687799 * After: Average(ms): 161.4 Std Err(ms): 2.21208800307161 Std Dev(ms): 6.99523647443983 Saves ~30ms in startup by just updating the profile.
grendello
added a commit
to grendello/xamarin-android
that referenced
this pull request
Mar 23, 2023
* main: [build] remove .NET 6 support (dotnet#7900) [profiled-aot] update `dotnet.aotprofile` for .NET 8 (dotnet#7908) [tests] Add backup ssl sites in case of 429 response. (dotnet#7909) $(AndroidPackVersionSuffix)=preview.4; net8 is 34.0.0-preview.4 (dotnet#7912)
grendello
added a commit
to grendello/xamarin-android
that referenced
this pull request
Apr 6, 2023
* main: (94 commits) [ci] Remove remaining Classic test jobs. (dotnet#7924) Add Nightly Tests for Humanizer [readme] Add aka.ms links for d17.5. (dotnet#7935) [tests] Remove `net472` multitargeting (dotnet#7932) [monodroid] Fix `ld` build error on Nightly Builds. (dotnet#7925) Bump to xamarin/Java.Interop/main@0355acf (dotnet#7931) [tests] Use msftconnecttest.com in QuoteInvalidQuoteUrlsShouldWork (dotnet#7919) [ci] Don't set demands for megapipeline (dotnet#7929) [Mono.Android] Bind API-UpsideDownCake Developer Preview 1 (dotnet#7796) Bump to dotnet/installer@d109cba3ff 8.0.100-preview.4.23176.5 (dotnet#7921) [Xamarin.Android.Build.Tasks] Fix Android Version Code for Release builds (dotnet#7795) Bump to dotnet/installer@27d6769dfb 8.0.100-preview.4.23172.16 (dotnet#7910) [Xamarin.Android.Build.Tasks] Fix native code generation when marshal methods are disabled (dotnet#7899) [ci] Optimize 'APK's .NET' test job overhead. (dotnet#7904) [Mono.Android] delay JNINativeWrapper.get_runtime_types() (dotnet#7913) Bump external/Java.Interop from `73ebad2` to `53bfb4a` (dotnet#7914) [build] remove .NET 6 support (dotnet#7900) [profiled-aot] update `dotnet.aotprofile` for .NET 8 (dotnet#7908) [tests] Add backup ssl sites in case of 429 response. (dotnet#7909) $(AndroidPackVersionSuffix)=preview.4; net8 is 34.0.0-preview.4 (dotnet#7912) ...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
We've not done this yet in .NET 8, and we've noticed some potential regressions in startup time.
A
dotnet new androidapp, an average of 10 runs on a Pixel 5:Saves ~30ms in startup by just updating the profile.