Conversation
|
Did you by any chance benchmark this? It seems to have quite the impact (at least 15% if not more) and to be enabled by default. I think we should recommend users of vroom to compile with |
|
No, I didn't. I suspect that this is related to using an https://github.com/VROOM-Project/vroom/blob/master/src/algorithms/local_search/local_search.cpp#L548 While this is constant-time-ish, there are a lot of occurrences of those updates. Setting aside the fact that users are already advised to build against tagged versions (so with
We should probably do both. |
Ah I wasn't aware of that. Then it is not as much of an issue as I thought.
String hashing appears to be the bottleneck according to my profiling. I think a quick fix could be to replace the string names with an enumeration enum OperatorName {
UnassignedExchange,
CrossExchange,
...
}and an additional array to convert the enum-values to strings for printing. |
Issue
Fixes #658
Tasks
LocalSearchlevelLocalSearchlevelCHANGELOG.md