1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-15 12:19:55 +00:00
openmw-tes3mp/apps
elsid 1e2aae8095
Use stable sort+unique to collect RefIDs for ESMStore records counting
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%.
2021-05-15 18:45:22 +02:00
..
benchmarks Remove redundant ChunkyTriMesh 2021-05-04 13:00:06 +02:00
bsatool Add file to BSA 2021-04-08 18:08:28 +02:00
esmtool Teensy optimisation for esmtool 2021-05-06 22:41:20 +02:00
essimporter Fix various warnings found by clang 2021-04-17 19:06:33 +02:00
launcher [Launcher] Replacing static method access through instances 2021-05-08 23:28:29 -05:00
mwiniimporter Fix MSVC's C4267 warnings 2021-05-12 10:34:39 +04:00
niftest Fixing performance-faster-string-find issues 2021-05-10 22:44:07 -05:00
opencs Reduce temporary allocations on ESM loading 2021-05-15 18:45:21 +02:00
openmw Use stable sort+unique to collect RefIDs for ESMStore records counting 2021-05-15 18:45:22 +02:00
openmw_test_suite Wait until navmesh is generated within given distance around player 2021-05-05 19:44:16 +02:00
wizard Remove some useless includes from the wizzard 2021-04-21 19:08:06 +02:00
doc.hpp