[wildfly-dev] CDI overhead

Jozef Hartinger jharting at redhat.com
Mon Jun 30 11:04:54 EDT 2014


The spec says:

"An implicit bean archive is any other archive which contains one or 
more bean classes with a
bean defining annotation as defined in Section 2.5.1, “Bean defining 
annotations”, or one or more
session beans."

This makes CDI enabled by default in EE 7. From the point of view of 
legacy applications it may make sense to only enable CDI when a session 
bean actually needs it however, there is no sane way of figuring this out.

Jozef


On 06/30/2014 04:53 PM, Andrig Miller wrote:
>
>
> ------------------------------------------------------------------------
>
>     *From: *"Jozef Hartinger" <jharting at redhat.com>
>     *To: *"Andrig Miller" <anmiller at redhat.com>, "wildfly-dev"
>     <wildfly-dev at lists.jboss.org>
>     *Sent: *Monday, June 30, 2014 4:03:59 AM
>     *Subject: *Re: [wildfly-dev] CDI overhead
>
>     I guess that the Weld subsystem is enabled for your deployment
>     because the deployment contains session beans. CDI is required to
>     be enabled for such deployments since CDI 1.1 (even though CDI may
>     not actually be used by your application).
>
> Why is it required, if it will never be used?  Is that really what the 
> spec says?  If so, why in the world would be support that in the 
> spec?  That simply doesn't make any sense to me. Perhaps I'm missing 
> something here.
>
> Andy
>
>     Alternatively to removing the Weld subsystems you can:
>
>     1) Suppress implicit bean archives - only archives with explicit
>     beans.xml file will trigger CDI enablement. See
>     http://weld.cdi-spec.org/documentation/#4
>
>     2) Enable CDI contexts for certain URL subset only:
>     http://docs.jboss.org/weld/reference/2.2.2.Final/en-US/html/configure.html#context.mapping
>
>     Jozef
>
>     On 06/27/2014 06:44 PM, Andrig Miller wrote:
>
>         I should have posted this some time ago, but just forgot.
>
>         In my early testing of Wildfly 8, CDI adds quite a bit of
>         overhead (12% reduction in throughput) for even an application
>         that only uses servlets.  The only way I could get that back
>         was to remove the subsystem.  In talking with Stuart at the
>         time, he was looking at ways to make the overhead less.
>
>         Is there anything on the docket for making this overhead go
>         away for deployments that don't require CDI?  If not, can we
>         get something going in that direction.  It would be great to
>         not have to remove the CDI subsystem, but not have it impact
>         performance for deployments that don't use it.
>
>         Thanks.
>
>         -- 
>         Andrig (Andy) Miller
>         Global Platform Director for JBoss Middle-ware
>         Red Hat, Inc.
>
>
>         _______________________________________________
>         wildfly-dev mailing list
>         wildfly-dev at lists.jboss.org
>         https://lists.jboss.org/mailman/listinfo/wildfly-dev
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/wildfly-dev/attachments/20140630/9677048d/attachment-0001.html 


More information about the wildfly-dev mailing list