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.
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%. |
4 years ago | |
---|---|---|
.. | ||
bsa | 4 years ago | |
bullethelpers | 4 years ago | |
compiler | 4 years ago | |
config | 4 years ago | |
contentselector | 4 years ago | |
crashcatcher | 4 years ago | |
debug | 4 years ago | |
detournavigator | 4 years ago | |
esm | 4 years ago | |
esmterrain | 4 years ago | |
fallback | 4 years ago | |
files | 4 years ago | |
fontloader | 4 years ago | |
interpreter | 4 years ago | |
loadinglistener | 5 years ago | |
misc | 4 years ago | |
myguiplatform | 4 years ago | |
nif | 4 years ago | |
nifbullet | 4 years ago | |
nifosg | 4 years ago | |
process | 6 years ago | |
resource | 4 years ago | |
sceneutil | 4 years ago | |
sdlutil | 4 years ago | |
settings | 5 years ago | |
shader | 4 years ago | |
terrain | 4 years ago | |
to_utf8 | 4 years ago | |
translation | 6 years ago | |
version | 8 years ago | |
vfs | 4 years ago | |
widgets | 4 years ago | |
CMakeLists.txt | 4 years ago | |
doc.hpp | 14 years ago |