[Xamarin.Android.Build.Tasks] fast path for <CheckClientHandlerType/>#7652
Merged
dellis1972 merged 1 commit intodotnet:mainfrom Jan 4, 2023
Merged
Conversation
6e5ed2f to
9c890d9
Compare
<CheckClientHandlerType/>
Member
Author
|
/azp run |
dellis1972
approved these changes
Jan 3, 2023
9c890d9 to
efead2b
Compare
`dotnet trace` of a `dotnet new maui` project, I noticed this was
happening on *any* build:
65.94ms xamarin.android.build.tasks!Xamarin.Android.Tasks.CheckClientHandlerType.RunTask()
Checking outside of a profiler, a `.binlog` says:
CheckClientHandlerType = 55 ms
This was added in 311b41e, so it is only in main & .NET 8. Maybe when
we timed this before, it wasn't a MAUI app?
Looking at the stack trace, most of the time is spent loading
assemblies with Mono.Cecil.
Let's add a check at the beginning for the two most common values:
* .NET 6+: `Xamarin.Android.Net.AndroidMessageHandler`
* Classic: `Xamarin.Android.Net.AndroidClientHandler`
And we can return early in these cases.
After these changes, I get:
CheckClientHandlerType = 2 ms
This should save ~53ms on any build w/ common settings for
`$(AndroidHttpClientHandlerType)`.
efead2b to
bce18d6
Compare
grendello
added a commit
to grendello/xamarin-android
that referenced
this pull request
Jan 17, 2023
* main: [Xamarin.Android.Build.Tasks] skip XA1034 logic in some cases (dotnet#7680) [ci] Move OneLocBuild task to scheduled pipeline (dotnet#7679) [Mono.Android] ServerCertificateValidationCallback() and redirects (dotnet#7662) Bump to xamarin/Java.Interop/main@cf80deb7 (dotnet#7664) Localized file check-in by OneLocBuild (dotnet#7668) [api-merge] Correctly compute //method/@deprecated-since (dotnet#7645) [Xamarin.Android.Build.Tasks] _Microsoft.Android.Resource.Designer (dotnet#6427) [Xamarin.Android.Build.Tasks] downgrade d8/r8 `warning` messages to `info` (dotnet#7643) [Xamarin.Android.Build.Tasks] fix cases of missing `@(Reference)` (dotnet#7642) [Xamarin.Android.Build.Tasks] delay ToJniName calls in ManifestDocument (dotnet#7653) [Xamarin.Android.Build.Tasks] fast path for `<CheckClientHandlerType/>` (dotnet#7652)
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.
dotnet traceof adotnet new mauiproject, I noticed this washappening on any build:
Checking outside of a profiler, a
.binlogsays:This was added in 311b41e, so it is only in main & .NET 8. Maybe when
we timed this before, it wasn't a MAUI app?
Looking at the stack trace, most of the time is spent loading
assemblies with Mono.Cecil.
Let's add a check at the beginning for the two most common values:
Xamarin.Android.Net.AndroidMessageHandlerXamarin.Android.Net.AndroidClientHandlerAnd we can return early in these cases.
After these changes, I get:
This should save ~53ms on any build w/ common settings for
$(AndroidHttpClientHandlerType).