Optimize converters for GridLength, ColumnDefinition, and RowDefinition#20048
Merged
PureWeen merged 11 commits intodotnet:inflight/currentfrom Jun 13, 2025
Merged
Conversation
|
Hey there @symbiogenesis! Thank you so much for your PR! Someone from the team will get assigned to your PR shortly and we'll get it reviewed. |
776086d to
48d4b8b
Compare
Contributor
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
Foda
previously approved these changes
Jun 5, 2024
jsuarezruiz
reviewed
Jun 10, 2024
be5310e to
04988f9
Compare
Contributor
|
note that these converters probably aren't used in Release mode with XamlC enabled |
Member
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
Member
Will this help with hot reload scenarios? They run when that is happening? |
Member
|
moved to description. |
Member
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
mattleibow
previously approved these changes
Jun 12, 2025
StephaneDelcroix
previously approved these changes
Jun 12, 2025
Contributor
StephaneDelcroix
left a comment
There was a problem hiding this comment.
when all test passes, it's ok for me
MartyIX
reviewed
Jun 12, 2025
| public const ushort StyleLocal = 0x100; | ||
|
|
||
| public static readonly SetterSpecificity DefaultValue = new SetterSpecificity(0); | ||
| public static readonly SetterSpecificity LowestAppliedValue = new SetterSpecificity(1); |
Contributor
There was a problem hiding this comment.
Am I missing something or is this not used anywhere? Perhaps some leftover of a rebase?
The base branch was changed.
PureWeen
approved these changes
Jun 13, 2025
github-actions bot
pushed a commit
that referenced
this pull request
Jun 16, 2025
…on (#20048) * add benchmarks * set CanConvertTo to be consistent with the ColumnDefinitionTypeConverter * optimize GridLength conversion * optimize grid definition conversion * enable nullable types * fix build * reduce diff * Slightly better * Update RowDefinition.cs * Even better --------- Co-authored-by: Edward Miller <symbiogenisis@outlook.com> Co-authored-by: Matthew Leibowitz <mattleibow@live.com>
PureWeen
pushed a commit
that referenced
this pull request
Jun 21, 2025
…on (#20048) * add benchmarks * set CanConvertTo to be consistent with the ColumnDefinitionTypeConverter * optimize GridLength conversion * optimize grid definition conversion * enable nullable types * fix build * reduce diff * Slightly better * Update RowDefinition.cs * Even better --------- Co-authored-by: Edward Miller <symbiogenisis@outlook.com> Co-authored-by: Matthew Leibowitz <mattleibow@live.com>
PureWeen
pushed a commit
that referenced
this pull request
Jun 25, 2025
…on (#20048) * add benchmarks * set CanConvertTo to be consistent with the ColumnDefinitionTypeConverter * optimize GridLength conversion * optimize grid definition conversion * enable nullable types * fix build * reduce diff * Slightly better * Update RowDefinition.cs * Even better --------- Co-authored-by: Edward Miller <symbiogenisis@outlook.com> Co-authored-by: Matthew Leibowitz <mattleibow@live.com>
PureWeen
pushed a commit
that referenced
this pull request
Jun 25, 2025
…on (#20048) * add benchmarks * set CanConvertTo to be consistent with the ColumnDefinitionTypeConverter * optimize GridLength conversion * optimize grid definition conversion * enable nullable types * fix build * reduce diff * Slightly better * Update RowDefinition.cs * Even better --------- Co-authored-by: Edward Miller <symbiogenisis@outlook.com> Co-authored-by: Matthew Leibowitz <mattleibow@live.com>
github-actions bot
pushed a commit
that referenced
this pull request
Jun 26, 2025
…on (#20048) * add benchmarks * set CanConvertTo to be consistent with the ColumnDefinitionTypeConverter * optimize GridLength conversion * optimize grid definition conversion * enable nullable types * fix build * reduce diff * Slightly better * Update RowDefinition.cs * Even better --------- Co-authored-by: Edward Miller <symbiogenisis@outlook.com> Co-authored-by: Matthew Leibowitz <mattleibow@live.com>
github-actions bot
pushed a commit
that referenced
this pull request
Jun 26, 2025
…on (#20048) * add benchmarks * set CanConvertTo to be consistent with the ColumnDefinitionTypeConverter * optimize GridLength conversion * optimize grid definition conversion * enable nullable types * fix build * reduce diff * Slightly better * Update RowDefinition.cs * Even better --------- Co-authored-by: Edward Miller <symbiogenisis@outlook.com> Co-authored-by: Matthew Leibowitz <mattleibow@live.com>
PureWeen
pushed a commit
that referenced
this pull request
Jun 27, 2025
…on (#20048) * add benchmarks * set CanConvertTo to be consistent with the ColumnDefinitionTypeConverter * optimize GridLength conversion * optimize grid definition conversion * enable nullable types * fix build * reduce diff * Slightly better * Update RowDefinition.cs * Even better --------- Co-authored-by: Edward Miller <symbiogenisis@outlook.com> Co-authored-by: Matthew Leibowitz <mattleibow@live.com>
github-actions bot
pushed a commit
that referenced
this pull request
Jun 27, 2025
…on (#20048) * add benchmarks * set CanConvertTo to be consistent with the ColumnDefinitionTypeConverter * optimize GridLength conversion * optimize grid definition conversion * enable nullable types * fix build * reduce diff * Slightly better * Update RowDefinition.cs * Even better --------- Co-authored-by: Edward Miller <symbiogenisis@outlook.com> Co-authored-by: Matthew Leibowitz <mattleibow@live.com>
PureWeen
pushed a commit
that referenced
this pull request
Jun 27, 2025
…on (#20048) * add benchmarks * set CanConvertTo to be consistent with the ColumnDefinitionTypeConverter * optimize GridLength conversion * optimize grid definition conversion * enable nullable types * fix build * reduce diff * Slightly better * Update RowDefinition.cs * Even better --------- Co-authored-by: Edward Miller <symbiogenisis@outlook.com> Co-authored-by: Matthew Leibowitz <mattleibow@live.com>
PureWeen
added a commit
that referenced
this pull request
Jun 28, 2025
For more information about inflight process check https://github.com/dotnet/maui/wiki/Inflight-Branch-Process # .NET MAUI Release Notes - Inflight/Candidate Branch ## What's Changed ### MAUI Product Fixes * [iOS] CarouselView with CarouselViewHandler2 make app crash when Loop="False" and user scroll to the last position - fixes #26863 by @kubaflo in #26868 * Fixes Setting BackgroundColor to null does not actually changes BackgroundColor - fixes #22914 and #19576 by @jgonzalez-gft in #22917 * Fixed the picker title's color - fixes #16737 by @kubaflo in #23075 * [android] Fallback to default icons in SearchHandler by @aheubusch in #25067 * ScrollView's Background on iOS - fixes #24016 by @kubaflo in #25541 * [iOS] Enabled MultiTouch Support for Handling Multi-Touch Points in GraphicsView - fixes #29461 by @prakashKannanSf3972 in #29895 * Optimize converters for GridLength, ColumnDefinition, and RowDefinition - performance improvement by @emiller in #20048 * Add defensive IsAlive check to Android ViewExtensions.OnUnloaded - fixes #28051 by @jfversluis in #29934 * [Windows] Fixed runtime update issue for SearchBar PlaceholderColor and BackgroundColor - fixes #29962 by @Tamilarasan-Paranthaman in #29965 * Weak subscription to CanExecuteChange events - fixes #16124 by @sneumaier in #29837 * [iOS, Mac] Fix for downsized image retaining original dimensions in GraphicsView - fixes #30006 by @SyedAbdulAzeemSF4852 in #30007 * [Android] Prevent Picker from Gaining Focus on Touch - fixes #19739, #8546, #13503, #24862, #28121, #21704, #15394 by @bhavanesh2001 in #29068 * Fix CV1 GridItemsLayout centering single item AND Fix Empty view not resizing when bounds change - fixes #29595, #29634 by @albyrock87 in #29639 ### Testing * [Testing] Feature Matrix UITest Cases for Button by @TamilarasanSF4853 in #29803 * [Testing] Feature matrix UITest Cases for BoxView Control by @HarishKumarSF4517 in #29808 * [Testing] Enable HandlerDoesNotLeak for Button and ProgressBar by @bhavanesh2001 in #29896 * [Testing] Add Validation Test For Issue28051 On Android by @prakashKannanSf3972 in #30026 * [Testing] Fixed Test case failure in PR 30115 - [2025/06/23] Candidate by @HarishKumarSF4517 in #30136 ### Dependency Updates * Bump to 1.7.250606001 of WindowsAppSDK by @sneumaier in #29915 ### Housekeeping * [housekeeping] Update namespaces in HostApp and Shared tests projects by @bhavanesh2001 in #29904 * Update SetterSpecificity.cs Remove Extra Line From Bad Merge by @sneumaier in #29987 * Revert - Fixed the Label not sized correctly on Android by @Ahamed-Ali in #30023 * Revert "Fixes Setting BackgroundColor to null does not actually changes BackgroundColor #22914 (#22917)" by @mattleibow in #30031 * [create-pull-request] automated change by @github-actions[bot] in #30019 * [create-pull-request] automated change by @github-actions[bot] in #30043 * [create-pull-request] automated change by @github-actions[bot] in #30078 * Update Controls.TestCases.HostApp.csproj by @HarishKumarSF4517 in #30124 ## New Contributors * @albyrock87 made their first contribution in #29639 * @SyedAbdulAzeemSF4852 made their first contribution in #30007 * @emiller made their first contribution in #20048 * @jgonzalez-gft made their first contribution in #22917 * @aheubusch made their first contribution in #25067 **Full Changelog**: https://github.com/dotnet/maui/compare/main..inflight/candidate
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Some simple optimizations to these common converters.
There were already tests around these converters here and here.
EDIT June 2025
I ran this just to check, and maybe my machine is faster (probably) or maui got better (probably), so the difference is not as great, but still better.
Before this PR:
After this PR (and a small tweak to reduce allocations):
OLD NUMBERS*
Before:
After: