[cdi-dev] microbenchmark for CDI performance

Mark Struberg struberg at yahoo.de
Sat Dec 6 07:17:00 EST 2014


Hi Jozef!

Well, in any case, Weld-2.2.7.Final got 15x faster now than older Weld versions. So congratulations on this! 


LieGrue,
strub





> On Friday, 5 December 2014, 16:50, Jozef Hartinger <jharting at redhat.com> wrote:
> > Actually, I was wrong. This *is* a valid optimization for CDI 1.0. It 
> however *is not valid* for CDI 1.1+ as it breaks 
> AlterableContext.destroy(). This is fixed in Weld 2.2.7.Final 
> http://weld.cdi-spec.org/download/
> 
> On 10/21/2014 02:56 PM, Jozef Hartinger wrote:
>>  For certain combinations of scopes this is a perfectly legal
>>  optimization ;-) It's even mentioned in the spec (see 6.5.5).
>> 
>>  On 10/21/2014 02:46 PM, Mark Struberg wrote:
>>>  Folks, you really scare me a bit!
>>> 
>>>  I debugged into it and for the first BeanManger#getReference I get a 
> proxy.
>>> 
>>>  But for all other BeanManager#getReference I get the bare metal 
> SimpleBeanWithoutInterceptor WITHOUT ANY PROXY.
>>>  Can you confirm this?
>>>  If so, then please tell me how you make this Serializable if it gets 
> stored e.g in a Http Session?
>>> 
>>> 
>>>  This is just not conform to the CDI spec I fear. I even consider this a 
> blocker bug...
>>> 
>>>  LieGrue,
>>>  strub
>>> 
>>> 
>>> 
>>>>  On Tuesday, 21 October 2014, 14:07, Jozef Hartinger 
> <jharting at redhat.com> wrote:
>>>>>  Btw I've run your benchmark locally and observed the 
> following results:
>>>>  OWB 1.2.6: 9827ms
>>>>  Weld 2.2.5.Final: 20ms
>>>> 
>>>>  ;-)
>>>> 
>>>>  I did however tweak the test a bit so that Weld's optimizations 
> can be
>>>>  leveraged[1]. I admit that in certain situations (like your test 
> without
>>>>  my change) Weld performs worse than it should and this is a good 
> input
>>>>  for us.
>>>> 
>>>>  As for the NPE you observed not sure what is going on there. 
> Perhaps
>>>>  WeldContextControl implementation in DeltaSpike is not really 
> thread safe?
>>>> 
>>>>  Jozef
>>>> 
>>>>  [1] https://github.com/jharting/cdi-performance/commits/weld
>>>> 
>>>>  On 10/21/2014 01:43 PM, Jozef Hartinger wrote:
>>>>>     Hi Mark,
>>>>> 
>>>>>     thanks for showcasting your new feature. Great to see OWB 
> getting
>>>>>     faster! As for the micro benchmark I suggest that you check 
> out JMH[1].
>>>>> 
>>>>>     If you need an input from the Weld team, use 
> weld-dev at lists.jboss.org
>>>>> 
>>>>>     [1] http://openjdk.java.net/projects/code-tools/jmh/
>>>>> 
>>>>>     On 10/21/2014 11:59 AM, Mark Struberg wrote:
>>>>>>     Hi!
>>>>>> 
>>>>>>     Weld folks, I need some help with a micro benchmark:
>>>>>> 
>>>>>>     You know we've talked about disk footprint in SE, so 
> I hacked
>>>>  together a small microbenchmark and as a side effect we also got 
> what is really
>>>>  needed to have CDI running
>>>>>>     https://github.com/struberg/cdi-performance
>>>>>> 
>>>>>>     I'm curious about missing some dependency excludes 
> for Weld.
>>>>>> 
>>>>>>     could you please run
>>>>>> 
>>>>>>     $> mvn clean dependency:copy-dependencies 
> -DincludeScope=compile
>>>>  -PWeld -Dweld.version=2.2.5.Final
>>>>>>     $> ls -al target/dependency/
>>>>>> 
>>>>>>     and tell me which dependencies can be without having 
> some CDI
>>>>  functionality missing?
>>>>>>     Feel free to pimp the pom and ship a pull request.
>>>>>> 
>>>>>> 
>>>>>>     txs and LieGrue,
>>>>>>     strub
>>>>>>     _______________________________________________
>>>>>>     cdi-dev mailing list
>>>>>>     cdi-dev at lists.jboss.org
>>>>>>     https://lists.jboss.org/mailman/listinfo/cdi-dev
>>>>>> 
>>>>>>     Note that for all code provided on this list, the 
> provider licenses the
>>>>  code under the Apache License, Version 2
>>>>  (http://www.apache.org/licenses/LICENSE-2.0.html). For all other 
> ideas provided
>>>>  on this list, the provider waives all patent and other intellectual 
> property
>>>>  rights inherent in such information.
>>>> 
>>>>>     _______________________________________________
>>>>>     cdi-dev mailing list
>>>>>     cdi-dev at lists.jboss.org
>>>>>     https://lists.jboss.org/mailman/listinfo/cdi-dev
>>>>> 
>>>>>     Note that for all code provided on this list, the provider 
> licenses the
>>>>  code under the Apache License, Version 2
>>>>  (http://www.apache.org/licenses/LICENSE-2.0.html). For all other 
> ideas provided
>>>>  on this list, the provider waives all patent and other intellectual 
> property
>>>>  rights inherent in such information.
>>>> 
>>  _______________________________________________
>>  cdi-dev mailing list
>>  cdi-dev at lists.jboss.org
>>  https://lists.jboss.org/mailman/listinfo/cdi-dev
>> 
>>  Note that for all code provided on this list, the provider licenses the 
> code under the Apache License, Version 2 
> (http://www.apache.org/licenses/LICENSE-2.0.html). For all other ideas provided 
> on this list, the provider waives all patent and other intellectual property 
> rights inherent in such information.
> 


More information about the cdi-dev mailing list