Skip to content

Separated PR 3117 changes that have nothing to do with graphics#3164

Open
ApoloApps wants to merge 14 commits into
JetBrains:jb-mainfrom
ApoloApps:separateCollectionsOptimizations
Open

Separated PR 3117 changes that have nothing to do with graphics#3164
ApoloApps wants to merge 14 commits into
JetBrains:jb-mainfrom
ApoloApps:separateCollectionsOptimizations

Conversation

@ApoloApps

Copy link
Copy Markdown

Separated the changes from #3117 that don't involve graphics (which are currently blocked until separation of Skiko from Compose Ui and migration to Runtime Registration) as to unblock them from merging into main
This includes changes SyntheticEventSender and more minor changes

Release Notes

N/A

…lections to avoid boxing, iterators and improve performance. (Similar change to PointerToPositionMap)
…e dirtyLayers.clear() inside the dirtyLayers.isNotEmpty() check as it does not make sense to clear if dirtyLayers is empty
ApoloApps and others added 6 commits June 26, 2026 20:20
…hod was iterating over a js value API in a kotlin loop and removing first child. This could cause freezes of up to 50 ms (observed during high-usage memory in a device). I observed a 5.8% reduction in time between main function call and Compose being composed, which amounted to around 7-8 ms (a frame, in my device). Also, the method used has been baseline since 2020 and it is the preferred way as it avoids crossing wasm to Js boundary over and over several times
…nstead Unspecified and Zero versions of it (compiles down to a simple primitive)
…init. (onPointerCallback was being created 6 times on init, delaying scene startup). It also avoid an iterator allocation on init
@ApoloApps ApoloApps marked this pull request as draft June 28, 2026 22:15
… from the buildLongSet method instead of the outer extension function, causing the Set to be empty each time
@ApoloApps ApoloApps marked this pull request as ready for review June 28, 2026 23:37

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Alexander Maryanovsky (@m-sasha) I have migrated the rest of collections in SyntheticEventSender to use the primitive-based ones. Now the Pointers are stored using their underlying primitive values for better performance

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant