This repository was archived by the owner on Aug 8, 2023. It is now read-only.
[iOS][WIP] Improve annotationsView performances #6840
Closed
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.
This PR adresses the following issue:
What changed ?
updateAnnotationViews was not working properly. The delegate method was called on each frame even if it wasn't in the view work. As a result, performance were worse when an annotation was outside the screen (!).
The reuse queue was also an NSArray instead of a NSSet resulting in poor performance when picking inside.
This PR improve the performance of the updateAnnotationViews especially when you are using complicated views.
One possible improvement to this would be to use queryPointAnnotations, but it's too slow when there is a lot of annotations on the screen.
Testing done
I tested with thousand views and CAAnimation spread across the world with much better performances.
cc @1ec5