[
https://issues.apache.org/jira/browse/BVAL-113?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13469495#comment-13469495
]
Matt Benson commented on BVAL-113:
----------------------------------
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