Performance Zone is brought to you in partnership with:

Mitch Pronschinske is the Lead Research Analyst at DZone. Researching and compiling content for DZone's research guides is his primary job. He likes to make his own ringtones, watches cartoons/anime, enjoys card and board games, and plays the accordion. Mitch is a DZone Zone Leader and has posted 2576 posts at DZone. You can read more from them at their website. View Full User Profile

Virgo Blazes with 5x Startup Performance Boost

07.08.2010
| 10050 views |
  • submit to reddit
The second milestone of Virgo 2.1 is heating up the speed of Spring's former dm Server.  The Eclipse Virgo project now includes a complete 'getting started guide' and has reduced the startup time by as much as 5x on some systems.  With the speedier startups and more liberal licensing under the EPL, there's plenty of incentive to switch from the dm Server to it's new incarnation, Virgo.

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.