Github user kevpeek commented on the issue:
https://github.com/apache/storm/pull/2379
@revans2 I ran some perf tests, and this refactor did slow things down
considerably. I have made a small change that eliminates the main source of
slowness, but it's still not great.
The current version of the code runs in about 150% of the time the original
code does, so certainly not good. Most of the increase in runtime comes from
the more general task selection algorithm. I have been able to speed things up
a little bit more, but I suspect the benefits are not really worth it. Perhaps
that means this code simply doesn't need to be merged in, or it could be added
as a separate grouping, but here are a few observations I made along the way:
* I did not notice the slowdown in our deployment of this code because we
know our key set is only a few thousand elements, allowing us to wrap the
AssignmentCreator in a caching decorator. This trades a larger memory footprint
for better performance. With the caching AssignmentCreator decorator, this
grouping runs in 80% of the time the original takes. This is sort of the point
of the refactor; customizations like this become possible with just a few lines
of code.
* By far, the slowest part of this grouping is the hashing functions in
createAssignment. Perhaps this is one of the optimizations you mention above,
but replacing these with something faster would be a bigger win than optimizing
this refactor.
---