Cool! One more reason for releasing 2.2 soon :)
/Daniel
Sylvain Wallez wrote:
Hi all,
I (once again) did some refactoring in ECM++ to implement a lazy-loading strategy for components. Using this strategy, a component is loaded (including it's class) only when looked up. This heavily reduces Cocoon's initialization time.
Some quick measurement of the time spent in Cocoon.initialize() and Cocoon.process() for the first request on my laptop give the following numbers (in seconds):
- standard "load all" strategy : initialize - 13.6 / process - 4.4
- lazy loading strategy : initialize - 3.3 / process - 3.7
The purpose of this mode is to leverage the autocompiling classloader, by making it usable to automatically restart Cocoon whenever an automatically-compiled class is modified. We would then have the type-safety and IDE-friendlyness of Java combined with the hot-reload abilities of scripted languages.
This lazy mode is not activated by default. To use it, set JAVA_OPTIONS="-Dorg.apache.cocoon.core.LazyMode=true" before starting "cocoon.sh servlet".
ECM++ can be made even more lazy, so expect some more speedup soon.
Sylvain
