Fix bad streaming performance in some cases #4013
Open
+159
−122
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.
Fixes #813 and #3985
This PR disables streaming for elements that are outside of the current dimension. This increases performance for servers that have a lot of elements in different dimensions.
This PR fixes this bugged scenario too:
Why it happens:
MTA creates elements in 0, 0, 0 position by default. CClientStreamer adds these elements to the m_ActiveElements list.
MTA updates element positions BUT doesn't remove elements from the m_ActiveElements list.
This causes the situation when m_ActiveElements holds all possible elements and CClientStreamer requests huge O(N*M) operations.
This PR needs some testing.