chore: Improve performance of NetworkList set operation#3587
Merged
EmandM merged 5 commits intodevelop-2.0.0from Aug 7, 2025
Merged
chore: Improve performance of NetworkList set operation#3587EmandM merged 5 commits intodevelop-2.0.0from
NetworkList set operation#3587EmandM merged 5 commits intodevelop-2.0.0from
Conversation
…nged Added equality check in NetworkList indexer setter to avoid unnecessary operations when the new value equals the existing value. This improves performance by preventing redundant list events and network synchronization.
NikiWalker
approved these changes
Aug 6, 2025
|
|
||
| var previousValue = m_List[index]; | ||
|
|
||
| // Compare the Value being applied to the current value |
There was a problem hiding this comment.
nit: Comment why, not what. E.g. The CHANGELOG comment above would be good as a comment here instead, for example
Contributor
There was a problem hiding this comment.
As context, this was copied from the NetworkVariable implementation. I agree the comment is somewhat self-evident and likely unnecessary.
…/com.unity.netcode.gameobjects into chore/network-list-performance-set-operation
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
continues: #3585
This PR adds an equality check to the
NetworkList<T>indexer setter, aligning its behavior withNetworkVariable<T>.Value. SinceNetworkList<T>already constrainsTtoIEquatable<T>, this change is both safe and broadly applicable. It avoids redundant assignments when the new value is equal to the current value, which improves runtime efficiency and avoids unnecessary event dispatch and network synchronization.Changelog
NetworkList<T>indexer setter to skip operations when the new value equals the existing value, improving performance by avoiding unnecessary list events and network synchronization.Testing & QA
This is a very small optimization in an area of code that is deeply covered by unit and integration tests. No manual testing is required.
Documentation
As there are no API or behaviour changes, no documentation is required
Backport
This is a new optimization and so doesn't need to be backported