There were a number of comments on twitter and blogs last week discussing Weld's performance and scalability, and I wanted to comment on the issues discussed and our work to resolve them. Upfront, let me say that we have been actively working on performance and scalability for a while now (previously more on memory usage, more recently on performance). Of course, we work primarily with JBoss AS, but also work closely with the GlassFish team; many of the improvements will be directly available as Weld is updated in GlassFish, and we'll continue to support the GlassFish team in any performance work they do on GlassFish that impacts on Weld.

To understand why we didn't release Weld 1.0 with excellent performance and scalability (I would have loved to, of course!) it's worth mentioning a few points. Firstly, Weld was one of entirely new RI's in Java EE 6 (the others being Hibernate Validator and Jersey), and of these is perhaps the biggest, and certainly the most integrated into other parts of Java EE. Secondly, the deadline for the Java EE 6 release (and hence the final release of it's RIs) was very tight (with the CDI spec still undergoing major overhauls up until about 3 weeks prior to the Weld 1.0 release). Thirdly, this was the first release of Java EE that included RIs not produced by Sun, which were fully open source (spec, RI and TCK) which led to the obvious scheduling issues you have when two different teams work together, as well the need to invent new infrastructure (e.g. for running the TCK).

All of these factors together meant that the 1.0 release of Weld primarily focused on being feature-complete to the CDI spec, with 1.0.1 focusing again on resolving functional issues. 1.1.0 is our chance to review the architecture of Weld and investigate both memory usage and performance, and deliver something that will shine.

If you have concerns about performance or memory usage, and want to help us work on this, we have batteries of stress tests we can run, so you can concentrate on looking for improvements.

We'll be including Weld 1.1.0 in JBoss AS 6.0.0, and we are recommending to the GlassFish team that they include it in GlassFish 3.1.

Finally, of course if you come across issues, you should file them in the issue tracker, or better yet, take a look at the source and see if you can help out!

10. Nov 2010, 16:37 CET | Link

Hi Pete; thanks for the post. A quick question. What version of Weld is planned for JBoss 7?

10. Nov 2010, 17:33 CET | Link

I would think AS7 Final is far enough out that the answer will be whatever is stable at the time AS7 ships

10. Nov 2010, 18:34 CET | Link

My understanding was that JBoss AS 7 was planned for end of 2011 as an enterprise quality release, so I was hoping you would have a general idea of that by now. In any case, I'm only looking at big-picture plans. As in, planning for a Weld 1.1.x, a Weld 1.x, or a Weld 2.x?

10. Nov 2010, 18:39 CET | Link

Re: Weld and GlassFish - We plan to integrate Weld 1.1.0 beta2 into the trunk of GlassFish 3.1 within a few days.

10. Nov 2010, 19:11 CET | Link
Eduardo Pelegri-Llopart wrote on Nov 10, 2010 12:39:
Re: Weld and GlassFish - We plan to integrate Weld 1.1.0 beta2 into the trunk of GlassFish 3.1 within a few days.


10. Nov 2010, 19:12 CET | Link
CDI User

When do we expect Weld 1.1 to achieve GA?

10. Nov 2010, 21:29 CET | Link

Here is the relevant post at TheAquarium. There should be a follow-up from Siva sometime next week with the actual details of the commit.

10. Nov 2010, 21:30 CET | Link
Eduardo Pelegri-Llopart

Argh! Here it is

10. Nov 2010, 23:02 CET | Link

Weld increases GAE cold start. Is It true?

11. Nov 2010, 14:40 CET | Link
Eduardo Pelegri-Llopart wrote on Nov 10, 2010 12:34:
My understanding was that JBoss AS 7 was planned for end of 2011 as an enterprise quality release, so I was hoping you would have a general idea of that by now. In any case, I'm only looking at big-picture plans. As in, planning for a Weld 1.1.x, a Weld 1.x, or a Weld 2.x?

I can't comment on AS7 schedule, Jason can comment on that. There are two options for Weld in AS7. If we do a MR of CDI then we would include Weld 1.2, otherwise it will be Weld 1.1 (IOW I am planning to make any needed changes to the integration SPI for Weld 1.1.0, we are planning to integrate Weld into AS7 initially in the next couple of months).

When do we expect Weld 1.1 to achieve GA?

We are aiming for before Christmas this year.

Weld increases GAE cold start. Is It true?

