Virgo Blazes with 5x Startup Performance Boost
Spring Dynamic Modules for OSGi and Spring dm Server were donated to the Eclipse Foundation in late 2009 and early 2010, and now that the projects are on Eclipse's infrastructure, new development is progressing smoothly. Spring Dynamic Modules became the Gemini Blueprint and the dm Server became the Virgo Web Server.
SpringSource and the Eclipse committers believe they've made the right trade-offs for the performance boost in Virgo 2.1 M2:
"Profiling showed that in-memory logging was the main hotspot during startup. However our experience over the last couple of years, in the field and during development, is that in-memory logging is hardly ever useful in practice. The in-memory log buffer is visible only in dumps, but when a dump occurs the other contents of the dump are always more interesting and useful than log entries. In addition to the overhead of in-memory logging, the circular buffer used to record in-memory log entries is likely to make garbage collection more frequent and increase the cost of marking live objects. This is clearly a trade-off, but we believe many users will benefit from the increased speed and will rarely, if ever, miss the log entries which are suppressed. --Glyn Normington, SpringSource Blog"
SpringSource intends to sell support for Virgo, and the 2.1 release will focus on making it easy to migrate from the old version (Spring dm Server 2.0) to the current one, now under Eclipse. The Gemini project is another collaboration between SpringSource and Eclipse (Oracle is the other main contributor) to define Enterprise Modules that extend the low level modularity of the OSGi platform to web containers under the RFC66 reference implementation. An RFC66 RI based on Gemini will be included in the Virgo project and it will be a Tomcat servlet container with an OSGi wrapper. The Jetty servlet is another container that is becoming more OSGi compliant and could also be used with Virgo in the future.
Other changes in Virgo 2.1 M2 include:
- Avoided the use of 'cflowbelow' from the entry/exit logging aspect
- Suppressed method entry/exit logging of the (well tested and reliable) artifact repository component
- Suppressed method entry/exit logging of getter and setter methods
Download Virgo 2.1 M2 here. It consists of the Virgo Web Server and a standalone kernel.