[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[virgo-dev] Startup optimisation

I have made some fairly radical changes to logging in order to speed up Virgo performance. I based this on the relative usefulness of the various Virgo diagnostics in the field and during development. This is clearly a trade-off, but I believe everyone will benefit from the increased speed and we'll rarely, if ever, miss the log entries which are suppressed.

Prior to these changes a warm startup (without -clean) took about 1 minutes 8 seconds on my desktop machine. With these changes this goes down to around 12 seconds, an improvement of 82%. On a new laptop the improvement is less remarkable reducing the startup time from 15.4 seconds to around 14.2, an improvement of only 8%, perhaps because of slower disk speeds.

The build scripts are in a state of flux at the moment, so if you would like to try the new build, please obtain it from [1].

Summary of changes:
* removed in-memory logging
* removed entry/exit logging aspect's use of cflowbelow (taking advantage of Virgo having already broken the circular dependency medic<->util by suppressing logging of util)
* suppress method entry/exit logging of the kernel user region component (required to support cflowbelow removal)
* suppressed method entry/exit logging of artifact repository component
* suppressed method entry/exit logging of getter and setter methods

Glyn

[1] http://dl.dropbox.com/u/2487064/virgo-web-server-2.1.0.BUILD-20100622145223.zip