You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openmw-tes3mp/components
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%.
4 years ago
..
bsa Fix MSVC's C4244 warnings 4 years ago
bullethelpers Detect and ignore updates for oscillating objects 4 years ago
compiler Fix MSVC's C4244 warnings 4 years ago
config Implement instanced groundcover 4 years ago
contentselector Replace zeroes and nulls by nullptrs 4 years ago
crashcatcher Fix MSVC's C4267 warnings 4 years ago
debug Fixing performance-faster-string-find issues 4 years ago
detournavigator Remove some superfluous includes in components/detournavigator 4 years ago
esm Merge pull request #3075 from akortunov/warnfix 4 years ago
esmterrain Replace zeroes and nulls by nullptrs 4 years ago
fallback Fixing performance-faster-string-find issues 4 years ago
files Fix MSVC's C4267 warnings 4 years ago
fontloader Validate GUI scaling and place it to the launcher 4 years ago
interpreter Fix MSVC's C4267 warnings 4 years ago
loadinglistener Fix C5204 warnings by adding default virtual destructors 5 years ago
misc Use stable sort+unique to collect RefIDs for ESMStore records counting 4 years ago
myguiplatform Fix MSVC's C4244 warnings 4 years ago
nif Improve null root handling 4 years ago
nifbullet Improve null root handling 4 years ago
nifosg use particle data for particle system quota 4 years ago
process Remove redundant includes 6 years ago
resource Merge branch 'DoNotSearchTwice' into 'master' 4 years ago
sceneutil Replace raw pointer by observer_ptr to avoid dangling pointer dereferencing 4 years ago
sdlutil Fix an another portion of Coverity warnings 4 years ago
settings Support vectors in settings.cfg 5 years ago
shader Join variables declaration and usage 4 years ago
terrain Recreate a special case for IntersectionVisitor on QuadTreeWorld 4 years ago
to_utf8 Minor cleanup: Remove `using namespace std` 4 years ago
translation Replace all NULLs to nullptr 6 years ago
version Allow getting available version information even when clone is shallow 8 years ago
vfs Use O(log(n)) search instead of O(n) 4 years ago
widgets Fix MSVC's C4267 warnings 4 years ago
CMakeLists.txt Remove redundant ChunkyTriMesh 4 years ago
doc.hpp second set of additional doxygen comments 14 years ago