Berin Loritsch wrote: > The ExcaliburComponentManager is much slower, and will be the result of > most scalability > issues in Cocoon. The ContainerManager starts faster, and runs > faster--even though it > does more work (with all the helper managers). The only area where > ContainerManager is > slower is on shutdown, although it is not that much slower. There is > one more optimization > that will assist on ContainerManager's init time (currently pools are > initialized in the > constructor--that will be moved to the initialize() method).
That change made init time roughly 2.5 times as quick as the ECM. Not much change, but it adds up. I think the best improvement has to do with the fact that each child component has their own ComponentManager instance--which means that the instanceMap used for each lookup() is unique to that component. This enables less thread contention as each Component is used. > > > [junit] Running > org.apache.avalon.excalibur.system.test.ContainerProfile > [junit] DEBUG 10140 [ ] (): added new LogTargetFactory of > type file > [junit] DEBUG 10140 [ ] (): added new LogTarget of id root > [junit] DEBUG 10140 [ ] (): added logger for category > test.test > [junit] INFO 10140 [test ] (): Test Case: > ECM_ContainerManager_StartTime > [junit] INFO 10140 [test ] (): ECM time = 2494ms. > [junit] INFO 10140 [test ] (): ContainerManager time = > 1242ms. > [junit] INFO 10140 [test ] (): => ContainerManager is 2.0 > X as fast as ExcaliburComponentManager on init. > [junit] INFO 10140 [test ] (): => > ExcaliburComponentManager is 0.49 X as fast as ContainerManager on init. > [junit] INFO 10140 [test ] (): Test Case: Test Case: > ECM_ContainerManager_UseageTime > [junit] INFO 10140 [test ] (): > AbstractContainer$ContainerComponentManager time = 2293ms. to use 50000 > calls on 3 components. > [junit] INFO 10140 [test ] (): > ExcaliburComponentManager time = 212596ms. to use 50000 calls on 3 > components. > [junit] INFO 10140 [test ] (): => > AbstractContainer$ContainerComponentManager is 92.71 X as fast as > ExcaliburComponentManager. > [junit] INFO 10140 [test ] (): => > ExcaliburComponentManager is 0.01 X as fast as > AbstractContainer$ContainerComponentManager. > [junit] INFO 10140 [test ] (): Test Case: > ECM_ContainerManager_KillTime > [junit] INFO 10140 [test ] (): ECM time = 10ms. > [junit] INFO 10140 [test ] (): ContainerManager time = > 551ms. > [junit] INFO 10140 [test ] (): => ContainerManager is 0.01 > X as fast as ExcaliburComponentManager on dispose. > [junit] INFO 10140 [test ] (): => > ExcaliburComponentManager is 55.1 X as fast as ContainerManager on dispose. > [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 222.991 sec -- "They that give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety." - Benjamin Franklin --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]