perf(mapcache): Simplify and improve implementation of MapCache to prevent expensive reoccurring redundant map cache reads #1775
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 change simplifies and improves the implementation of MapCache to prevent expensive reoccurring redundant map cache reads. It also removes DEBUG_LOG in
buildMapListForNumPlayersbecause it is a spammy log that adds stalling.Originally, the implementation in
MapCache::updateCachewas a total munkee disaster. Very complicated and inefficient. This change turned out to be half refactor, half performance optimization.Problems in MapCache were:
MapCache::updateCache, even if already loadedMapCache::loadUserMapsTheGlobalData->m_buildMapCachestd::map<AsciiString, Bool> m_seenAll this is fixed.
Performance measurement
Measured in optimized vs2022 build, with RTS_DEBUG.
TODO