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

Use globalization invariant mode + prefer speed for AOT compilers #86691

Merged
merged 2 commits into from
May 25, 2023

Conversation

MichalStrehovsky
Copy link
Member

Last time I checked OptimizationPreference=Speed is a free 3% throughput improvement. (And 6% size regression but we're not too sensitive to that.)
Globalization invariant mode removes ICU initialization and that also improves perf. Also makes size smaller.

Cc @dotnet/ilc-contrib

@ghost
Copy link

ghost commented May 24, 2023

Tagging subscribers to this area: @agocke, @MichalStrehovsky, @jkotas
See info in area-owners.md if you want to be subscribed.

Issue Details

Last time I checked OptimizationPreference=Speed is a free 3% throughput improvement. (And 6% size regression but we're not too sensitive to that.)
Globalization invariant mode removes ICU initialization and that also improves perf. Also makes size smaller.

Cc @dotnet/ilc-contrib

Author: MichalStrehovsky
Assignees: -
Labels:

area-NativeAOT-coreclr

Milestone: -

@MichalStrehovsky
Copy link
Member Author

/azp run runtime-extra-platforms

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@EgorBo
Copy link
Member

EgorBo commented May 24, 2023

For crossgen it should make sense to enable DOTNET_TC_CallCountingDelayMs=0 - we've seen up to 20% improvement with it (but tiered compilation has to be enabled too)

image

@MichalStrehovsky
Copy link
Member Author

For crossgen it should make sense to enable DOTNET_TC_CallCountingDelayMs=0 - we've seen up to 20% improvement with it (but tiered compilation has to be enabled too)

That can be a separate change. I don't know how to set that. We only run crossgen on top of a jitted runtime if NativeAOT is not supported, so it's basically just Windows x86 and Linux ARM32. We get like a 60% improvement from NativeAOT otherwise :).

@MichalStrehovsky MichalStrehovsky merged commit 99bcf66 into main May 25, 2023
@MichalStrehovsky MichalStrehovsky deleted the MichalStrehovsky-patch-1 branch May 25, 2023 02:07
@ghost ghost locked as resolved and limited conversation to collaborators Jun 24, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants