Skip to content
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

[net6] mono_threads_enter_gc_safe_region_unbalanced performance regression #14835

Open
jeromelaban opened this issue Apr 27, 2022 · 3 comments
Open
Labels
bug If an issue is a bug or a pull request a bug fix regression The issue or pull request is a regression
Milestone

Comments

@jeromelaban
Copy link

Steps to Reproduce

Invoke UIView.get_Superview in a loop.

Xamarin:
image

.NET 6 RC1:
image

My guess is that it is caused by changes in mono_threads_enter_gc_safe_region_unbalanced, but I'm not completely sure.

Expected Behavior

Performance is similar or better than Xamarin.iOS.

Actual Behavior

Performance is slower around 20%.

Environment

.NET 6 Mobile RC1

Build Logs

Example Project (If Possible)

@rolfbjarne
Copy link
Member

This could be: dotnet/runtime#58939

@chamons
Copy link
Contributor

chamons commented Apr 28, 2022

As noted in that issue:

Fixing/improving this would require risky changes so this will unlikely to be fixed for 6.0.

@chamons chamons added this to the Future milestone Apr 28, 2022
@chamons chamons added bug If an issue is a bug or a pull request a bug fix regression The issue or pull request is a regression labels Apr 28, 2022
@jeromelaban
Copy link
Author

That's a good thing that 7.0 is not yet out, isn't it? :) Tasteless joke aside, this is an issue that will lower the quality of iOS applications for people migrating to .NET 6, even if the offset of performance of iPhones can make this less relevant on newer devices.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug If an issue is a bug or a pull request a bug fix regression The issue or pull request is a regression
Projects
None yet
Development

No branches or pull requests

3 participants