This repository has been archived by the owner on May 1, 2024. It is now read-only.
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.
Description of Change
Because Xamarin.iOS uses a reflection to provide arguments in callbacks as decribed here. This PR provides a custom NSIndexPath wrapper to avoid reflection calling in ItemsViewDelegator.GetSizeForItem. Performance boost is 12x on Simulator or 17x on iPhone.
Issues Resolved
API Changes
Added:
Changed:
Platforms Affected
Behavioral/Visual Changes
None
Before/After Screenshots
Not applicable
Testing Procedure
Test page for control gallery Issue13429 is provided, UITest included. You may able to run this test from VS. Because this is performance issue you may want to place some different timing depending on your hardware. Current timings is applicable for iPhone 11 and mac mini 2018 i5/16GB. See EXPECTED_TIMEOUT constant at Issue13429 test page. If you want to run this test through control gallery, then launch test, then tap "Add", "Remove" or "Replace" button. Test will show you how much time is taken by operation in milliseconds.
PR Checklist