[ 
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)

Reply via email to