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

Jarek Gawor commented on BVAL-113:
----------------------------------

Here's some results from my micro-benchmarks. This is just one set of results 
from a few runs on my machine using Oracle Java 6.

HashMap implementation (new):
time (100): 4
time (1000): 23
time (10000): 99
time (100000): 151

Array implementation (current):
time (100): 4
time (1000): 41
time (10000): 340
time (100000): 17653

The HashMap implementation is much better at larger number of properties but 
probably in most cases there will be less then 100 properties in a MetaBean 
object. And if so it doesn't seem as important to apply this patch.

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