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 | |
---|---|---|
.. | ||
algorithm.hpp | 4 years ago | |
barrier.hpp | 4 years ago | |
budgetmeasurement.hpp | 4 years ago | |
constants.hpp | 4 years ago | |
convert.hpp | 5 years ago | |
coordinateconverter.hpp | 5 years ago | |
endianness.hpp | 4 years ago | |
frameratelimiter.hpp | 4 years ago | |
guarded.hpp | 4 years ago | |
hash.hpp | 4 years ago | |
helpviewer.cpp | 5 years ago | |
helpviewer.hpp | 5 years ago | |
mathutil.hpp | 4 years ago | |
messageformatparser.cpp | 6 years ago | |
messageformatparser.hpp | 6 years ago | |
objectpool.hpp | 5 years ago | |
resourcehelpers.cpp | 7 years ago | |
resourcehelpers.hpp | 10 years ago | |
rng.cpp | 4 years ago | |
rng.hpp | 4 years ago | |
stringops.hpp | 5 years ago | |
thread.cpp | 4 years ago | |
thread.hpp | 4 years ago | |
timer.hpp | 4 years ago | |
utf8stream.hpp | 7 years ago | |
weakcache.hpp | 6 years ago |