Yes, but then deploying your app to GAE increases it's start time ;-) And improving the time Weld takes to start is on our priority list.:

There are lots of ways to improve startup time. The biggest overhead we have observed is actually loading the classes to scan in the first place, followed by the scan. We can use a project such as jandex to improve both of these significantly, by generating all the metadata about the classes as part of the build, and storing it in the deployed jar. This should have a major effect on a runtime env like GAE which has to go through startup much more often.

In fact, I want to take this one step further for Weld 1.1 and offer a full partial startup mode, whereby the environment can say to Weld I've already scanned all the classes, built up all the metadata about annotations, meta-annotations etc. and called all of the ProcessAnnotatedType events, and applied modifications from them back, here is the set of AnnotatedTypes from which to generate beans. Obviously very useful in something like GAE which needs to cold-start much more often (my crude estimate is this could save say 60% of startup time without us doing any optimisation on startup time, something I hope Stale can look at once he has worked on runtime performance). This will also be very useful in JBoss AS 7 which will offer the ability to build parts of the deployment on the domain controller before handing it off to the individual servers.

11. Nov 2010, 19:53 CET | Link

Thank you for answer

19. Nov 2010, 02:07 CET | Link

And what about upgrading GF 3.0.1 with the newest weld lib? is there any change getting help there? I'm stuck in a project with major memory leaks caused by weld (and/or javassist) known bugs and it would be a pain to drop weld completely. Waiting to GF 3.1 it's not an option for me, Feb 2011 is too far away... I need to get the job done sooner.

I've tried to update weld-osgi-bundle.jar with some 1.1 beta versions downloaded from the m2 repos without luck, any hints? I'm getting javassist.NotFoundException with some of them and osgi problems about dependencies with others. It would be needed to update weld-integration.jar too? any extra package needed? Any help would be welcome! Thanks and sorry about the weeping! I'm a little bit lost.

19. Nov 2010, 04:55 CET | Link
Stuart Douglas


For instructions on how to patch Weld 1.0.1 to remove the runtime memory leak, see this thread:

20. Nov 2010, 11:47 CET | Link

Sorry, I missed that post. Thanks a lot, Stuart. I'll try it now!

19. Dec 2013, 03:52 CET | Link

A bag should not be apprenticed to abandoned accepting a simple top replica handbags. A woman should action it as her best associate as it holds all her claimed belongings. Handbags aswell say a lot about a lady's abode and how she carries herself. It is a assimilation of who you are. Even if a above handbag's aggregate is taken abounding into consideration, no aggregate of money can anytime aggregate to the authentic bulk of this item-a woman's confidence. When your eyes are chafe that superb artisan bag which you acquire already been appetence with absorption to, there is abolishment about that can be done to be able to acquire absent from it. Therefore , these best addition would be to go in for actualization Balenciaga Handbags. Nonetheless, there can aswell be problems adapted achievement as properly. For starters, you may possibly would like to apperceive which accepting these replicas may possibly not be as basic, accurately the able above ones. In the blow you do get the top above actualization Balenciaga replica handbags, they may possibly be actually pricey. Therefore , there exists a will acquire to acquire how it adeptness possibly end up accepting attainable to save on these and still get a fair deal.

10. Feb 2014, 15:25 CET | Link

To want that nature's domain we observe and encounter inside might not have the substance given by the sub-awareness might be to need presence of a zero actuality in the representational world, comparative with how the physical world exists without qualities as it may be. As all substance is provided for nature's turf through substance generative cycle from the neurological units the brains have, it influences to individual interrelations in ways that are presented in this article.qualitative data collection

10. Mar 2014, 00:04 CET | Link
Sudhir Varma | varma.sudhir(AT)

I thought that you could use Java EE 6 and spring together and not have to use welding for dependency injection. Tradus Coupons

06. Apr 2014, 15:39 CET | Link

The search is on trying to fill your wardrobe with living collections of clothing for women of color in spring followed by summer? Looking for some online store offers a beautiful collection of summer dresses roof with the current trend? They have a limited budget and looking for cheap and quality clothes? I need some people this season with new and comfortable clothes exclusively for the fresh spring season? Spring dresses are very fashionable and catered to the expectations of adolescents and young women. It is not necessary to dig up any old clothes to beat the heat of the sun, a great way to offer his hand to pick up your apparels from a huge spring collection

Post Comment