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

Draft: Performance improvement for UIElement.Arrange and UIElement.Measure #5729

Draft
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

deeprobin
Copy link
Contributor

@deeprobin deeprobin commented Nov 23, 2021


⚠️ CAUTION: This is a draft pull request - DO NOT MERGE


It will not fix the issue #4768 completely but may improve the performance already

Description

I tried to replace some heap allocations with stack "allocations" using Span<T> and ReadOnlySpan<T>

A bottleneck is unfortunately in the non-open-source PresentationNative part (LoCreateLine), on which I can unfortunately not influence
grafik

Testing

(todo)

Benchmarks

(todo)

Risk

⚠️ Critical API has changed - All edge cases must be tested

@ghost ghost added the PR metadata: Label to tag PRs, to facilitate with triage label Nov 23, 2021
@ghost ghost requested review from fabiant3, ryalanms and SamBent November 23, 2021 19:13

_firePostLayoutEvents = true;
}

[MethodImpl(MethodImplOptions.NoInlining)]
[DoesNotReturn]
private static void ThrowInvalidOperationForDeepRecursion()
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Move into ThrowHelper.cs

@lindexi
Copy link
Member

lindexi commented Mar 13, 2022

Reference: #6219

@ghost ghost added the draft label Apr 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
draft PR metadata: Label to tag PRs, to facilitate with triage
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants