You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@bval.apache.org by "Matt Benson (JIRA)" <ji...@apache.org> on 2012/10/04 18:45:47 UTC

[jira] [Comment Edited] (BVAL-113) Minor performance improvements

    [ 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