Join GitHub today
WIP: Port both IdList and List to std::vector #433
WIP because it doesn't pass the tests. (All but the last two commits pass - those passing commits are in other PRs) Current test results:
The main reason I first did this was to reduce allocations, since that was a big drag on performance when I profiled last year on Windows. Allocation patterns/behavior for performance are fairly tuned in stl implementations to provide the fabled amortized-O(1) performance. I also just get nervous in general at manual memory management of this sort.
Certainly would be nice to e.g. use an unordered map here instead, but that's a larger change I hadn't done before. I'm still mostly just trying to clear my patch backlog as I promised to do :) I enjoy working on SolveSpace, nearly to a fault, so I'm trying not to do too much original dev on it right now.