Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
Mesosphere Q4 Sprint 3 - 12/7
Description
std::queue does dynamic allocation upon construction.
std::vector does dynamic allocation upon insertion.
Since Future's Data structure currently aggregates 5 queues, this implies a lot of dynamic allocation upon construction of a future. In crucial paths we tend not to use most of these queues, meaning the allocations were of no benefit.
If we replace std::queue with std::vector then we pay per use (for the first few, exponentially less as the size grows), which in most cases, and definitely in crucial paths, reduces dynamic allocation and improves performance.