Github user HeartSaVioR commented on the issue: https://github.com/apache/storm/pull/2203 @revans2 @ptgoetz Looks like string concatenation affects a lot. Maybe we should spend time to optimize here. One sketched idea is here: If metric name is deterministic at least without stream id and the metric type (acked, etc.), we might be able to cache metric name for each executor so that we can apply stream id and metric type afterwards. The streamId/metric type to full metric name can be cached to map in executor too. The issue could be changed to one level Hashmap lookup via string concatenation for (type+streamId) or two level Hashmap lookup (type -> streamId) vs String concatenation. The result of dotToUnderscore is encouraged to be cached instead of doing it all the time. Not sure how much it helps, but we could have executor level metric instance map (cache) instead of completely relying on coda hale REGISTRY if it helps. cc. @roshannaik since he is working for optimizations so might have some techniques to apply.
---