[ 
https://issues.apache.org/jira/browse/BVAL-113?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13469495#comment-13469495
 ] 

Matt Benson edited comment on BVAL-113 at 10/5/12 3:44 AM:
-----------------------------------------------------------

Hi Jarek, and thanks for providing these numbers.  I modified your test a bit 
further to store the items in a local list, shuffling it before add/retrieve to 
emulate the unpredictability of property registration/retrieval, at some risk 
to the impartiality of a given run.  My numbers are similar to yours, though I 
have runs showing 2s for 100 properties with both the original code and the 
code including all your suggested changes modulo the {{MetaBean}} changes, and 
1s for 100 properties with the change to storing properties in a {{HashMap}}.  
These gains are counterbalanced against the array creation that must take place 
when retrieving _all_ {{MetaProperty}} members; however my inclination is that 
they are compelling enough to include.  Thanks again for your interest.
                
      was (Author: mbenson):
    Hi Jarek, and thanks for providing these numbers.  I modified your test a 
bit further to store the items in a local list, shuffling it before 
add/retrieve to emulate the unpredictability of property 
registration/retrieval, at some risk to the impartiality of a given run.  My 
numbers are similar to yours, though I have runs showing 2s for 100 properties 
with both the original code and the code including all your suggested changes 
modulo the {{MetaBean}} changes, and 1s for 100 properties with the change to 
storing properties in a {{HashMap}}.  These gains are counterbalanced against 
the array creation that must take place when retrieving _all_ 
{{MetaProperty}}s; however my inclination is that they are compelling enough to 
include.  Thanks again for your interest.
                  
> Minor performance improvements
> ------------------------------
>
>                 Key: BVAL-113
>                 URL: https://issues.apache.org/jira/browse/BVAL-113
>             Project: BVal
>          Issue Type: Improvement
>          Components: jsr303
>    Affects Versions: 0.4, 0.5
>            Reporter: Jarek Gawor
>         Attachments: BVAL-113.patch, PerfTest.java
>
>
> We found a couple of minor performance issues that came up during our 
> profiling: 
> 1) AnnotationProcessor.java, FeaturesCapable.java, and MetaBean.java use 
> ArrayUtils.add() to grow the array. The issue is that ArrayUtils.add() uses 
> reflection to grown the array which 1) is slower then just instantiating the 
> array, and 2) is completely unnecessary in these cases as the type of the 
> array is always well known and doesn't change.
> 2) MetaBean.java stores MetaProperty objects in a sorted array and uses 
> binary search to lookup and insert them. An implementation that stores these 
> objects in a map would offer faster lookup and insert performance.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to