Description
When invoking a UIView property (and likely anything else), there's a new native method being invoked xamarin_get_frame_length which incurs a very high cost when invoking methods.
This causes a very large performance regression (25:1 in some of our test cases) when comparing with legacy Xamarin.
The instruments traces below are from a physical device running arm64.
Steps to Reproduce
Create an application which invokes UIView.get_SuperView, invoke it in a loop.
Expected Behavior
Here's the Legacy Xamarin result:

Actual Behavior
Here's the .NET 6.0 RC1 result:

Environment
.NET 6 RC1 (https://aka.ms/dotnet/maui/rc.1.json)
Build Logs
Available on demand.
Example Project (If Possible)
None, see repro steps above.
Description
When invoking a
UIViewproperty (and likely anything else), there's a new native method being invokedxamarin_get_frame_lengthwhich incurs a very high cost when invoking methods.This causes a very large performance regression (25:1 in some of our test cases) when comparing with legacy Xamarin.
The instruments traces below are from a physical device running arm64.
Steps to Reproduce
Create an application which invokes
UIView.get_SuperView, invoke it in a loop.Expected Behavior
Here's the Legacy Xamarin result:

Actual Behavior
Here's the .NET 6.0 RC1 result:

Environment
.NET 6 RC1 (https://aka.ms/dotnet/maui/rc.1.json)
Build Logs
Available on demand.
Example Project (If Possible)
None, see repro steps above.