A little note: we are slow in multithreaded mode because each thread has a different Validator instance, if you share it (which is valid regarding the spec) we are ok.
Not sure if the test is wrong or just wrongly named. *Romain Manni-Bucau* *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* *Blog: **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com/> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* *Github: https://github.com/rmannibucau* 2013/8/13 Romain Manni-Bucau <[email protected]> > after the last commits: > > > Running org.apache.bval.bench.ApacheTest > APACHE > Raw validation time: 1461ms {11198} > Raw parsing time: 10910ms {2000} > First parse and validate: 9115ms {10180} > Multithreaded validation: 3122ms > Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 27.33 sec > Running org.apache.bval.bench.HibernateTest > HIBERNATE > Raw validation time: 2043ms {11198} > Raw parsing time: 4118ms {2000} > First parse and validate: 3423ms {10180} > Multithreaded validation: 1278ms > Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 12.302 sec > > Not sure why we are slow in multithreaded. Parsing is slow due to too much > reflection (we should be able to cut it but i didnt find how - help would > be welcomed ;) > > *Romain Manni-Bucau* > *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* > *Blog: **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com/> > *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* > *Github: https://github.com/rmannibucau* > > > > 2013/8/13 Romain Manni-Bucau <[email protected]> > >> hehe, maybe i found a perf issue, >> >> when updating MetaBean i added a comment: // TODO: optimize sortings >> >> and profiling it seems this comment was important ;) >> >> *Romain Manni-Bucau* >> *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* >> *Blog: >> **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com/> >> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* >> *Github: https://github.com/rmannibucau* >> >> >> >> 2013/8/12 Matt Benson <[email protected]> >> >>> true >>> >>> >>> On Mon, Aug 12, 2013 at 10:35 AM, Romain Manni-Bucau < >>> [email protected]> wrote: >>> >>>> not exactly, my bench (which was simpler than this one) showed it was >>>> comparable (0.5 was good) >>>> >>>> but in my test graph was pretty trivial >>>> >>>> *Romain Manni-Bucau* >>>> *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* >>>> *Blog: >>>> **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com/> >>>> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* >>>> *Github: https://github.com/rmannibucau* >>>> >>>> >>>> >>>> 2013/8/12 Matt Benson <[email protected]> >>>> >>>>> Strange that your benchmarks showed our performance to be pretty good >>>>> compared to Hibernate Validator, but these show us to be relatively >>>>> horrible. :( >>>>> >>>>> Matt >>>>> >>>>> >>>>> On Mon, Aug 12, 2013 at 10:24 AM, Romain Manni-Bucau < >>>>> [email protected]> wrote: >>>>> >>>>>> here is what i get with this project: >>>>>> >>>>>> APACHE >>>>>> Raw validation time: 3013ms {11165} >>>>>> Raw parsing time: 14318ms {2000} >>>>>> First parse and validate: 12988ms {10150} >>>>>> Multithreaded validation: 4062ms >>>>>> Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: >>>>>> 41.522 sec >>>>>> Running org.apache.bval.bench.HibernateTest >>>>>> HIBERNATE >>>>>> Raw validation time: 2031ms {11165} >>>>>> Raw parsing time: 3712ms {2000} >>>>>> First parse and validate: 4020ms {10150} >>>>>> Multithreaded validation: 1582ms >>>>>> Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: >>>>>> 13.987 sec >>>>>> >>>>>> Here is the diff to test against bval 1.1 impls: >>>>>> >>>>>> Index: pom.xml >>>>>> =================================================================== >>>>>> --- pom.xml (revision 1513159) >>>>>> +++ pom.xml (working copy) >>>>>> @@ -26,7 +26,7 @@ >>>>>> <parent> >>>>>> <groupId>org.apache.bval</groupId> >>>>>> <artifactId>bval-parent</artifactId> >>>>>> - <version>0.2-incubating-SNAPSHOT</version> >>>>>> + <version>2.0-SNAPSHOT</version> >>>>>> </parent> >>>>>> >>>>>> <artifactId>jsr303-impl-bench</artifactId> >>>>>> @@ -34,12 +34,24 @@ >>>>>> <name>Apache Bean Validation :: jsr303-impl-bench >>>>>> (optional)</name> >>>>>> >>>>>> <properties> >>>>>> - <apache-bval.version>0.1-incubating</apache-bval.version> >>>>>> - <hibernate-val.version>4.1.0.CR1</hibernate-val.version> >>>>>> + <apache-bval.version>2.0-SNAPSHOT</apache-bval.version> >>>>>> + <hibernate-val.version>5.0.1.Final</hibernate-val.version> >>>>>> </properties> >>>>>> >>>>>> <dependencies> >>>>>> <dependency> >>>>>> + <groupId>org.apache.geronimo.specs</groupId> >>>>>> + <artifactId>geronimo-el_2.2_spec</artifactId> >>>>>> + <version>1.0.2</version> >>>>>> + <scope>test</scope> >>>>>> + </dependency> >>>>>> + <dependency> >>>>>> + <groupId>org.apache.tomcat</groupId> >>>>>> + <artifactId>tomcat-jasper-el</artifactId> >>>>>> + <version>7.0.42</version> >>>>>> + <scope>test</scope> >>>>>> + </dependency> >>>>>> + <dependency> >>>>>> <groupId>com.sun.codemodel</groupId> >>>>>> <artifactId>codemodel</artifactId> >>>>>> <version>2.2</version> >>>>>> @@ -52,7 +64,7 @@ >>>>>> <dependency> >>>>>> <groupId>javax.validation</groupId> >>>>>> <artifactId>validation-api</artifactId> >>>>>> - <version>1.0.0.GA</version> >>>>>> + <version>1.1.0.Final</version> >>>>>> </dependency> >>>>>> <dependency> >>>>>> <groupId>org.apache.bval</groupId> >>>>>> >>>>>> >>>>>> *Romain Manni-Bucau* >>>>>> *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* >>>>>> *Blog: >>>>>> **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com/> >>>>>> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* >>>>>> *Github: https://github.com/rmannibucau* >>>>>> >>>>>> >>>>>> >>>>>> 2013/8/12 Matt Benson <[email protected]> >>>>>> >>>>>>> I agree, looks reasonable. :) There is also some stuff at >>>>>>> http://svn.apache.org/viewvc/bval/sandbox/jsr303-impl-bench/ if you >>>>>>> had any interest in merging your work there. >>>>>>> >>>>>>> Matt >>>>>>> >>>>>>> >>>>>>> On Mon, Aug 12, 2013 at 6:58 AM, Romain Manni-Bucau < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> Hi >>>>>>>> >>>>>>>> just did a simple test: >>>>>>>> https://gist.github.com/rmannibucau/6dab2d80ea2b26c40876 >>>>>>>> >>>>>>>> with: >>>>>>>> >>>>>>>> public class ValidatedBeanL1 { >>>>>>>> @Valid >>>>>>>> private ValidatedBeanL2 l2; >>>>>>>> >>>>>>>> @Min(1) >>>>>>>> private int size; >>>>>>>> } >>>>>>>> >>>>>>>> and >>>>>>>> >>>>>>>> >>>>>>>> public class ValidatedBeanL2 { >>>>>>>> @NotNull >>>>>>>> private String name; >>>>>>>> >>>>>>>> @Size(min = 3, max = 5) >>>>>>>> private String fullname; >>>>>>>> } >>>>>>>> >>>>>>>> It doesn't look bad to me but wdyt? >>>>>>>> >>>>>>>> *Romain Manni-Bucau* >>>>>>>> *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* >>>>>>>> *Blog: >>>>>>>> **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com/> >>>>>>>> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* >>>>>>>> *Github: https://github.com/rmannibucau* >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> 2013/7/17 Matt Benson <[email protected]> >>>>>>>> >>>>>>>>> Great work, Romain! >>>>>>>>> >>>>>>>>> Matt >>>>>>>>> >>>>>>>>> >>>>>>>>> On Wed, Jul 17, 2013 at 10:34 AM, Romain Manni-Bucau >>>>>>>>> <[email protected]>wrote: >>>>>>>>> >>>>>>>>> > Hi, >>>>>>>>> > >>>>>>>>> > FYI with some hacks (EJB hacks (@Resource) + cdi interceptor >>>>>>>>> hacks (adding >>>>>>>>> > beans.xml with needed interceptors instead of using discovery) + >>>>>>>>> jndi hack >>>>>>>>> > (lookup)) we get now on this branch: >>>>>>>>> > >>>>>>>>> > *Tests run: 758, Failures: 0, Errors: 0, Skipped: 0* >>>>>>>>> > * >>>>>>>>> > * >>>>>>>>> > PS: it needs OWB trunk built with cdi-1.1 profile >>>>>>>>> > >>>>>>>>> > *Romain Manni-Bucau* >>>>>>>>> > *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* >>>>>>>>> > *Blog: **http://rmannibucau.wordpress.com/*< >>>>>>>>> > http://rmannibucau.wordpress.com/> >>>>>>>>> > *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* >>>>>>>>> > *Github: https://github.com/rmannibucau* >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > 2013/7/1 Romain Manni-Bucau <[email protected]> >>>>>>>>> > >>>>>>>>> > > Hi guys, >>>>>>>>> > > >>>>>>>>> > > just created a branch to play with bean validation 1.1 >>>>>>>>> > > >>>>>>>>> > > here it is >>>>>>>>> https://svn.apache.org/repos/asf/bval/branches/bval-11/ >>>>>>>>> > > >>>>>>>>> > > it doesn't fully pass TCKs ATM because we'd need cdi 1.1 impl >>>>>>>>> (and it >>>>>>>>> > > would be great to use OWB ;) + some refactorings before going >>>>>>>>> further but >>>>>>>>> > > it is a start. >>>>>>>>> > > >>>>>>>>> > > *Romain Manni-Bucau* >>>>>>>>> > > *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* >>>>>>>>> > > *Blog: **http://rmannibucau.wordpress.com/*< >>>>>>>>> > http://rmannibucau.wordpress.com/> >>>>>>>>> > > *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* >>>>>>>>> > > *Github: https://github.com/rmannibucau* >>>>>>>>> > > >>>>>>>>> > > >>>>>>>>> > >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> >
