Weld's performance

Posted by    |       Hibernate ORM Seam Weld

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!

Back to top