mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-28 18:45:33 +00:00
1e2aae8095
The idea is to avoid std::map lookup for each CellRef. Instead generate a sequence of added and removed RefNums into a vector then order them by RefNum using a stable sort that preserves relative order of elements with the same RefNum. RefIDs are stored in a different vector to avoid std::string move ctor calls when swapping elements while sorting. Reversed iteration over added and removed RefNums for each unique RefNum is an equivalent to what map-based algorithm produces. The main benefit from sorting a vector is a data locality that means less cache misses for each access. Reduces ESMStore::countRecords perf cycles by 25%. |
||
---|---|---|
.. | ||
mwbase | ||
mwclass | ||
mwdialogue | ||
mwgui | ||
mwinput | ||
mwmechanics | ||
mwphysics | ||
mwrender | ||
mwscript | ||
mwsound | ||
mwstate | ||
mwworld | ||
android_main.cpp | ||
CMakeLists.txt | ||
doc.hpp | ||
engine.cpp | ||
engine.hpp | ||
main.cpp |