Of course, we'd first need to do a performance evaluation to see if it would help a lot.
In OpenWebBeans we did it 'half way' now. Whenever we detect that a class doesn't have any Scope annotation (directly or indirectly via an @Stereotype), nor any @Inject or @Produces inside, we only initialize the bean meta info as an empty shale. And if it gets injected into another bean later, we just initialize this bean lazily. Of course, this trick didn't help that much with scanning performance (maybe ~15%), but it greatly reduced the memory footprint. Btw, we really should spec the exclude paths in beans.xml. I now found the regarding issue already filed in https://issues.jboss.org/browse/CDI-87 I added a proper description, but Pete, could you please edit the title and give it a more meaningful text? :) LieGrue, strub --- On Sat, 7/9/11, Lincoln Baxter, III <[email protected]> wrote: From: Lincoln Baxter, III <[email protected]> Subject: Re: [seam-dev] Seam Startup Performance To: "Mark Struberg" <[email protected]> Cc: "Stuart Douglas" <[email protected]>, "Dan Allen" <[email protected]>, "Seam Dev List" <[email protected]> Date: Saturday, July 9, 2011, 11:00 PM At this point, I think that may actually be a good option. I can't get forge to start up in under 8 seconds anymore. I'm all for doing this I suppose, though it will be a bit of a departure from the current functionality. I like the auto-pickup, but this performance is pretty attrocious :( On Sat, Jul 9, 2011 at 8:40 AM, Mark Struberg <[email protected]> wrote: Folks, what if we step back and fix the CORE of this disaster? Lets not pickup non CDI scope annotated beans as @Dependent automatically anymore! We could automatically enable this feature if we detect a version="1.1" in beans.xml. This way we can keep backward compatibility LieGrue, strub --- On Fri, 7/8/11, Dan Allen <[email protected]> wrote: From: Dan Allen <[email protected]> Subject: Re: [seam-dev] Seam Startup Performance To: "Stuart Douglas" <[email protected]> Cc: "Seam Dev List" <[email protected]> Date: Friday, July 8, 2011, 11:45 PM On Fri, Jul 8, 2011 at 19:27, Stuart Douglas <[email protected]> wrote: Hi Guys, I was just looking at the startup performance of the Seam 3 booking example on AS7, and I noticed that because the Seam 2 archives that it deploys are bean archives, it actually wastes quite a lot of time on startup registering Seam 3 classes as CDI beans that are never used. It occurred to me that we can get around this by using a beans.xml that includes welds <scan> extension in beans.xml to prevent uneeded beans being registered we could significantly improve the performance and memory usage of Seam 3 apps. Now that the ridiculous visibility and extensions in non-bean archive problems are resolved, I'm in favor of switching back to registering beans manually rather than using beans.xml. That seems like a performance enhancement that's portable, so that we don't suck if Weld isn't the provider. But I agree we should do one of the two options. We'll be moving tests around in Seam to align the setup, so it seems like a good time to run tests with the updated bean registration strategy. -Dan -- Dan AllenPrincipal Software Engineer, Red Hat | Author of Seam in Action Registered Linux User #231597 http://www.google.com/profiles/dan.j.allen#about http://mojavelinux.com http://mojavelinux.com/seaminaction -----Inline Attachment Follows----- _______________________________________________ seam-dev mailing list [email protected] https://lists.jboss.org/mailman/listinfo/seam-dev _______________________________________________ seam-dev mailing list [email protected] https://lists.jboss.org/mailman/listinfo/seam-dev -- Lincoln Baxter, III http://ocpsoft.com http://scrumshark.com "Keep it Simple" _______________________________________________ seam-dev mailing list [email protected] https://lists.jboss.org/mailman/listinfo/seam-dev
