Over a million developers have joined DZone.

Virgo Blazes with 5x Startup Performance Boost

DZone's Guide to

Virgo Blazes with 5x Startup Performance Boost

· Java Zone ·
Free Resource

Download Microservices for Java Developers: A hands-on introduction to frameworks and containers. Brought to you in partnership with Red Hat.

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.

Download Building Reactive Microservices in Java: Asynchronous and Event-Based Application Design. Brought to you in partnership with Red Hat


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}