FlowStat: Replace btree_map with flat map which is inlined in small case
Inline storage for size <= 2 Size = 1 is ~90% Size = 2 is ~9% Size >=3 is ~1% and gets a separate allocation
This commit is contained in:
@@ -156,10 +156,10 @@ private:
|
||||
std::vector<NodeID> station_to_node;
|
||||
|
||||
/** Current iterator in the shares map. */
|
||||
FlowStat::SharesMap::const_iterator it;
|
||||
FlowStat::const_iterator it;
|
||||
|
||||
/** End of the shares map. */
|
||||
FlowStat::SharesMap::const_iterator end;
|
||||
FlowStat::const_iterator end;
|
||||
public:
|
||||
|
||||
/**
|
||||
@@ -187,11 +187,11 @@ public:
|
||||
const FlowStatMap &flows = this->job[node].Flows();
|
||||
FlowStatMap::const_iterator it = flows.find(this->job[source].Station());
|
||||
if (it != flows.end()) {
|
||||
this->it = it->GetShares()->begin();
|
||||
this->end = it->GetShares()->end();
|
||||
this->it = it->begin();
|
||||
this->end = it->end();
|
||||
} else {
|
||||
this->it = FlowStat::empty_sharesmap.begin();
|
||||
this->end = FlowStat::empty_sharesmap.end();
|
||||
this->it = nullptr;
|
||||
this->end = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user