[ https://issues.apache.org/jira/browse/STORM-585?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Frantz Mazoyer updated STORM-585: --------------------------------- Description: In function mk-grouper, target-tasks is originally a ^List It then becomes a clojure vector: ... target-tasks (vec (sort target-tasks))] ... In :none grouping case, java method '.get' is called on target-tasks object: ... (.get target-tasks i) ... At run time, clojure will use introspection to find a method with a matching name and signature, which is very costly. Using clojure built-in vector 'get' function instead of '.get' method made us gain 25% performance in our use-case. Affects Version/s: 0.10.0 0.9.3 0.9.2-incubating > Performance issue in none grouping > ---------------------------------- > > Key: STORM-585 > URL: https://issues.apache.org/jira/browse/STORM-585 > Project: Apache Storm > Issue Type: Bug > Affects Versions: 0.9.2-incubating, 0.9.3, 0.10.0, 0.9.3-rc2 > Reporter: Frantz Mazoyer > Assignee: Frantz Mazoyer > Priority: Minor > Fix For: 0.10.0 > > > In function mk-grouper, target-tasks is originally a ^List > It then becomes a clojure vector: > ... > target-tasks (vec (sort target-tasks))] > ... > In :none grouping case, java method '.get' is called on target-tasks object: > ... > (.get target-tasks i) > ... > At run time, clojure will use introspection to find a method with a matching > name and signature, which is very costly. > Using clojure built-in vector 'get' function instead of '.get' method made us > gain 25% performance in our use-case. -- This message was sent by Atlassian JIRA (v6.3.4#6332)