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

Developers can progressively optimize their .NET apps at runtime, using dynamic PGO data #5494

Closed
richlander opened this issue Oct 29, 2020 · 2 comments
Assignees
Labels
bulk-closed Priority:2 Work that is important, but not critical for the release Team:Runtime User Story A single user-facing feature. Can be grouped under an epic.

Comments

@richlander
Copy link
Member

Tiered compilation is an important codegen related feature in the runtime. It has two primary challenges: it bases re-jit decisions on a single metric, and always generates the same tier 1 code.

Using PGO data, we can improve tiered compilation in the following ways:

  • Target methods for re-jitting that are more likely to provide a significant benefit.
  • Optimize methods in terms of actual application conditions (for example, take advantage of the observation that the else block of an if statement is never or rarely taken).
  • Optimize methods aggressively for an upside win with an acceptable fallback in case the bet doesn't pay off, such as de-virtualizing method calls (and potentially inlining those methods).

There is significant prior art in this space. We need to do the following to ensure we have a good offering that is attractive for modern apps.

  • Provide significant value, above and beyond static PGO.
  • Limit runtime cost to a metric that users can accept.
  • Develop a metric for predictable execution. For example, dynamic PGO should never be a contributor to P95 latency issues.
@richlander richlander added User Story A single user-facing feature. Can be grouped under an epic. Priority:2 Work that is important, but not critical for the release labels Oct 29, 2020
@JulieLeeMSFT
Copy link
Member

dotnet/runtime/issues/43618 summarizes Dynamic PGO work plan.

@danmoseley danmoseley changed the title .NET applications are progressively optimized at runtime, using dynamic PGO data Developers can progressively optimize their .NET apps at runtime, using dynamic PGO data Nov 29, 2020
@mairaw
Copy link
Contributor

mairaw commented May 26, 2023

Bulk closing .NET 6 epics and user stories. If you think this issue was closed in error, please reopen the issue and update it accordingly.

@mairaw mairaw closed this as completed May 26, 2023
@JulieLeeMSFT JulieLeeMSFT moved this to Team User Stories in .NET Core CodeGen Jun 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bulk-closed Priority:2 Work that is important, but not critical for the release Team:Runtime User Story A single user-facing feature. Can be grouped under an epic.
Projects
Archived in project
Development

No branches or pull requests

4 participants